diff --git a/modules/node/node.test b/modules/node/node.test index b1d78fa..0ab3310 100644 --- a/modules/node/node.test +++ b/modules/node/node.test @@ -2755,3 +2755,79 @@ class NodeEntityViewModeAlterTest extends NodeWebTestCase { $this->assertEqual($build['#view_mode'], 'teaser', 'The view mode has correctly been set to teaser.'); } } + +/** + * Tests the cache invalidation of node operations. + */ +class NodePageCacheTest extends NodeWebTestCase { + + /** + * An admin user with administrative permissions for nodes. + */ + protected $admin_user; + + public static function getInfo() { + return array( + 'name' => 'Node page cache test', + 'description' => 'Test cache invalidation of node operations.', + 'group' => 'Node', + ); + } + + function setUp() { + parent::setUp(); + + variable_set('cache', 1); + variable_set('page_cache_maximum_age', 300); + + $this->admin_user = $this->drupalCreateUser(array( + 'bypass node access', + 'access content overview', + 'administer nodes', + )); + } + + /** + * Tests deleting nodes clears page cache. + */ + public function testNodeDelete() { + $node_path = 'node/' . $this->drupalCreateNode()->nid; + + // Populate page cache. + $this->drupalGet($node_path); + + // Login and delete the node. + $this->drupalLogin($this->admin_user); + $this->drupalPost($node_path . '/delete', array(), t('Delete')); + + // Logout and check the node is not available. + $this->drupalLogout(); + $this->drupalGet($node_path); + $this->assertResponse(404); + + // Create two new nodes. + $nodes[0] = $this->drupalCreateNode(); + $nodes[1] = $this->drupalCreateNode(); + $node_path = 'node/' . $nodes[0]->nid; + + // Populate page cache. + $this->drupalGet($node_path); + + // Login and delete the nodes. + $this->drupalLogin($this->admin_user); + $this->drupalGet('admin/content'); + $edit = array( + 'operation' => 'delete', + 'nodes[' . $nodes[0]->nid . ']' => TRUE, + 'nodes[' . $nodes[1]->nid . ']' => TRUE, + ); + $this->drupalPost(NULL, $edit, t('Update')); + $this->drupalPost(NULL, array(), t('Delete')); + + // Logout and check the node is not available. + $this->drupalLogout(); + $this->drupalGet($node_path); + $this->assertResponse(404); + } +} +