Issue #1706878 by tim.plunkett, lazysoundsystem: Added DrupalWebTestCase::assertThemeOutput() to allow modules to test theme function output.
parent
50f9d3f97c
commit
eb1be6311e
|
@ -1,6 +1,8 @@
|
|||
|
||||
Drupal 7.18, xxxx-xx-xx (development version)
|
||||
-----------------------
|
||||
- Added an assertThemeOutput() method to Simpletest to allow tests to check
|
||||
that themed output matches an expected HTML string (API addition).
|
||||
- Added a link to "Install another module" after a module has been successfully
|
||||
downloaded via the Update Manager (UI change).
|
||||
- Added an optional "exclusive" flag to installation profile .info files which
|
||||
|
|
|
@ -3148,6 +3148,42 @@ class DrupalWebTestCase extends DrupalTestCase {
|
|||
return $this->assertNotEqual($actual, $title, $message, $group);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts themed output.
|
||||
*
|
||||
* @param $callback
|
||||
* The name of the theme function to invoke; e.g. 'links' for theme_links().
|
||||
* @param $variables
|
||||
* An array of variables to pass to the theme function.
|
||||
* @param $expected
|
||||
* The expected themed output string.
|
||||
* @param $message
|
||||
* (optional) A message to display with the assertion. Do not translate
|
||||
* messages: use format_string() to embed variables in the message text, not
|
||||
* t(). If left blank, a default message will be displayed.
|
||||
* @param $group
|
||||
* (optional) The group this message is in, which is displayed in a column
|
||||
* in test output. Use 'Debug' to indicate this is debugging output. Do not
|
||||
* translate this string. Defaults to 'Other'; most tests do not override
|
||||
* this default.
|
||||
*
|
||||
* @return
|
||||
* TRUE on pass, FALSE on fail.
|
||||
*/
|
||||
protected function assertThemeOutput($callback, array $variables = array(), $expected, $message = '', $group = 'Other') {
|
||||
$output = theme($callback, $variables);
|
||||
$this->verbose('Variables:' . '<pre>' . check_plain(var_export($variables, TRUE)) . '</pre>'
|
||||
. '<hr />' . 'Result:' . '<pre>' . check_plain(var_export($output, TRUE)) . '</pre>'
|
||||
. '<hr />' . 'Expected:' . '<pre>' . check_plain(var_export($expected, TRUE)) . '</pre>'
|
||||
. '<hr />' . $output
|
||||
);
|
||||
if (!$message) {
|
||||
$message = '%callback rendered correctly.';
|
||||
}
|
||||
$message = format_string($message, array('%callback' => 'theme_' . $callback . '()'));
|
||||
return $this->assertIdentical($output, $expected, $message, $group);
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that a field exists in the current page by the given XPath.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue