filter_example.test

Test case for Testing the filter example module.

This file contains the test cases to check if module is performing as expected.

File

filter_example/filter_example.test

View source
<?php


/**
 * @file
 * Test case for Testing the filter example module.
 *
 * This file contains the test cases to check if module is performing as
 * expected.
 */

/**
 * Functional tests for the Filter Example module.
 *
 * @ingroup filter_example
 */
class FilterExampleTestCase extends DrupalWebTestCase {
    protected $webUser;
    protected $filteredHtml;
    protected $fullHtml;
    
    /**
     * {@inheritdoc}
     */
    public static function getInfo() {
        return array(
            'name' => 'Filter example functionality',
            'description' => 'Verify that content is processed by example filter.',
            'group' => 'Examples',
        );
    }
    
    /**
     * Enable modules and create user with specific permissions.
     */
    public function setUp() {
        parent::setUp('filter_example');
        // Load the used input formats.
        $this->filteredHtml = db_query_range('SELECT * FROM {filter_format} WHERE name = :name', 0, 1, array(
            ':name' => 'Filtered HTML',
        ))->fetchObject();
        $this->fullHtml = db_query_range('SELECT * FROM {filter_format} WHERE name = :name', 0, 1, array(
            ':name' => 'Full HTML',
        ))->fetchObject();
        // Create user.
        $this->webUser = $this->drupalCreateUser(array(
            'administer filters',
            filter_permission_name($this->filteredHtml),
            filter_permission_name($this->fullHtml),
            'bypass node access',
        ));
    }
    
    /**
     * Functional test of the foo filter.
     * 
     * Login user, create an example node, and test blog functionality through
     * the admin and user interfaces.
     */
    public function testFilterExampleBasic() {
        // Login the admin user.
        $this->drupalLogin($this->webUser);
        // Enable both filters in format id 1 (default format).
        $edit = array(
            'filters[filter_time][status]' => TRUE,
            'filters[filter_foo][status]' => TRUE,
        );
        $this->drupalPost('admin/config/content/formats/' . $this->filteredHtml->format, $edit, t('Save configuration'));
        // Create a content type to test the filters (with default format).
        $content_type = $this->drupalCreateContentType();
        // Create a test node.
        $langcode = LANGUAGE_NONE;
        $edit = array(
            "title" => $this->randomName(),
            "body[{$langcode}][0][value]" => 'What foo is it? it is <time />',
        );
        $result = $this->drupalPost('node/add/' . $content_type->type, $edit, t('Save'));
        $this->assertResponse(200);
        $time = format_date(time());
        $this->assertRaw('What bar is it? it is <em>' . $time . '</em>');
        // Enable foo filter in other format id 2
        $edit = array(
            'filters[filter_foo][status]' => TRUE,
        );
        $this->drupalPost('admin/config/content/formats/' . $this->fullHtml->format, $edit, t('Save configuration'));
        // Change foo filter replacement with a random string in format id 2
        $replacement = $this->randomName();
        $options = array(
            'filters[filter_foo][settings][filter_example_foo]' => $replacement,
        );
        $this->drupalPost('admin/config/content/formats/' . $this->fullHtml->format, $options, t('Save configuration'));
        // Create a test node with content format 2
        $langcode = LANGUAGE_NONE;
        $edit = array(
            "title" => $this->randomName(),
            "body[{$langcode}][0][value]" => 'What foo is it? it is <time />',
            "body[{$langcode}][0][format]" => $this->fullHtml->format,
        );
        $result = $this->drupalPost('node/add/' . $content_type->type, $edit, t('Save'));
        $this->assertResponse(200);
        // Only foo filter is enabled.
        $this->assertRaw("What " . $replacement . " is it", 'Foo filter successfully verified.');
    }

}

Classes

Title Deprecated Summary
FilterExampleTestCase Functional tests for the Filter Example module.