function MenuActiveTrailTest::testGetCid

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Menu/MenuActiveTrailTest.php \Drupal\Tests\Core\Menu\MenuActiveTrailTest::testGetCid()
  2. 8.9.x core/tests/Drupal/Tests/Core/Menu/MenuActiveTrailTest.php \Drupal\Tests\Core\Menu\MenuActiveTrailTest::testGetCid()
  3. 11.x core/tests/Drupal/Tests/Core/Menu/MenuActiveTrailTest.php \Drupal\Tests\Core\Menu\MenuActiveTrailTest::testGetCid()

Tests getCid()

@covers ::getCid

File

core/tests/Drupal/Tests/Core/Menu/MenuActiveTrailTest.php, line 198

Class

MenuActiveTrailTest
Tests the active menu trail service.

Namespace

Drupal\Tests\Core\Menu

Code

public function testGetCid() : void {
  $data = $this->provider()[1];
  /** @var \Symfony\Component\HttpFoundation\Request $request */
  $request = $data[0];
  /** @var \Symfony\Component\Routing\Route $route */
  $route = $request->attributes
    ->get(RouteObjectInterface::ROUTE_OBJECT);
  $route->setPath('/test/{b}/{a}');
  $request->attributes
    ->get('_raw_variables')
    ->add([
    'b' => 1,
    'a' => 0,
  ]);
  $this->requestStack
    ->push($request);
  $this->menuLinkManager
    ->expects($this->any())
    ->method('loadLinksByRoute')
    ->with('baby_llama')
    ->willReturn($data[1]);
  $expected_link = $data[3];
  $expected_trail = $data[4];
  $expected_trail_ids = array_combine($expected_trail, $expected_trail);
  $this->menuLinkManager
    ->expects($this->any())
    ->method('getParentIds')
    ->willReturnMap([
    [
      $expected_link->getPluginId(),
      $expected_trail_ids,
    ],
  ]);
  $this->assertSame($expected_trail_ids, $this->menuActiveTrail
    ->getActiveTrailIds($data[2]));
  $this->cache
    ->expects($this->once())
    ->method('set')
    ->with('active-trail:route:baby_llama:route_parameters:' . serialize([
    'a' => 0,
    'b' => 1,
  ]));
  $this->lock
    ->expects($this->any())
    ->method('acquire')
    ->willReturn(TRUE);
  $this->menuActiveTrail
    ->destruct();
}

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