diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/trigger/tests/trigger_test.module --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/trigger/tests/trigger_test.module Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,136 @@ + array( + 'type' => 'system', + 'label' => t('Cron test action'), + 'configurable' => FALSE, + 'triggers' => array('cron'), + ), + 'trigger_test_system_cron_conf_action' => array( + 'type' => 'system', + 'label' => t('Cron test configurable action'), + 'configurable' => TRUE, + 'triggers' => array('cron'), + ), + 'trigger_test_generic_action' => array( + 'type' => 'system', + 'label' => t('Generic test action'), + 'configurable' => FALSE, + 'triggers' => array( + 'taxonomy_term_insert', + 'taxonomy_term_update', + 'taxonomy_delete', + 'comment_insert', + 'comment_update', + 'comment_delete', + 'user_insert', + 'user_update', + 'user_delete', + 'user_login', + 'user_logout', + 'user_view', + ), + ), + 'trigger_test_generic_any_action' => array( + 'type' => 'system', + 'label' => t('Generic test action for any trigger'), + 'configurable' => FALSE, + 'triggers' => array('any'), + ), + ); +} + +/** + * Implements hook_trigger_info(). + */ +function trigger_test_trigger_info() { + // Register triggers that this module provides. The first is an additional + // node trigger and the second is our own, which should create a new tab + // on the trigger assignment page. The last tests long trigger names. + return array( + 'node' => array( + 'node_triggertest' => array( + 'label' => t('A test trigger is fired'), + ), + ), + 'trigger_test' => array( + 'trigger_test_triggertest' => array( + 'label' => t('Another test trigger is fired'), + ), + 'trigger_test_we_sweat_it_out_in_the_streets_of_a_runaway_american_dream' => array( + 'label' => t('A test trigger with a name over 64 characters'), + ), + ), + ); +} + +/** + * Action fired during the "cron run" trigger test. + */ +function trigger_test_system_cron_action() { + // Indicate successful execution by setting a persistent variable. + variable_set('trigger_test_system_cron_action', TRUE); +} + +/** + * Implement a configurable Drupal action. + */ +function trigger_test_system_cron_conf_action($object, $context) { + // Indicate successful execution by incrementing a persistent variable. + $value = variable_get('trigger_test_system_cron_conf_action', 0) + 1; + variable_set('trigger_test_system_cron_conf_action', $value); +} + +/** + * Form for configurable test action. + */ +function trigger_test_system_cron_conf_action_form($context) { + if (!isset($context['subject'])) { + $context['subject'] = ''; + } + $form['subject'] = array( + '#type' => 'textfield', + '#default_value' => $context['subject'], + ); + return $form; +} + +/** + * Form submission handler for configurable test action. + */ +function trigger_test_system_cron_conf_action_submit($form, $form_state) { + $form_values = $form_state['values']; + // Process the HTML form to store configuration. The keyed array that + // we return will be serialized to the database. + $params = array( + 'subject' => $form_values['subject'], + ); + return $params; +} + +/** + * Action fired during the "taxonomy", "comment", and "user" trigger tests. + */ +function trigger_test_generic_action($context) { + // Indicate successful execution by setting a persistent variable. + variable_set('trigger_test_generic_action', TRUE); +} + +/** + * Action fired during the additional trigger tests. + */ +function trigger_test_generic_any_action($context) { + // Indicate successful execution by setting a persistent variable. + variable_set('trigger_test_generic_any_action', variable_get('trigger_test_generic_any_action', 0) + 1); +}