You are here

public function LinkManagerTest::testGetRequestLink in JSON:API 8

@covers ::getRequestLink

File

tests/src/Unit/LinkManager/LinkManagerTest.php, line 184

Class

LinkManagerTest
@coversDefaultClass \Drupal\jsonapi\LinkManager\LinkManager @group jsonapi

Namespace

Drupal\Tests\jsonapi\Unit\LinkManager

Code

public function testGetRequestLink() {
  $assembler = $this
    ->prophesize(UnroutedUrlAssemblerInterface::class);
  $assembler
    ->assemble(Argument::type('string'), [
    'external' => TRUE,
    'query' => [
      'dolor' => 'sid',
    ],
  ], FALSE)
    ->will(function ($args) {
    return $args[0] . '?dolor=sid';
  })
    ->shouldBeCalled();
  $container = new ContainerBuilder();
  $container
    ->set('unrouted_url_assembler', $assembler
    ->reveal());
  \Drupal::setContainer($container);
  $request = $this
    ->prophesize(Request::class);
  $request
    ->getUri()
    ->willReturn('https://example.com/drupal/jsonapi/node/article/07c870e9-491b-4173-8e2b-4e059400af72?amet=pax');
  $request
    ->getBaseUrl()
    ->willReturn('/drupal');
  $request
    ->getPathInfo()
    ->willReturn('');
  $request
    ->getSchemeAndHttpHost()
    ->willReturn('https://example.com');
  $request
    ->getBaseUrl()
    ->willReturn('/drupal');
  $request
    ->getPathInfo()
    ->willReturn('/jsonapi/node/article/07c870e9-491b-4173-8e2b-4e059400af72');
  $this
    ->assertSame('https://example.com/drupal/jsonapi/node/article/07c870e9-491b-4173-8e2b-4e059400af72?dolor=sid', $this->linkManager
    ->getRequestLink($request
    ->reveal(), [
    'dolor' => 'sid',
  ]));

  // Get the default query from the request object.
  $this
    ->assertSame('https://example.com/drupal/jsonapi/node/article/07c870e9-491b-4173-8e2b-4e059400af72?amet=pax', $this->linkManager
    ->getRequestLink($request
    ->reveal()));
}