- Patch #690544 by bleen18, andypost, marcvangend, dbeheydt, rschwab, robertom: blocks admin (admin/structure/block) requires menu_rebuild() to display settings for current theme.
parent
8f46835ea2
commit
148569d986
|
@ -349,6 +349,14 @@ function system_theme_default() {
|
|||
}
|
||||
// Set the default theme.
|
||||
variable_set('theme_default', $theme);
|
||||
|
||||
// Rebuild the menu. This duplicates the menu_rebuild() in theme_enable().
|
||||
// However, modules must know the current default theme in order to use
|
||||
// this information in hook_menu() or hook_menu_alter() implementations,
|
||||
// and doing the variable_set() before the theme_enable() could result
|
||||
// in a race condition where the theme is default but not enabled.
|
||||
menu_rebuild();
|
||||
|
||||
// The status message depends on whether an admin theme is currently in use:
|
||||
// a value of 0 means the admin theme is set to be the default theme.
|
||||
$admin_theme = variable_get('admin_theme', 0);
|
||||
|
|
|
@ -1359,7 +1359,7 @@ class SystemThemeFunctionalTest extends DrupalWebTestCase {
|
|||
function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->admin_user = $this->drupalCreateUser(array('access administration pages', 'view the administration theme', 'administer themes', 'bypass node access'));
|
||||
$this->admin_user = $this->drupalCreateUser(array('access administration pages', 'view the administration theme', 'administer themes', 'bypass node access', 'administer blocks'));
|
||||
$this->drupalLogin($this->admin_user);
|
||||
$this->node = $this->drupalCreateNode();
|
||||
}
|
||||
|
@ -1443,6 +1443,26 @@ class SystemThemeFunctionalTest extends DrupalWebTestCase {
|
|||
$this->drupalGet('node/add');
|
||||
$this->assertRaw('themes/bartik', t('Site default theme used on the add content page.'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test switching the default theme.
|
||||
*/
|
||||
function testSwitchDefaultTheme() {
|
||||
// Enable "stark" and set it as the default theme.
|
||||
theme_enable(array('stark'));
|
||||
$this->drupalGet('admin/appearance');
|
||||
$this->clickLink(t('Set default'), 1);
|
||||
$this->assertTrue(variable_get('theme_default', '') == 'stark', t('Site default theme switched successfully.'));
|
||||
|
||||
// Test the default theme on the secondary links (blocks admin page).
|
||||
$this->drupalGet('admin/structure/block');
|
||||
$this->assertText('Stark(' . t('active tab') . ')', t('Default local task on blocks admin page is the default theme.'));
|
||||
// Switch back to Bartik and test again to test that the menu cache is cleared.
|
||||
$this->drupalGet('admin/appearance');
|
||||
$this->clickLink(t('Set default'), 0);
|
||||
$this->drupalGet('admin/structure/block');
|
||||
$this->assertText('Bartik(' . t('active tab') . ')', t('Default local task on blocks admin page has changed.'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue