You are here

public function JsonapiMenuItemsTest::testParametersConditions in JSON:API Menu Items 1.2.x

Tests the JSON:API Menu Items resource with the 'conditions' filter.

File

tests/src/Functional/JsonapiMenuItemsTest.php, line 240

Class

JsonapiMenuItemsTest
Tests JSON:API Menu Items functionality.

Namespace

Drupal\Tests\jsonapi_menu_items\Functional

Code

public function testParametersConditions() {

  // ?filter[conditions][provider][value]=jsonapi_menu_items_test.
  $url = Url::fromRoute('jsonapi_menu_items.menu', [
    'menu' => 'jsonapi-menu-items-test',
    'filter' => [
      'conditions' => [
        'provider' => [
          'value' => 'jsonapi_menu_items_test',
        ],
      ],
    ],
  ]);
  [
    $content,
    $headers,
  ] = $this
    ->getJsonApiMenuItemsResponse($url);
  self::assertCount(2, $content['data']);
  self::assertCacheContext($headers, 'url.query_args:filter');
  $expected_items = Json::decode(strtr(file_get_contents(dirname(__DIR__, 2) . '/fixtures/conditions-expected-items.json'), [
    '%base_path' => Url::fromRoute('<front>')
      ->toString(),
  ]));
  self::assertEquals($expected_items['data'], $content['data']);
}