You are here

public function HypermediaIntegrationTest::testMenuItemsLinks in JSON:API Menu Items 1.2.x

Same name and namespace in other branches
  1. 1.1.x tests/src/Functional/HypermediaIntegrationTest.php \Drupal\Tests\jsonapi_menu_items\Functional\HypermediaIntegrationTest::testMenuItemsLinks()

Tests the `menu_items` links.

File

tests/src/Functional/HypermediaIntegrationTest.php, line 39

Class

HypermediaIntegrationTest
Tests JSON:API Hypermedia integration.

Namespace

Drupal\Tests\jsonapi_menu_items\Functional

Code

public function testMenuItemsLinks() {
  $url = Url::fromRoute('jsonapi.resource_list');
  $request_options = [];
  $request_options[RequestOptions::HEADERS]['Accept'] = 'application/vnd.api+json';
  $response = $this
    ->request('GET', $url, $request_options);
  $body = (string) $response
    ->getBody();
  $this
    ->assertEquals(200, $response
    ->getStatusCode(), $body);
  $decoded_document = Json::decode($body);
  $this
    ->assertTrue(isset($decoded_document['links']['menu_items--main']), var_export($decoded_document, TRUE));
  $link_href = $decoded_document['links']['menu_items--main']['href'];
  $expected_link_href = Url::fromRoute('jsonapi_menu_items.menu', [
    'menu' => 'main',
  ])
    ->setAbsolute()
    ->toString();
  $this
    ->assertEquals($expected_link_href, $link_href);
}