[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/token/ -> token_actions.test (source)

   1  <?php
   2  
   3  /**
   4   * @file
   5   * Tests for the token_actions module.
   6   */
   7  
   8  class TokenActionsTestCase extends DrupalWebTestCase {
   9    public static function getInfo() {
  10      return array(
  11        'name' => t('Token action tests'),
  12        'description' => t('Test some of the token actions and tokens.'),
  13        'group' => t('Token'),
  14      );
  15    }
  16  
  17    function setUp() {
  18      parent::setUp('token', 'token_actions', 'trigger');
  19      $user = $this->drupalCreateUser(array('administer actions', 'administer site configuration', 'administer users'));
  20      $this->drupalLogin($user);
  21    }
  22  
  23    /**
  24     * Test user actions and triggers.
  25     */
  26    function testUserActions() {
  27      $insert_action = $this->createAction('token_actions_message_action', array(
  28        'message' => 'Yay [site-name] has a new user [user] with an ID of [uid] and e-mail address of [mail]!',
  29      ));
  30      $this->assignTriggerAction('user', 'insert', $insert_action);
  31  
  32      // Create a user to trigger the action.
  33      $edit = array();
  34      $edit['name'] = $this->randomName();
  35      $edit['mail'] = $edit['name'] .'@example.com';
  36      $edit['pass[pass1]'] = $this->randomName();
  37      $edit['pass[pass2]'] = $edit['pass[pass1]'];
  38  
  39      $this->drupalPost('admin/user/user/create', $edit, t('Create new account'));
  40      $account = user_load(array('name' => $edit['name']));
  41      $this->assertText("Yay Drupal has a new user {$account->name} with an ID of {$account->uid} and e-mail address of {$account->mail}!", 'Tokenized message displays');
  42    }
  43  
  44    /**
  45     * Create an action.
  46     *
  47     * @param $action
  48     *   The machine name of the action.
  49     * @param $edit
  50     *   An optional array to pass onto drupalPost() for configuring the action.
  51     *
  52     * @return
  53     *   The created action object.
  54     */
  55    function createAction($action, $edit = array()) {
  56      $edit += array(
  57        'actions_description' =>  $this->randomName(),
  58      );
  59      $this->drupalPost('admin/settings/actions/configure/'. md5($action), $edit, t('Save'));
  60      $this->assertText('The action has been successfully saved.');
  61      return db_fetch_object(db_query("SELECT * FROM {actions} WHERE type = 'system' AND callback = '%s' AND description = '%s'", $action, $edit['actions_description']));
  62    }
  63  
  64    /**
  65     * Assign an action to a trigger.
  66     *
  67     * @param $type
  68     *   The trigger type.
  69     * @param $trigger
  70     *   The trigger.
  71     * @param $action
  72     *   The action object.
  73     */
  74    function assignTriggerAction($type, $trigger, $action) {
  75      $edit['aid'] = md5($action->aid);
  76      $this->drupalPost("admin/build/trigger/{$type}", $edit, 'Assign', array(), array(), "trigger-{$type}-{$trigger}-assign-form");
  77      return $this->assertLinkByHref("admin/build/trigger/unassign/{$type}/{$trigger}/{$edit['aid']}", 0, t('Action assigned to @type @trigger trigger.', array('@type' => $type, '@trigger' => $trigger)));
  78    }
  79  }


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7