Issue #790770 by swentel, jhodgdon, David_Rothstein, naxoc: Fixed 'Add to shortcuts' link should not appear on 403/404 pages.

8.0.x
Nathaniel 2011-09-28 12:06:39 +09:00
parent 4b2478249b
commit ce6c15f3ed
2 changed files with 28 additions and 1 deletions

View File

@ -643,7 +643,11 @@ function shortcut_renderable_links($shortcut_set = NULL) {
* Implements hook_preprocess_page().
*/
function shortcut_preprocess_page(&$variables) {
if (shortcut_set_edit_access()) {
// Only display the shortcut link if the user has the ability to edit
// shortcuts and if the page's actual content is being shown (for example,
// we do not want to display it on "access denied" or "page not found"
// pages).
if (shortcut_set_edit_access() && ($item = menu_get_item()) && $item['access']) {
$link = $_GET['q'];
$query_parameters = drupal_get_query_parameters();
if (!empty($query_parameters)) {

View File

@ -197,6 +197,29 @@ class ShortcutLinksTestCase extends ShortcutTestCase {
$mlids = $this->getShortcutInformation($saved_set, 'mlid');
$this->assertFalse(in_array($set->links[0]['mlid'], $mlids), 'Successfully deleted a shortcut.');
}
/**
* Tests that the add shortcut link is not displayed for 404/403 errors.
*
* Tests that the "Add to shortcuts" link is not displayed on a page not
* found or a page the user does not have access to.
*/
function testNoShortcutLink() {
// Change to a theme that displays shortcuts.
variable_set('theme_default', 'seven');
$this->drupalGet('page-that-does-not-exist');
$this->assertNoRaw('add-shortcut', t('Add to shortcuts link was not shown on a page not found.'));
// The user does not have access to this path.
$this->drupalGet('admin/modules');
$this->assertNoRaw('add-shortcut', t('Add to shortcuts link was not shown on a page the user does not have access to.'));
// Verify that the testing mechanism works by verifying the shortcut
// link appears on admin/content/node.
$this->drupalGet('admin/content/node');
$this->assertRaw('add-shortcut', t('Add to shortcuts link was shown on a page the user does have access to.'));
}
}
/**