class CodeFilterPrismUnitTestCase in Code Filter 7
Contains unit tests for codefilter_prism.module.
Hierarchy
- class \DrupalTestCase
- class \DrupalUnitTestCase
- class \CodeFilterPrismUnitTestCase
- class \DrupalUnitTestCase
Expanded class hierarchy of CodeFilterPrismUnitTestCase
File
- modules/
codefilter_prism/ codefilter_prism.test, line 10 - Unit tests for codefilter_prism.module.
View source
class CodeFilterPrismUnitTestCase extends DrupalUnitTestCase {
// The filter object as returned from codefilter_prism_filter_info().
private $filter;
// Path to this file.
private $path;
/**
* Implements getInfo().
*/
public static function getInfo() {
return array(
'name' => 'codefilter_prism module text filters',
'description' => 'Tests raw filtering functions.',
'group' => 'Code Filter Prism',
);
}
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->path = drupal_get_path('module', 'codefilter_prism') . '/tests';
$this->filter = $this
->getFilter();
}
/**
* Returns a codefilter filter defintion, with prism enabled.
*
* @return array
* The filter definition as defined in codefilter_filter_info().
*/
protected function getFilter() {
include_once dirname(__FILE__) . '/codefilter_prism.module';
include_once dirname(__FILE__) . '/../../codefilter.module';
$filter = codefilter_filter_info();
// Enable prism.
$filter['codefilter']['default settings']['codefilter_prism'] = TRUE;
return $filter;
}
/**
* Filters text through codefilter_prisms prepare and process callbacks.
*
* @param string $text
* The text to filter.
* @param array $settings
* Additional settings.
*
* @return string
* The processed text.
*/
protected function filterText($text, array $settings = array()) {
$filter =& $this->filter['codefilter'];
// Set up a dummy format using defaults.
$format = new stdClass();
$format->settings = array_merge($filter['default settings'], $settings);
$text = call_user_func($filter['prepare callback'], $text, $format);
$text = call_user_func($filter['process callback'], $text, $format);
return $text;
}
/**
* Checks that <?php tags are escaped and highlighted correctly.
*/
public function testPhpFilter() {
$input = file_get_contents($this->path . '/php-input.txt');
$expected = file_get_contents($this->path . '/php-output.txt');
$result = $this
->filterText($input);
$this
->assertIdentical($expected, $result);
}
/**
* Checks that <?php tags are escaped and highlighted correctly with markup.
*/
public function testPhpFilterWithMarkup() {
$input = <<<EOD
<?php
return '<p>' . \$result . '</p>';
?>
EOD;
$expected = <<<EOD
<pre class="codeblock"><code class="language-php">return '<p>' . \$result . '</p>';
</code></pre>
EOD;
$result = $this
->filterText($input);
$this
->assertIdentical($expected, $result);
}
/**
* Checks that <code> tags are escaped and highlighted correctly.
*/
public function testCodeFilterPrism() {
$input = file_get_contents($this->path . '/code-input.txt');
$expected = file_get_contents($this->path . '/code-output.txt');
$result = $this
->filterText($input);
$this
->assertIdentical($expected, decode_entities($result));
}
/**
* Checks that <code> and <?php inline escaped and highlighted correctly.
*/
public function testInlineFilter() {
$input = file_get_contents($this->path . '/inline-input.txt');
$expected = file_get_contents($this->path . '/inline-output.txt');
$result = $this
->filterText($input);
$this
->assertIdentical($expected, $result);
}
/**
* Tests <code class="..."> tags (with attributes).
*/
public function testCodeFilterPrismAttributes() {
$input = <<<EOD
<code class="diff">
line1
line2
</code>
EOD;
$expected = <<<EOD
<pre class="codeblock"><code class="language-php diff">line1 line2 </code></pre>
EOD;
$result = $this
->filterText($input);
$this
->assertIdentical($expected, $result);
// Existing language.
$input = <<<EOD
<pre class="codeblock"><code class="language-css">
line1
line2
</code></pre>
EOD;
$expected = <<<EOD
<pre class="codeblock"><code class="language-css">line1
line2
</code></pre>
EOD;
$result = $this
->filterText($input);
$this
->assertIdentical($expected, $result);
}
/**
* Checks that CSS classes are added which JS uses for hover events.
*/
public function testContainerExpand() {
$input = file_get_contents($this->path . '/php-input.txt');
$settings = array(
'nowrap_expand' => TRUE,
);
$result = $this
->filterText($input, $settings);
$this
->assertTrue(strpos($result, '<pre class="codeblock nowrap-expand">') !== FALSE, 'Expand class is added to codefilter_prism blocks that are too long when that option is specified.');
}
/**
* Overrides DrupalTestCase::assertIdentical().
*
* Ignores $message and dump-exports $first and $second into the test result
* output instead.
*/
protected function assertIdentical($first, $second, $message = '', $group = '') {
$message = format_string('<pre>@first</pre> is identical to <pre>@second</pre>', array(
'@first' => var_export($first, TRUE),
'@second' => var_export($second, TRUE),
));
parent::assertIdentical($first, $second, $message);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CodeFilterPrismUnitTestCase:: |
private | property | ||
CodeFilterPrismUnitTestCase:: |
private | property | ||
CodeFilterPrismUnitTestCase:: |
protected | function |
Overrides DrupalTestCase::assertIdentical(). Overrides DrupalTestCase:: |
|
CodeFilterPrismUnitTestCase:: |
protected | function | Filters text through codefilter_prisms prepare and process callbacks. | |
CodeFilterPrismUnitTestCase:: |
protected | function | Returns a codefilter filter defintion, with prism enabled. | |
CodeFilterPrismUnitTestCase:: |
public static | function | Implements getInfo(). | |
CodeFilterPrismUnitTestCase:: |
protected | function |
Sets up unit test environment. Overrides DrupalUnitTestCase:: |
|
CodeFilterPrismUnitTestCase:: |
public | function | Checks that <code> tags are escaped and highlighted correctly. | |
CodeFilterPrismUnitTestCase:: |
public | function | Tests <code class="..."> tags (with attributes). | |
CodeFilterPrismUnitTestCase:: |
public | function | Checks that CSS classes are added which JS uses for hover events. | |
CodeFilterPrismUnitTestCase:: |
public | function | Checks that <code> and <?php inline escaped and highlighted correctly. | |
CodeFilterPrismUnitTestCase:: |
public | function | Checks that <?php tags are escaped and highlighted correctly. | |
CodeFilterPrismUnitTestCase:: |
public | function | Checks that <?php tags are escaped and highlighted correctly with markup. | |
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 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:: |