You are here

public function BreadcrumbTest::testBreadcrumbsFollowHierarchy in Entity Reference Hierarchy 3.x

Same name and namespace in other branches
  1. 8.2 modules/entity_hierarchy_breadcrumb/tests/src/Kernel/BreadcrumbTest.php \Drupal\Tests\entity_hierarchy_breadcrumb\Kernel\BreadcrumbTest::testBreadcrumbsFollowHierarchy()

Tests breadcrumb builder returns the hierarchy.

File

modules/entity_hierarchy_breadcrumb/tests/src/Kernel/BreadcrumbTest.php, line 94

Class

BreadcrumbTest
Tests for breadcrumbs built of entity hierarchy fields.

Namespace

Drupal\Tests\entity_hierarchy_breadcrumb\Kernel

Code

public function testBreadcrumbsFollowHierarchy() {
  $entity_type = static::ENTITY_TYPE;
  $children = $this
    ->createChildEntities($this->parent
    ->id(), 3);
  $child = reset($children);
  $grandchildren = $this
    ->createChildEntities($child
    ->id(), 3);
  $grandchild = reset($grandchildren);
  $route_match = new RouteMatch('test', $this->testRoute, [
    $entity_type => $grandchild,
  ], [
    $entity_type => $grandchild
      ->id(),
  ]);
  $actual = $this->breadcrumbBuilder
    ->build($route_match);
  $this
    ->assertNotEquals(0, $actual
    ->getCacheMaxAge());
  $actual_links = $actual
    ->getLinks();
  $expected_cache_tags = [
    sprintf("%s:%s", $entity_type, $this->parent
      ->id()),
    sprintf("%s:%s", $entity_type, $child
      ->id()),
    sprintf("%s:%s", $entity_type, $grandchild
      ->id()),
  ];
  $this
    ->assertEquals($expected_cache_tags, $actual
    ->getCacheTags());
  $this
    ->assertEquals('Home', $actual_links[0]
    ->getText());
  $this
    ->assertEquals('/', $actual_links[0]
    ->getUrl()
    ->toString());
  $this
    ->assertEquals($this->parent
    ->label(), $actual_links[1]
    ->getText());
  $this
    ->assertEquals($this->parent
    ->toUrl()
    ->toString(), $actual_links[1]
    ->getUrl()
    ->toString());
  $this
    ->assertEquals($child
    ->label(), $actual_links[2]
    ->getText());
  $this
    ->assertEquals($child
    ->toUrl()
    ->toString(), $actual_links[2]
    ->getUrl()
    ->toString());
  $this
    ->assertEquals($grandchild
    ->label(), $actual_links[3]
    ->getText());
  $this
    ->assertEquals('', $actual_links[3]
    ->getUrl()
    ->toString());
}