function TriggerOtherTestCase::testActionsUser
7.x trigger.test | TriggerOtherTestCase::testActionsUser() |
Tests triggering on user create and user login.
File
- drupal-7.x/
modules/ trigger/ trigger.test, line 566 - Tests for trigger.module.
Class
- TriggerOtherTestCase
- Tests other triggers.
Code
function testActionsUser() {
// Assign an action to the create user trigger.
$test_user = $this->drupalCreateUser(array('administer actions'));
$this->drupalLogin($test_user);
$action_id = 'trigger_test_generic_action';
$hash = drupal_hash_base64($action_id);
$edit = array('aid' => $hash);
$this->drupalPost('admin/structure/trigger/user', $edit, t('Assign'), array(), array(), 'trigger-user-insert-assign-form');
// Set action variable to FALSE.
variable_set($action_id, FALSE);
// Create an unblocked user
$web_user = $this->drupalCreateUser(array('administer users'));
$this->drupalLogin($web_user);
$name = $this->randomName();
$pass = user_password();
$edit = array();
$edit['name'] = $name;
$edit['mail'] = $name . '@example.com';
$edit['pass[pass1]'] = $pass;
$edit['pass[pass2]'] = $pass;
$edit['status'] = 1;
$this->drupalPost('admin/people/create', $edit, t('Create new account'));
// Verify that the action variable has been set.
$this->assertTrue(variable_get($action_id, FALSE), 'Check that creating a user triggered the test action.');
// Reset the action variable.
variable_set($action_id, FALSE);
$this->drupalLogin($test_user);
// Assign a configurable action 'System message' to the user_login trigger.
$action_edit = array(
'actions_label' => $this->randomName(16),
'message' => t("You have logged in:") . $this->randomName(16),
);
// Configure an advanced action that we can assign.
$aid = $this->configureAdvancedAction('system_message_action', $action_edit);
$edit = array('aid' => drupal_hash_base64($aid));
$this->drupalPost('admin/structure/trigger/user', $edit, t('Assign'), array(), array(), 'trigger-user-login-assign-form');
// Verify that the action has been assigned to the correct hook.
$actions = trigger_get_assigned_actions('user_login');
$this->assertEqual(1, count($actions), 'One Action assigned to the hook');
$this->assertEqual($actions[$aid]['label'], $action_edit['actions_label'], 'Correct action label found.');
// User should get the configured message at login.
$contact_user = $this->drupalCreateUser(array('access site-wide contact form'));
$this->drupalLogin($contact_user);
$this->assertText($action_edit['message']);
}