Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function BlockCacheTestCase::testCachePerRole

Test DRUPAL_CACHE_PER_ROLE.

File

modules/block/block.test, line 527

Class

BlockCacheTestCase
Test block caching.

Code

function testCachePerRole() {
 $this->setCacheMode (DRUPAL_CACHE_PER_ROLE );
 // Enable our test block. Set some content for it to display.
 $current_content = $this->randomName ();
 variable_set ('block_test_content', $current_content);
 $this->drupalLogin ($this->normal_user );
 $this->drupalGet ('');
 $this->assertText ($current_content, 'Block content displays.');
 // Change the content, but the cached copy should still be served.
 $old_content = $current_content;
 $current_content = $this->randomName ();
 variable_set ('block_test_content', $current_content);
 $this->drupalGet ('');
 $this->assertText ($old_content, 'Block is served from the cache.');
 // Clear the cache and verify that the stale data is no longer there.
 cache_clear_all ();
 $this->drupalGet ('');
 $this->assertNoText ($old_content, 'Block cache clear removes stale cache data.');
 $this->assertText ($current_content, 'Fresh block content is displayed after clearing the cache.');
 // Test whether the cached data is served for the correct users.
 $old_content = $current_content;
 $current_content = $this->randomName ();
 variable_set ('block_test_content', $current_content);
 $this->drupalLogout ();
 $this->drupalGet ('');
 $this->assertNoText ($old_content, 'Anonymous user does not see content cached per-role for normal user.');
 $this->drupalLogin ($this->normal_user_alt );
 $this->drupalGet ('');
 $this->assertText ($old_content, 'User with the same roles sees per-role cached content.');
 $this->drupalLogin ($this->admin_user );
 $this->drupalGet ('');
 $this->assertNoText ($old_content, 'Admin user does not see content cached per-role for normal user.');
 $this->drupalLogin ($this->normal_user );
 $this->drupalGet ('');
 $this->assertText ($old_content, 'Block is served from the per-role cache.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.