- Patch #953336 by sun, pillarsdotnet, chx: contributed modules are not able to test theme-related functionality.
parent
d8c739586b
commit
cb4d787849
|
@ -768,6 +768,10 @@ class BlockHiddenRegionTestCase extends DrupalWebTestCase {
|
|||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp(array('block_test'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that hidden regions do not inherit blocks when a theme is enabled.
|
||||
*/
|
||||
|
|
|
@ -5,6 +5,14 @@
|
|||
* Provide test blocks.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Implements hook_system_theme_info().
|
||||
*/
|
||||
function block_test_system_theme_info() {
|
||||
$themes['block_test_theme'] = drupal_get_path('module', 'block_test') . '/themes/block_test_theme/block_test_theme.info';
|
||||
return $themes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_block_info().
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
* Unit tests for the Theme API.
|
||||
*/
|
||||
class ThemeUnitTest extends DrupalWebTestCase {
|
||||
protected $profile = 'testing';
|
||||
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Theme API',
|
||||
|
|
|
@ -11,6 +11,14 @@ function theme_test_theme($existing, $type, $theme, $path) {
|
|||
return $items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_system_theme_info().
|
||||
*/
|
||||
function theme_test_system_theme_info() {
|
||||
$themes['test_theme'] = drupal_get_path('module', 'theme_test') . '/themes/test_theme/test_theme.info';
|
||||
return $themes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_menu().
|
||||
*/
|
||||
|
|
|
@ -1504,6 +1504,25 @@ function hook_module_implements_alter(&$implementations, $hook) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return additional themes provided by modules.
|
||||
*
|
||||
* Only use this hook for testing purposes. Use a hidden MYMODULE_test.module
|
||||
* to implement this hook. Testing themes should be hidden, too.
|
||||
*
|
||||
* This hook is invoked from _system_rebuild_theme_data() and allows modules to
|
||||
* register additional themes outside of the regular 'themes' directories of a
|
||||
* Drupal installation.
|
||||
*
|
||||
* @return
|
||||
* An associative array. Each key is the system name of a theme and each value
|
||||
* is the corresponding path to the theme's .info file.
|
||||
*/
|
||||
function hook_system_theme_info() {
|
||||
$themes['mymodule_test_theme'] = drupal_get_path('module', 'mymodule') . '/mymodule_test_theme/mymodule_test_theme.info';
|
||||
return $themes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alter the information parsed from module and theme .info files
|
||||
*
|
||||
|
|
|
@ -2487,6 +2487,18 @@ function _system_update_bootstrap_status() {
|
|||
function _system_rebuild_theme_data() {
|
||||
// Find themes
|
||||
$themes = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.info$/', 'themes');
|
||||
// Allow modules to add further themes.
|
||||
if ($module_themes = module_invoke_all('system_theme_info')) {
|
||||
foreach ($module_themes as $name => $uri) {
|
||||
// @see file_scan_directory()
|
||||
$themes[$name] = (object) array(
|
||||
'uri' => $uri,
|
||||
'filename' => pathinfo($uri, PATHINFO_FILENAME),
|
||||
'name' => $name,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Find theme engines
|
||||
$engines = drupal_system_listing('/^' . DRUPAL_PHP_FUNCTION_PATTERN . '\.engine$/', 'themes/engines');
|
||||
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Implements hook_system_theme_info().
|
||||
*/
|
||||
function update_test_system_theme_info() {
|
||||
$themes['update_test_basetheme'] = drupal_get_path('module', 'update_test') . '/themes/update_test_basetheme/update_test_basetheme.info';
|
||||
$themes['update_test_subtheme'] = drupal_get_path('module', 'update_test') . '/themes/update_test_subtheme/update_test_subtheme.info';
|
||||
return $themes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_menu().
|
||||
*/
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
The themes in this subdirectory are all used by the Drupal core testing
|
||||
framework. They are not functioning themes that could be used on a real site
|
||||
and are hidden in the administrative user interface.
|
|
@ -1,14 +0,0 @@
|
|||
name = Block test theme
|
||||
description = Theme for testing the block system
|
||||
core = 8.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
|
|
@ -1,78 +0,0 @@
|
|||
<?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 -->
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* 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'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests a theme implementing an alter hook.
|
||||
*
|
||||
* The confusing function name here is due to this being an implementation of
|
||||
* the alter hook invoked when the 'theme_test' module calls
|
||||
* drupal_alter('theme_test_alter').
|
||||
*/
|
||||
function test_theme_theme_test_alter_alter(&$data) {
|
||||
$data = 'test_theme_theme_test_alter_alter was invoked';
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
name = Test theme
|
||||
description = Theme for testing the theme system
|
||||
core = 8.x
|
||||
hidden = TRUE
|
||||
|
||||
; Normally, themes may list CSS files like this, and if they exist in the theme
|
||||
; folder, then they get added to the page. If they have the same file name as a
|
||||
; module CSS file, then the theme's version overrides the module's version, so
|
||||
; that the module's version is not added to the page. Additionally, a theme may
|
||||
; have an entry like this one, without having the corresponding CSS file in the
|
||||
; theme's folder, and in this case, it just stops the module's version from
|
||||
; being loaded, and does not replace it with an alternate version. We have this
|
||||
; here in order for a test to ensure that this correctly prevents the module
|
||||
; version from being loaded, and that errors aren't caused by the lack of this
|
||||
; file within the theme folder.
|
||||
stylesheets[all][] = system.base.css
|
|
@ -1,2 +0,0 @@
|
|||
<!-- Output for Theme API test -->
|
||||
Success: Template overridden.
|
|
@ -1,4 +0,0 @@
|
|||
name = Update test base theme
|
||||
description = Test theme which acts as a base theme for other test subthemes.
|
||||
core = 8.x
|
||||
hidden = TRUE
|
|
@ -1,5 +0,0 @@
|
|||
name = Update test subtheme
|
||||
description = Test theme which uses update_test_basetheme as the base theme.
|
||||
core = 8.x
|
||||
base theme = update_test_basetheme
|
||||
hidden = TRUE
|
Loading…
Reference in New Issue