trigger_test.module

Mock module to aid in testing trigger.module.

File

modules/trigger/tests/trigger_test.module

View source
<?php


/**
 * @file
 * Mock module to aid in testing trigger.module.
 */

/**
 * Implements hook_action_info().
 */
function trigger_test_action_info() {
    // Register an action that can be assigned to the trigger "cron".
    return array(
        'trigger_test_system_cron_action' => 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);
}

Functions

Title Deprecated Summary
trigger_test_action_info Implements hook_action_info().
trigger_test_generic_action Action fired during the "taxonomy", "comment", and "user" trigger tests.
trigger_test_generic_any_action Action fired during the additional trigger tests.
trigger_test_system_cron_action Action fired during the "cron run" trigger test.
trigger_test_system_cron_conf_action Implement a configurable Drupal action.
trigger_test_system_cron_conf_action_form Form for configurable test action.
trigger_test_system_cron_conf_action_submit Form submission handler for configurable test action.
trigger_test_trigger_info Implements hook_trigger_info().

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.