function SearchPageCacheTagsTest::testSearchText

Same name and namespace in other branches
  1. 11.x core/modules/search/tests/src/Functional/SearchPageCacheTagsTest.php \Drupal\Tests\search\Functional\SearchPageCacheTagsTest::testSearchText()
  2. 10 core/modules/search/tests/src/Functional/SearchPageCacheTagsTest.php \Drupal\Tests\search\Functional\SearchPageCacheTagsTest::testSearchText()
  3. 9 core/modules/search/tests/src/Functional/SearchPageCacheTagsTest.php \Drupal\Tests\search\Functional\SearchPageCacheTagsTest::testSearchText()
  4. main core/modules/search/tests/src/Functional/SearchPageCacheTagsTest.php \Drupal\Tests\search\Functional\SearchPageCacheTagsTest::testSearchText()

Tests the presence of the expected cache tag in various situations.

File

core/modules/search/tests/src/Functional/SearchPageCacheTagsTest.php, line 71

Class

SearchPageCacheTagsTest
Tests the search_page entity cache tags on the search results pages.

Namespace

Drupal\Tests\search\Functional

Code

public function testSearchText() {
  $this->drupalLogin($this->searchingUser);
  // Initial page for searching nodes.
  $this->drupalGet('search/node');
  $this->assertCacheTag('config:search.page.node_search');
  $this->assertCacheTag('search_index:node_search');
  $this->assertCacheTag('node_list');
  // Node search results.
  $edit = [];
  $edit['keys'] = 'bike shed';
  $this->drupalPostForm('search/node', $edit, t('Search'));
  $this->assertText('bike shed shop');
  $this->assertCacheTag('config:search.page.node_search');
  $this->assertCacheTag('search_index');
  $this->assertCacheTag('search_index:node_search');
  $this->assertCacheTag('node:1');
  $this->assertCacheTag('user:2');
  $this->assertCacheTag('rendered');
  $this->assertCacheTag('http_response');
  $this->assertCacheTag('node_list');
  // Updating a node should invalidate the search plugin's index cache tag.
  $this->node->title = 'bike shop';
  $this->node
    ->save();
  $this->drupalPostForm('search/node', $edit, t('Search'));
  $this->assertText('bike shop');
  $this->assertCacheTag('config:search.page.node_search');
  $this->assertCacheTag('search_index');
  $this->assertCacheTag('search_index:node_search');
  $this->assertCacheTag('node:1');
  $this->assertCacheTag('user:2');
  $this->assertCacheTag('rendered');
  $this->assertCacheTag('http_response');
  $this->assertCacheTag('node_list');
  // Deleting a node should invalidate the search plugin's index cache tag.
  $this->node
    ->delete();
  $this->drupalPostForm('search/node', $edit, t('Search'));
  $this->assertText('Your search yielded no results.');
  $this->assertCacheTag('config:search.page.node_search');
  $this->assertCacheTag('search_index');
  $this->assertCacheTag('search_index:node_search');
  $this->assertCacheTag('node_list');
  // Initial page for searching users.
  $this->drupalGet('search/user');
  $this->assertCacheTag('config:search.page.user_search');
  $this->assertCacheTag('user_list');
  $this->assertSession()
    ->responseHeaderNotContains('X-Drupal-Cache-Tags', 'search_index');
  $this->assertSession()
    ->responseHeaderNotContains('X-Drupal-Cache-Tags', 'search_index:user_search');
  // User search results.
  $edit['keys'] = $this->searchingUser
    ->getAccountName();
  $this->drupalPostForm('search/user', $edit, t('Search'));
  $this->assertCacheTag('config:search.page.user_search');
  $this->assertCacheTag('user_list');
  $this->assertCacheTag('user:2');
  $this->assertSession()
    ->responseHeaderNotContains('X-Drupal-Cache-Tags', 'search_index');
  $this->assertSession()
    ->responseHeaderNotContains('X-Drupal-Cache-Tags', 'search_index:user_search');
}

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