X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Ftests%2FDrupal%2FTests%2FCore%2FEntity%2FEntityUrlTest.php;fp=web%2Fcore%2Ftests%2FDrupal%2FTests%2FCore%2FEntity%2FEntityUrlTest.php;h=335bf20a8da22d6109993e03f1b705d03b621597;hp=cf0f93f87f3c7dcc95110f4933f1f608ea9a31ad;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php b/web/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php index cf0f93f87..335bf20a8 100644 --- a/web/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php +++ b/web/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php @@ -2,14 +2,18 @@ namespace Drupal\Tests\Core\Entity; +use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\Entity\Entity; use Drupal\Core\Entity\EntityMalformedException; use Drupal\Core\Entity\EntityTypeBundleInfoInterface; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException; use Drupal\Core\Entity\RevisionableInterface; +use Drupal\Core\GeneratedUrl; +use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Core\Url; use Drupal\Tests\UnitTestCase; +use Symfony\Component\Routing\Exception\MissingMandatoryParametersException; /** * Tests URL handling of the \Drupal\Core\Entity\Entity class. @@ -496,6 +500,38 @@ class EntityUrlTest extends UnitTestCase { return $test_cases; } + /** + * Tests the uriRelationships() method. + * + * @covers ::uriRelationships + */ + public function testUriRelationships() { + $entity = $this->getEntity(Entity::class, ['id' => $this->entityId]); + + $container_builder = new ContainerBuilder(); + $url_generator = $this->createMock(UrlGeneratorInterface::class); + $container_builder->set('url_generator', $url_generator); + \Drupal::setContainer($container_builder); + + // Test route with no mandatory parameters. + $this->registerLinkTemplate('canonical'); + $route_name_0 = 'entity.' . $this->entityTypeId . '.canonical'; + $url_generator->expects($this->at(0)) + ->method('generateFromRoute') + ->with($route_name_0) + ->willReturn((new GeneratedUrl())->setGeneratedUrl('/entity_test')); + $this->assertEquals(['canonical'], $entity->uriRelationships()); + + // Test route with non-default mandatory parameters. + $this->registerLinkTemplate('{non_default_parameter}'); + $route_name_1 = 'entity.' . $this->entityTypeId . '.{non_default_parameter}'; + $url_generator->expects($this->at(0)) + ->method('generateFromRoute') + ->with($route_name_1) + ->willThrowException(new MissingMandatoryParametersException()); + $this->assertEquals([], $entity->uriRelationships()); + } + /** * Returns a mock entity for testing. *