From 02d2f6e04a29acb1c3fcedcd5068878cffb10fbf Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Wed, 13 Jan 2010 05:40:03 +0000 Subject: #678714 by effulgentsia: Unify use of theme hook / template suggestions, fix clobbering problems, and improve suggestion discovery performance. --- modules/simpletest/tests/theme.test | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) (limited to 'modules/simpletest/tests') diff --git a/modules/simpletest/tests/theme.test b/modules/simpletest/tests/theme.test index ff6250546..0be8cb05a 100644 --- a/modules/simpletest/tests/theme.test +++ b/modules/simpletest/tests/theme.test @@ -19,36 +19,25 @@ class TemplateUnitTest extends DrupalWebTestCase { } /** - * Test function template_page_suggestions() for SA-CORE-2009-003. + * Test function theme_get_suggestions() for SA-CORE-2009-003. */ - function testTemplateSuggestions() { + function testThemeSuggestions() { // Set the front page as something random otherwise the CLI // test runner fails. variable_set('site_frontpage', 'nobody-home'); $args = array('node', '1', 'edit'); - $suggestions = template_page_suggestions($args, 'page'); - $this->assertEqual($suggestions, array('page-node', 'page-node-%', 'page-node-1', 'page-node-edit'), t('Found expected node edit page template suggestions')); + $suggestions = theme_get_suggestions($args, 'page'); + $this->assertEqual($suggestions, array('page__node', 'page__node__%', 'page__node__1', 'page__node__edit'), t('Found expected node edit page suggestions')); // Check attack vectors. $args = array('node', '\\1'); - $suggestions = template_page_suggestions($args, 'page'); - $this->assertEqual($suggestions, array('page-node', 'page-node-%', 'page-node-1'), t('Removed invalid \\ from template suggestions')); + $suggestions = theme_get_suggestions($args, 'page'); + $this->assertEqual($suggestions, array('page__node', 'page__node__%', 'page__node__1'), t('Removed invalid \\ from suggestions')); $args = array('node', '1/'); - $suggestions = template_page_suggestions($args, 'page'); - $this->assertEqual($suggestions, array('page-node', 'page-node-%', 'page-node-1'), t('Removed invalid / from template suggestions')); + $suggestions = theme_get_suggestions($args, 'page'); + $this->assertEqual($suggestions, array('page__node', 'page__node__%', 'page__node__1'), t('Removed invalid / from suggestions')); $args = array('node', "1\0"); - $suggestions = template_page_suggestions($args, 'page'); - $this->assertEqual($suggestions, array('page-node', 'page-node-%', 'page-node-1'), t('Removed invalid \\0 from template suggestions')); - // Tests for drupal_discover_template() - $suggestions = array('page'); - $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions), 'themes/garland/page.tpl.php', t('Safe template discovered')); - $suggestions = array('page'); - $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions, '\\.tpl.php'), 'themes/garland/page.tpl.php', t('Unsafe extension fixed')); - $suggestions = array('page\\'); - $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions), 'themes/garland/page.tpl.php', t('Unsafe template suggestion fixed')); - $suggestions = array('page/'); - $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions), 'themes/garland/page.tpl.php', t('Unsafe template suggestion fixed')); - $suggestions = array("page\0"); - $this->assertEqual(drupal_discover_template(array('themes/garland'), $suggestions), 'themes/garland/page.tpl.php', t('Unsafe template suggestion fixed')); + $suggestions = theme_get_suggestions($args, 'page'); + $this->assertEqual($suggestions, array('page__node', 'page__node__%', 'page__node__1'), t('Removed invalid \\0 from suggestions')); } } -- cgit v1.2.3