source: sipei/modules/token/token_actions.test

drupal-6.x
Last change on this file was ffa4103, checked in by Luis Peña <lpena@…>, 12 años ago

Cambiando el nombre de modulos a modules

  • Propiedad mode establecida a 100755
File size: 2.7 KB
Línea 
1<?php
2
3/**
4 * @file
5 * Tests for the token_actions module.
6 */
7
8class 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}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.