annotate core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\FunctionalTests\Breadcrumb;
Chris@0 4
Chris@18 5 use Drupal\Tests\block\Traits\BlockCreationTrait;
Chris@0 6 use Drupal\Tests\BrowserTestBase;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Tests the breadcrumb of 404 pages.
Chris@0 10 *
Chris@0 11 * @group breadcrumb
Chris@0 12 */
Chris@0 13 class Breadcrumb404Test extends BrowserTestBase {
Chris@0 14
Chris@0 15 use BlockCreationTrait;
Chris@0 16
Chris@0 17 /**
Chris@0 18 * {@inheritdoc}
Chris@0 19 */
Chris@0 20 public static $modules = ['system', 'block'];
Chris@0 21
Chris@0 22 /**
Chris@0 23 * Tests that different 404s don't create unnecessary cache entries.
Chris@0 24 */
Chris@0 25 public function testBreadcrumbOn404Pages() {
Chris@0 26 $this->placeBlock('system_breadcrumb_block', ['id' => 'breadcrumb']);
Chris@0 27
Chris@0 28 // Prime the cache first.
Chris@0 29 $this->drupalGet('/not-found-1');
Chris@0 30 $base_count = count($this->getBreadcrumbCacheEntries());
Chris@0 31
Chris@0 32 $this->drupalGet('/not-found-2');
Chris@0 33 $next_count = count($this->getBreadcrumbCacheEntries());
Chris@0 34 $this->assertEquals($base_count, $next_count);
Chris@0 35
Chris@0 36 $this->drupalGet('/not-found-3');
Chris@0 37 $next_count = count($this->getBreadcrumbCacheEntries());
Chris@0 38 $this->assertEquals($base_count, $next_count);
Chris@0 39 }
Chris@0 40
Chris@0 41 /**
Chris@0 42 * Gets the breadcrumb cache entries.
Chris@0 43 *
Chris@0 44 * @return array
Chris@0 45 * The breadcrumb cache entries.
Chris@0 46 */
Chris@0 47 protected function getBreadcrumbCacheEntries() {
Chris@0 48 $database = \Drupal::database();
Chris@0 49 $cache_entries = $database->select('cache_render')
Chris@0 50 ->fields('cache_render')
Chris@0 51 ->condition('cid', $database->escapeLike('entity_view:block:breadcrumb') . '%', 'LIKE')
Chris@0 52 ->execute()
Chris@0 53 ->fetchAllAssoc('cid');
Chris@0 54 return $cache_entries;
Chris@0 55 }
Chris@0 56
Chris@0 57 }