function BookMultilingualTest::testMultilingualBookBreadcrumbBuilder

Same name and namespace in other branches
  1. 9 core/modules/book/tests/src/Kernel/BookMultilingualTest.php \Drupal\Tests\book\Kernel\BookMultilingualTest::testMultilingualBookBreadcrumbBuilder()
  2. 11.x core/modules/book/tests/src/Kernel/BookMultilingualTest.php \Drupal\Tests\book\Kernel\BookMultilingualTest::testMultilingualBookBreadcrumbBuilder()

Tests various book breadcrumb builder methods return correct translations.

@dataProvider langcodesProvider

File

core/modules/book/tests/src/Kernel/BookMultilingualTest.php, line 213

Class

BookMultilingualTest
Tests multilingual books.

Namespace

Drupal\Tests\book\Kernel

Code

public function testMultilingualBookBreadcrumbBuilder(string $langcode) : void {
  $this->setCurrentLanguage($langcode);
  // Test a level 3 node.
  $nid = 7;
  /** @var \Drupal\node\NodeInterface $node */
  $node = Node::load($nid);
  $route = new Route('/node/{node}');
  $route_match = new RouteMatch('entity.node.canonical', $route, [
    'node' => $node,
  ], [
    'node' => $nid,
  ]);
  /** @var \Drupal\book\BookBreadcrumbBuilder $bbb */
  $bbb = $this->container
    ->get('book.breadcrumb');
  $links = $bbb->build($route_match)
    ->getLinks();
  $link = array_shift($links);
  $rendered_link = (string) Link::fromTextAndUrl($link->getText(), $link->getUrl())
    ->toString();
  $this->assertStringContainsString("http://{$langcode}.book.test.domain/", $rendered_link);
  $link = array_shift($links);
  $this->assertNodeLinkIsCorrectlyTranslated(1, $link->getText(), $link->getUrl(), $langcode);
  $link = array_shift($links);
  $this->assertNodeLinkIsCorrectlyTranslated(3, $link->getText(), $link->getUrl(), $langcode);
  $this->assertEmpty($links);
}

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