diff options
Diffstat (limited to 'modules/simpletest/tests')
-rw-r--r-- | modules/simpletest/tests/common.test | 10 | ||||
-rw-r--r-- | modules/simpletest/tests/common_test.module | 34 |
2 files changed, 39 insertions, 5 deletions
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test index 55b4b4332..135ca18cb 100644 --- a/modules/simpletest/tests/common.test +++ b/modules/simpletest/tests/common.test @@ -29,24 +29,24 @@ class DrupalAlterTestCase extends DrupalWebTestCase { // Verify alteration of a single argument. $array_copy = $array; - $array_expected = array('foo' => 'Drupal'); + $array_expected = array('foo' => 'Drupal theme'); drupal_alter('drupal_alter', $array_copy); $this->assertEqual($array_copy, $array_expected, t('Single array was altered.')); $object_copy = clone $object; $object_expected = clone $object; - $object_expected->foo = 'Drupal'; + $object_expected->foo = 'Drupal theme'; drupal_alter('drupal_alter', $object_copy); $this->assertEqual($object_copy, $object_expected, t('Single object was altered.')); // Verify alteration of multiple arguments. $array_copy = $array; - $array_expected = array('foo' => 'Drupal'); + $array_expected = array('foo' => 'Drupal theme'); $object_copy = clone $object; $object_expected = clone $object; - $object_expected->foo = 'Drupal'; + $object_expected->foo = 'Drupal theme'; $array2_copy = $array; - $array2_expected = array('foo' => 'Drupal'); + $array2_expected = array('foo' => 'Drupal theme'); drupal_alter('drupal_alter', $array_copy, $object_copy, $array2_copy); $this->assertEqual($array_copy, $array_expected, t('First argument to drupal_alter() was altered.')); $this->assertEqual($object_copy, $object_expected, t('Second argument to drupal_alter() was altered.')); diff --git a/modules/simpletest/tests/common_test.module b/modules/simpletest/tests/common_test.module index cc8c22772..e8c6602c2 100644 --- a/modules/simpletest/tests/common_test.module +++ b/modules/simpletest/tests/common_test.module @@ -101,6 +101,40 @@ function common_test_drupal_alter_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) { } /** + * Implement hook_TYPE_alter() on behalf of Garland theme. + * + * Same as common_test_drupal_alter_alter(), but here, we verify that themes + * can also alter and come last. + */ +function garland_drupal_alter_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) { + // Alter first argument. + if (is_array($data)) { + $data['foo'] .= ' theme'; + } + elseif (is_object($data)) { + $data->foo .= ' theme'; + } + // Alter second argument, if present. + if (isset($arg2)) { + if (is_array($arg2)) { + $arg2['foo'] .= ' theme'; + } + elseif (is_object($arg2)) { + $arg2->foo .= ' theme'; + } + } + // Try to alter third argument, if present. + if (isset($arg3)) { + if (is_array($arg3)) { + $arg3['foo'] .= ' theme'; + } + elseif (is_object($arg3)) { + $arg3->foo .= ' theme'; + } + } +} + +/** * Implement hook_theme(). */ function common_test_theme() { |