summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2011-11-03 21:12:28 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2011-11-03 21:12:28 -0700
commit70ebc5e784cd6daf72a3ceeebc71b5a0032badec (patch)
tree78fa7c167c8e5c0e3d716a77bb805dad9703f6f6
parentec0f197e3c199438b77670e3e679f3dde88ada15 (diff)
downloadbrdo-70ebc5e784cd6daf72a3ceeebc71b5a0032badec.tar.gz
brdo-70ebc5e784cd6daf72a3ceeebc71b5a0032badec.tar.bz2
Issue #1103590 follow-up by Tor Arne Thune, dcrocks: Add tests for blocks being added to 'hidden' region.
-rw-r--r--modules/block/block.test36
-rw-r--r--themes/tests/block_test_theme/block_test_theme.info14
-rw-r--r--themes/tests/block_test_theme/page.tpl.php78
3 files changed, 128 insertions, 0 deletions
diff --git a/modules/block/block.test b/modules/block/block.test
index 216668719..9639b2c10 100644
--- a/modules/block/block.test
+++ b/modules/block/block.test
@@ -751,3 +751,39 @@ class BlockTemplateSuggestionsUnitTest extends DrupalUnitTestCase {
$this->assertEqual($variables2['theme_hook_suggestions'], array('block__footer', 'block__block', 'block__block__hyphen_test'), t('Hyphens (-) in block delta were replaced by underscore (_)'));
}
}
+
+/**
+ * Tests that hidden regions do not inherit blocks when a theme is enabled.
+ */
+class BlockHiddenRegionTestCase extends DrupalWebTestCase {
+ public static function getInfo() {
+ return array(
+ 'name' => 'Blocks not in hidden region',
+ 'description' => 'Checks that a newly enabled theme does not inherit blocks to its hidden regions.',
+ 'group' => 'Block',
+ );
+ }
+
+ /**
+ * Tests that hidden regions do not inherit blocks when a theme is enabled.
+ */
+ function testBlockNotInHiddenRegion() {
+ // Create administrative user.
+ $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer themes', 'search content'));
+ $this->drupalLogin($admin_user);
+
+ // Enable "block_test_theme" and set it as the default theme.
+ $theme = 'block_test_theme';
+ theme_enable(array($theme));
+ variable_set('theme_default', $theme);
+ menu_rebuild();
+
+ // Ensure that "block_test_theme" is set as the default theme.
+ $this->drupalGet('admin/structure/block');
+ $this->assertText('Block test theme(' . t('active tab') . ')', t('Default local task on blocks admin page is the block test theme.'));
+
+ // Ensure that the search form block is displayed.
+ $this->drupalGet('');
+ $this->assertText('Search form', t('Block was displayed on the front page.'));
+ }
+}
diff --git a/themes/tests/block_test_theme/block_test_theme.info b/themes/tests/block_test_theme/block_test_theme.info
new file mode 100644
index 000000000..06b6e995f
--- /dev/null
+++ b/themes/tests/block_test_theme/block_test_theme.info
@@ -0,0 +1,14 @@
+name = Block test theme
+description = Theme for testing the block system
+core = 7.x
+hidden = TRUE
+
+regions[sidebar_first] = Left sidebar
+regions_hidden[] = sidebar_first
+regions[sidebar_second] = Right sidebar
+regions_hidden[] = sidebar_second
+regions[content] = Content
+regions[header] = Header
+regions[footer] = Footer
+regions[highlighted] = Highlighted
+regions[help] = Help
diff --git a/themes/tests/block_test_theme/page.tpl.php b/themes/tests/block_test_theme/page.tpl.php
new file mode 100644
index 000000000..ba72882ef
--- /dev/null
+++ b/themes/tests/block_test_theme/page.tpl.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * @file
+ * Custom theme implementation to display a single Drupal page without
+ * sidebars. The sidebars are hidden by regions_hidden for this theme, so
+ * the default page.tpl.php will not work without throwing exceptions.
+ */
+?>
+
+ <div id="page-wrapper"><div id="page">
+
+ <div id="header"><div class="section clearfix">
+
+ <?php if ($logo): ?>
+ <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home" id="logo">
+ <img src="<?php print $logo; ?>" alt="<?php print t('Home'); ?>" />
+ </a>
+ <?php endif; ?>
+
+ <?php if ($site_name || $site_slogan): ?>
+ <div id="name-and-slogan">
+ <?php if ($site_name): ?>
+ <?php if ($title): ?>
+ <div id="site-name"><strong>
+ <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+ </strong></div>
+ <?php else: /* Use h1 when the content title is empty */ ?>
+ <h1 id="site-name">
+ <a href="<?php print $front_page; ?>" title="<?php print t('Home'); ?>" rel="home"><span><?php print $site_name; ?></span></a>
+ </h1>
+ <?php endif; ?>
+ <?php endif; ?>
+
+ <?php if ($site_slogan): ?>
+ <div id="site-slogan"><?php print $site_slogan; ?></div>
+ <?php endif; ?>
+ </div> <!-- /#name-and-slogan -->
+ <?php endif; ?>
+
+ <?php print render($page['header']); ?>
+
+ </div></div> <!-- /.section, /#header -->
+
+ <?php if ($main_menu || $secondary_menu): ?>
+ <div id="navigation"><div class="section">
+ <?php print theme('links__system_main_menu', array('links' => $main_menu, 'attributes' => array('id' => 'main-menu', 'class' => array('links', 'inline', 'clearfix')), 'heading' => t('Main menu'))); ?>
+ <?php print theme('links__system_secondary_menu', array('links' => $secondary_menu, 'attributes' => array('id' => 'secondary-menu', 'class' => array('links', 'inline', 'clearfix')), 'heading' => t('Secondary menu'))); ?>
+ </div></div> <!-- /.section, /#navigation -->
+ <?php endif; ?>
+
+ <?php if ($breadcrumb): ?>
+ <div id="breadcrumb"><?php print $breadcrumb; ?></div>
+ <?php endif; ?>
+
+ <?php print $messages; ?>
+
+ <div id="main-wrapper"><div id="main" class="clearfix">
+
+ <div id="content" class="column"><div class="section">
+ <?php if ($page['highlighted']): ?><div id="highlighted"><?php print render($page['highlighted']); ?></div><?php endif; ?>
+ <a id="main-content"></a>
+ <?php print render($title_prefix); ?>
+ <?php if ($title): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
+ <?php print render($title_suffix); ?>
+ <?php if ($tabs = render($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
+ <?php print render($page['help']); ?>
+ <?php if ($action_links): ?><ul class="action-links"><?php print render($action_links); ?></ul><?php endif; ?>
+ <?php print render($page['content']); ?>
+ <?php print $feed_icons; ?>
+ </div></div> <!-- /.section, /#content -->
+ </div></div> <!-- /#main, /#main-wrapper -->
+
+ <div id="footer"><div class="section">
+ <?php print render($page['footer']); ?>
+ </div></div> <!-- /.section, /#footer -->
+
+ </div></div> <!-- /#page, /#page-wrapper -->