summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/simpletest/tests')
-rw-r--r--modules/simpletest/tests/theme.test16
-rw-r--r--modules/simpletest/tests/theme_test.inc15
-rw-r--r--modules/simpletest/tests/theme_test.module16
-rw-r--r--modules/simpletest/tests/themes/test_theme/template.php6
4 files changed, 34 insertions, 19 deletions
diff --git a/modules/simpletest/tests/theme.test b/modules/simpletest/tests/theme.test
index af1141124..19775a7f8 100644
--- a/modules/simpletest/tests/theme.test
+++ b/modules/simpletest/tests/theme.test
@@ -52,11 +52,19 @@ class ThemeUnitTest extends DrupalWebTestCase {
}
/**
- * Preprocess functions for the base hook should run even for suggestion implementations.
- */
+ * Ensures preprocess functions run even for suggestion implementations.
+ *
+ * The theme hook used by this test has its base preprocess function in a
+ * separate file, so this test also ensures that that file is correctly loaded
+ * when needed.
+ */
function testPreprocessForSuggestions() {
- $this->drupalGet('theme-test/suggestion');
- $this->assertText('test_theme_breadcrumb__suggestion: 1', t('Theme hook suggestion ran with data available from a preprocess function for the base hook.'));
+ // Test with both an unprimed and primed theme registry.
+ drupal_theme_rebuild();
+ for ($i = 0; $i < 2; $i++) {
+ $this->drupalGet('theme-test/suggestion');
+ $this->assertText('Theme hook implementor=test_theme_theme_test__suggestion(). Foo=template_preprocess_theme_test', 'Theme hook suggestion ran with data available from a preprocess function for the base hook.');
+ }
}
/**
diff --git a/modules/simpletest/tests/theme_test.inc b/modules/simpletest/tests/theme_test.inc
new file mode 100644
index 000000000..6cde68384
--- /dev/null
+++ b/modules/simpletest/tests/theme_test.inc
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * Returns HTML for the 'theme_test' theme hook used by tests.
+ */
+function theme_theme_test($variables) {
+ return 'Theme hook implementor=theme_theme_test(). Foo=' . $variables['foo'];
+}
+
+/**
+ * Preprocesses variables for theme_theme_test().
+ */
+function template_preprocess_theme_test(&$variables) {
+ $variables['foo'] = 'template_preprocess_theme_test';
+}
diff --git a/modules/simpletest/tests/theme_test.module b/modules/simpletest/tests/theme_test.module
index 48e2e83c6..cce7b8093 100644
--- a/modules/simpletest/tests/theme_test.module
+++ b/modules/simpletest/tests/theme_test.module
@@ -4,13 +4,16 @@
* Implements hook_theme().
*/
function theme_test_theme($existing, $type, $theme, $path) {
+ $items['theme_test'] = array(
+ 'file' => 'theme_test.inc',
+ 'variables' => array('foo' => ''),
+ );
$items['theme_test_template_test'] = array(
'template' => 'theme_test.template_test',
);
$items['theme_test_template_test_2'] = array(
'template' => 'theme_test.template_test',
);
-
return $items;
}
@@ -115,14 +118,5 @@ function _theme_test_alter() {
* Page callback, calls a theme hook suggestion.
*/
function _theme_test_suggestion() {
- return theme(array('breadcrumb__suggestion', 'breadcrumb'), array());
-}
-
-/**
- * Implements hook_preprocess_breadcrumb().
- *
- * Set a variable that can later be tested to see if this function ran.
- */
-function theme_test_preprocess_breadcrumb(&$variables) {
- $variables['theme_test_preprocess_breadcrumb'] = 1;
+ return theme(array('theme_test__suggestion', 'theme_test'), array());
}
diff --git a/modules/simpletest/tests/themes/test_theme/template.php b/modules/simpletest/tests/themes/test_theme/template.php
index ef8118a6d..8275818e4 100644
--- a/modules/simpletest/tests/themes/test_theme/template.php
+++ b/modules/simpletest/tests/themes/test_theme/template.php
@@ -3,10 +3,8 @@
/**
* Tests a theme overriding a suggestion of a base theme hook.
*/
-function test_theme_breadcrumb__suggestion($variables) {
- // Tests that preprocess functions for the base theme hook get called even
- // when the suggestion has an implementation.
- return 'test_theme_breadcrumb__suggestion: ' . $variables['theme_test_preprocess_breadcrumb'];
+function test_theme_theme_test__suggestion($variables) {
+ return 'Theme hook implementor=test_theme_theme_test__suggestion(). Foo=' . $variables['foo'];
}
/**