You are here

public function LinkRelationsTest::testAvailableLinkRelationships in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php \Drupal\KernelTests\Core\Http\LinkRelationsTest::testAvailableLinkRelationships()

Tests correct Link Relations are returned from the Link Relation Type Manager.

File

core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php, line 18

Class

LinkRelationsTest
Tests link relationships in Drupal.

Namespace

Drupal\KernelTests\Core\Http

Code

public function testAvailableLinkRelationships() {

  /** @var \Drupal\Core\Http\LinkRelationTypeManager $link_relation_type_manager */
  $link_relation_type_manager = $this->container
    ->get('plugin.manager.link_relation_type');

  // A link relation type of the "registered" kind.

  /** @var \Drupal\Core\Http\LinkRelationTypeInterface $canonical */
  $canonical = $link_relation_type_manager
    ->createInstance('canonical');
  $this
    ->assertInstanceOf(LinkRelationType::class, $canonical);
  $this
    ->assertTrue($canonical
    ->isRegistered());
  $this
    ->assertFalse($canonical
    ->isExtension());
  $this
    ->assertSame('canonical', $canonical
    ->getRegisteredName());
  $this
    ->assertNull($canonical
    ->getExtensionUri());
  $this
    ->assertEquals('[RFC6596]', $canonical
    ->getReference());
  $this
    ->assertEquals('Designates the preferred version of a resource (the IRI and its contents).', $canonical
    ->getDescription());
  $this
    ->assertEquals('', $canonical
    ->getNotes());

  // A link relation type of the "extension" kind.

  /** @var \Drupal\Core\Http\LinkRelationTypeInterface $canonical */
  $add_form = $link_relation_type_manager
    ->createInstance('add-form');
  $this
    ->assertInstanceOf(LinkRelationType::class, $add_form);
  $this
    ->assertFalse($add_form
    ->isRegistered());
  $this
    ->assertTrue($add_form
    ->isExtension());
  $this
    ->assertNull($add_form
    ->getRegisteredName());
  $this
    ->assertSame('https://drupal.org/link-relations/add-form', $add_form
    ->getExtensionUri());
  $this
    ->assertEquals('', $add_form
    ->getReference());
  $this
    ->assertEquals('A form where a resource of this type can be created.', $add_form
    ->getDescription());
  $this
    ->assertEquals('', $add_form
    ->getNotes());

  // Test a couple of examples.
  $this
    ->assertContains('about', array_keys($link_relation_type_manager
    ->getDefinitions()));
  $this
    ->assertContains('original', array_keys($link_relation_type_manager
    ->getDefinitions()));
  $this
    ->assertContains('type', array_keys($link_relation_type_manager
    ->getDefinitions()));
}