action_example.test

test file for action_example module.

File

action_example/action_example.test

View source
<?php


/**
 * @file
 * test file for action_example module.
 */

/**
 * Default test case for the action_example module.
 *
 * @ingroup action_example
 */
class ActionExampleTestCase extends TriggerWebTestCase {
    
    /**
     * {@inheritdoc}
     */
    public static function getInfo() {
        return array(
            'name' => 'Action example',
            'description' => 'Perform various tests on action_example module.',
            'group' => 'Examples',
        );
    }
    
    /**
     * {@inheritdoc}
     */
    public function setUp() {
        parent::setUp('trigger', 'action_example');
    }
    
    /**
     * Test Action Example.
     *
     * 1. action_example_basic_action: Configure a action_example_basic_action to
     *    happen when user logs in.
     * 2. action_example_unblock_user_action: When a user's profile is being
     *    viewed, unblock that user.
     * 3. action_example_node_sticky_action: Create a user, configure that user
     *    to always be stickied using advanced configuration. Have the user
     *    create content; verify that it gets stickied.
     */
    public function testActionExample() {
        // Create an administrative user.
        $admin_user = $this->drupalCreateUser(array(
            'administer actions',
            'access comments',
            'access content',
            'post comments',
            'skip comment approval',
            'create article content',
            'access user profiles',
            'administer users',
        ));
        $this->drupalLogin($admin_user);
        // 1. Assign basic action; then logout and login user and see if it puts
        // the message on the screen.
        $hash = drupal_hash_base64('action_example_basic_action');
        $edit = array(
            'aid' => $hash,
        );
        $this->drupalPost('admin/structure/trigger/user', $edit, t('Assign'), array(), array(), 'trigger-user-login-assign-form');
        $this->drupalLogout();
        $this->drupalLogin($admin_user);
        $this->assertText(t('action_example_basic_action fired'));
        // 2. Unblock: When a user's profile is being viewed, unblock.
        $normal_user = $this->drupalCreateUser();
        // Create blocked user.
        user_save($normal_user, array(
            'status' => 0,
        ));
        $normal_user = user_load($normal_user->uid, TRUE);
        $this->assertFalse($normal_user->status, 'Normal user status has been set to blocked');
        $hash = drupal_hash_base64('action_example_unblock_user_action');
        $edit = array(
            'aid' => $hash,
        );
        $this->drupalPost('admin/structure/trigger/user', $edit, t('Assign'), array(), array(), 'trigger-user-view-assign-form');
        $this->drupalGet("user/{$normal_user->uid}");
        $normal_user = user_load($normal_user->uid, TRUE);
        $this->assertTrue($normal_user->status, 'Normal user status has been set to unblocked');
        $this->assertRaw(t('Unblocked user %name', array(
            '%name' => $normal_user->name,
        )));
        // 3. Create a user whose posts are always to be stickied.
        $sticky_user = $this->drupalCreateUser(array(
            'access comments',
            'access content',
            'post comments',
            'skip comment approval',
            'create article content',
        ));
        $action_label = $this->randomName();
        $edit = array(
            'actions_label' => $action_label,
            'author' => $sticky_user->name,
        );
        $aid = $this->configureAdvancedAction('action_example_node_sticky_action', $edit);
        $edit = array(
            'aid' => drupal_hash_base64($aid),
        );
        $this->drupalPost('admin/structure/trigger/node', $edit, t('Assign'), array(), array(), 'trigger-node-insert-assign-form');
        // Now create a node and verify that it gets stickied.
        $this->drupalLogout();
        $this->drupalLogin($sticky_user);
        $node = $this->drupalCreateNode();
        $this->assertTrue($node->sticky, 'Node was set to sticky on creation');
    }

}

Classes

Title Deprecated Summary
ActionExampleTestCase Default test case for the action_example module.