function PathBasedBreadcrumbBuilderTest::testBuildWithUserPath

Tests the breadcrumb for a user path.

@legacy-covers ::build @legacy-covers ::getRequestForPath

File

core/modules/system/tests/src/Unit/Breadcrumbs/PathBasedBreadcrumbBuilderTest.php, line 439

Class

PathBasedBreadcrumbBuilderTest
Tests Drupal\system\PathBasedBreadcrumbBuilder.

Namespace

Drupal\Tests\system\Unit\Breadcrumbs

Code

public function testBuildWithUserPath() : void {
  $this->context
    ->expects($this->once())
    ->method('getPathInfo')
    ->willReturn('/user/1/edit');
  $this->setupStubPathProcessor();
  $route_1 = new Route('/user/1', [
    '_title' => 'Admin',
  ]);
  $this->requestMatcher
    ->expects($this->exactly(1))
    ->method('matchRequest')
    ->willReturnCallback(function (Request $request) use ($route_1) {
    if ($request->getPathInfo() == '/user/1') {
      return [
        RouteObjectInterface::ROUTE_NAME => 'user_page',
        RouteObjectInterface::ROUTE_OBJECT => $route_1,
        '_raw_variables' => new InputBag([]),
      ];
    }
  });
  $this->setupAccessManagerToAllow();
  $breadcrumb = $this->builder
    ->build($this->createMock('Drupal\\Core\\Routing\\RouteMatchInterface'));
  $this->assertEquals([
    0 => new Link('Home', new Url('<front>')),
    1 => new Link('Admin', new Url('user_page')),
  ], $breadcrumb->getLinks());
  $this->assertEqualsCanonicalizing([
    'url.path.is_front',
    'url.path.parent',
    'user.permissions',
  ], $breadcrumb->getCacheContexts());
  $this->assertEqualsCanonicalizing([], $breadcrumb->getCacheTags());
  $this->assertEquals(Cache::PERMANENT, $breadcrumb->getCacheMaxAge());
}

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