class AlignFilterTest in Entity Embed 7
Same name and namespace in other branches
- 7.2 entity_embed.test \AlignFilterTest
Tests the align filter.
Hierarchy
- class \DrupalTestCase
- class \DrupalUnitTestCase
- class \AlignFilterTest
- class \DrupalUnitTestCase
Expanded class hierarchy of AlignFilterTest
File
- ./
entity_embed.test, line 334 - Test integration for the entity_embed module.
View source
class AlignFilterTest extends DrupalUnitTestCase {
public static function getInfo() {
return array(
'name' => 'Align filter test',
'description' => 'Tests the alignment filter.',
'group' => 'Entity Embed',
);
}
function setUp() {
drupal_load('module', 'entity_embed');
parent::setUp();
}
/**
* Tests the embed_button administration functionality.
*/
function testAlignFilter() {
// Setup dummy filter object.
$filter = new stdClass();
$filter->callback = '_entity_embed_filter_align';
// No data-align attribute.
$tests = array(
'<img src="llama.jpg" />' => array(
'<img src="llama.jpg" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Data-align attribute: all 3 allowed values.
$tests = array(
'<img src="llama.jpg" data-align="left" />' => array(
'<img src="llama.jpg" class="align-left" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
$tests = array(
'<img src="llama.jpg" data-align="center" />' => array(
'<img src="llama.jpg" class="align-center" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
$tests = array(
'<img src="llama.jpg" data-align="right" />' => array(
'<img src="llama.jpg" class="align-right" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Data-align attribute: a disallowed value.
$tests = array(
'<img src="llama.jpg" data-align="left foobar" />' => array(
'<img src="llama.jpg" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Empty data-align attribute.
$tests = array(
'<img src="llama.jpg" data-align="" />' => array(
'<img src="llama.jpg" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Ensure the filter also works with uncommon yet valid attribute quoting.
$tests = array(
'<img src=llama.jpg data-align=right />' => array(
'<img src="llama.jpg" class="align-right" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Security test: attempt to inject an additional class.
$tests = array(
'<img src="llama.jpg" data-align="center another-class-here" />' => array(
'<img src="llama.jpg" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
// Security test: attempt an XSS.
$tests = array(
'<img src="llama.jpg" data-align="center \'onclick=\'alert(foo);" />' => array(
'<img src="llama.jpg" />' => TRUE,
),
);
$this
->assertFilteredString($filter, $tests);
}
/**
* Asserts multiple filter output expectations for multiple input strings.
*
* @param $filter
* A input filter object.
* @param $tests
* An associative array, whereas each key is an arbitrary input string and
* each value is again an associative array whose keys are filter output
* strings and whose values are Booleans indicating whether the output is
* expected or not.
*
* For example:
* @code
* $tests = array(
* 'Input string' => array(
* '<p>Input string</p>' => TRUE,
* 'Input string<br' => FALSE,
* ),
* );
* @endcode
*/
function assertFilteredString($filter, $tests) {
foreach ($tests as $source => $tasks) {
$function = $filter->callback;
$result = $function($source, $filter);
foreach ($tasks as $value => $is_expected) {
// Not using assertIdentical, since combination with strpos() is hard to grok.
if ($is_expected) {
$success = $this
->assertTrue(strpos($result, $value) !== FALSE, format_string('@source: @value found.', array(
'@source' => var_export($source, TRUE),
'@value' => var_export($value, TRUE),
)));
}
else {
$success = $this
->assertTrue(strpos($result, $value) === FALSE, format_string('@source: @value not found.', array(
'@source' => var_export($source, TRUE),
'@value' => var_export($value, TRUE),
)));
}
if (!$success) {
$this
->verbose('Source:<pre>' . check_plain(var_export($source, TRUE)) . '</pre>' . '<hr />' . 'Result:<pre>' . check_plain(var_export($result, TRUE)) . '</pre>' . '<hr />' . ($is_expected ? 'Expected:' : 'Not expected:') . '<pre>' . check_plain(var_export($value, TRUE)) . '</pre>');
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AlignFilterTest:: |
function | Asserts multiple filter output expectations for multiple input strings. | ||
AlignFilterTest:: |
public static | function | ||
AlignFilterTest:: |
function |
Sets up unit test environment. Overrides DrupalUnitTestCase:: |
||
AlignFilterTest:: |
function | Tests the embed_button administration functionality. | ||
DrupalTestCase:: |
protected | property | Assertions thrown in that test case. | |
DrupalTestCase:: |
protected | property | The database prefix of this test run. | |
DrupalTestCase:: |
protected | property | The original file directory, before it was changed for testing purposes. | |
DrupalTestCase:: |
public | property | Current results of this test case. | |
DrupalTestCase:: |
protected | property | Flag to indicate whether the test has been set up. | |
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | ||
DrupalTestCase:: |
protected | property | This class is skipped when looking for the source of an assertion. | |
DrupalTestCase:: |
protected | property | The test run ID. | |
DrupalTestCase:: |
protected | property | Time limit for the test. | |
DrupalTestCase:: |
public | property | Whether to cache the installation part of the setUp() method. | |
DrupalTestCase:: |
public | property | Whether to cache the modules installation part of the setUp() method. | |
DrupalTestCase:: |
protected | property | URL to the verbose output file directory. | |
DrupalTestCase:: |
protected | function | Internal helper: stores the assert. | |
DrupalTestCase:: |
protected | function | Check to see if two values are equal. | |
DrupalTestCase:: |
protected | function | Check to see if a value is false (an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
protected | function | Check to see if two values are identical. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not equal. | |
DrupalTestCase:: |
protected | function | Check to see if two values are not identical. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is NULL. | |
DrupalTestCase:: |
protected | function | Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). | |
DrupalTestCase:: |
public static | function | Delete an assertion record by message ID. | |
DrupalTestCase:: |
protected | function | Fire an error assertion. | 1 |
DrupalTestCase:: |
public | function | Handle errors during test runs. | 1 |
DrupalTestCase:: |
protected | function | Handle exceptions. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always negative. | |
DrupalTestCase:: |
public static | function | Converts a list of possible parameters into a stack of permutations. | |
DrupalTestCase:: |
protected | function | Cycles through backtrace until the first non-assertion method is found. | |
DrupalTestCase:: |
public static | function | Returns the database connection to the site running Simpletest. | |
DrupalTestCase:: |
public static | function | Store an assertion from outside the testing context. | |
DrupalTestCase:: |
protected | function | Fire an assertion that is always positive. | |
DrupalTestCase:: |
public static | function | Generates a random string containing letters and numbers. | |
DrupalTestCase:: |
public static | function | Generates a random string of ASCII characters of codes 32 to 126. | |
DrupalTestCase:: |
public | function | Run all tests in this class. | |
DrupalTestCase:: |
protected | function | Logs a verbose message in a text file. | |
DrupalUnitTestCase:: |
protected | function | 1 | |
DrupalUnitTestCase:: |
function |
Constructor for DrupalUnitTestCase. Overrides DrupalTestCase:: |