t('[198975] Custom 403 page not available to user who doesn\'t have \'access content\' permissions'), 'desc' => t('If an anonymous user does not permission to access content, then an anonymous user is unable to access a custom 403 (access denied) page.'), 'group' => t('Drupal 7 Tests'), ); } function testIssue() { // save original perms for 'anonymous user' $anonymous_user_perm_orig = db_result(db_query('SELECT perm FROM {permission} WHERE rid = %d', DRUPAL_ANONYMOUS_RID)); // create a custom 'Default 403 (access denied) page' $web_user = $this->drupalCreateUserRolePerm(array('edit own page content', 'create page content')); $this->drupalLoginUser($web_user); $edit = array(); $edit['title'] = 'Custom 403 page ' . $this->randomName(); $edit['body'] = 'Custom 403 page ' . $this->randomName(); $this->drupalPost('node/add/page', $edit, 'Save'); $node = node_load(array('title' => $edit['title'])); $this->drupalGet('logout'); // set a custom 'Default 403 (access denied) page' $this->drupalVariableSet('site_403', "node/{$node->nid}"); // check 'anonymous user' can reach custom 403 page with 'access content' perm db_query("DELETE FROM {permission} WHERE rid = %d", DRUPAL_ANONYMOUS_RID); db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", DRUPAL_ANONYMOUS_RID, 'access content'); $this->drupalGet('admin'); // a common restricted url $this->assertWantedRaw($edit['title'], "Check with 'access content': %s"); // check 'anonymous user' can reach custom 403 page without 'access content' perm db_query("DELETE FROM {permission} WHERE rid = %d", DRUPAL_ANONYMOUS_RID); $this->drupalGet('admin'); // a common restricted url $this->assertWantedRaw($edit['title'], "Check without 'access content': %s"); // delete the custom 403 page node_delete($node->nid); // restore original anonymous user perms if (!empty($anonymous_user_perm_orig)) { db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", DRUPAL_ANONYMOUS_RID, $anonymous_user_perm_orig); } } }