Breadcrumb404Test.php

Same filename and directory in other branches
  1. 9 core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php
  2. 8.9.x core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php
  3. 11.x core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php

Namespace

Drupal\FunctionalTests\Breadcrumb

File

core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php

View source
<?php

declare (strict_types=1);
namespace Drupal\FunctionalTests\Breadcrumb;

use Drupal\Tests\block\Traits\BlockCreationTrait;
use Drupal\Tests\BrowserTestBase;

/**
 * Tests the breadcrumb of 404 pages.
 *
 * @group breadcrumb
 */
class Breadcrumb404Test extends BrowserTestBase {
  use BlockCreationTrait;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'block',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Tests that different 404s don't create unnecessary cache entries.
   */
  public function testBreadcrumbOn404Pages() : void {
    $this->placeBlock('system_breadcrumb_block', [
      'id' => 'breadcrumb',
    ]);
    // Prime the cache first.
    $this->drupalGet('/not-found-1');
    $base_count = count($this->getBreadcrumbCacheEntries());
    $this->drupalGet('/not-found-2');
    $next_count = count($this->getBreadcrumbCacheEntries());
    $this->assertEquals($base_count, $next_count);
    $this->drupalGet('/not-found-3');
    $next_count = count($this->getBreadcrumbCacheEntries());
    $this->assertEquals($base_count, $next_count);
  }
  
  /**
   * Gets the breadcrumb cache entries.
   *
   * @return array
   *   The breadcrumb cache entries.
   */
  protected function getBreadcrumbCacheEntries() {
    $database = \Drupal::database();
    $cache_entries = $database->select('cache_render')
      ->fields('cache_render')
      ->condition('cid', $database->escapeLike('entity_view:block:breadcrumb') . '%', 'LIKE')
      ->execute()
      ->fetchAllAssoc('cid');
    return $cache_entries;
  }

}

Classes

Title Deprecated Summary
Breadcrumb404Test Tests the breadcrumb of 404 pages.

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