Issue #3012172 by acbramley: EntityViewBuilder::addContextualLinks assumes an entity's canonical rel is routed/internal
(cherry picked from commit caa4845430
)
merge-requests/803/head
parent
ae21ac5cf8
commit
af362ba8a6
|
@ -362,7 +362,7 @@ class EntityViewBuilder extends EntityHandlerBase implements EntityHandlerInterf
|
||||||
$rel = 'revision';
|
$rel = 'revision';
|
||||||
$key .= '_revision';
|
$key .= '_revision';
|
||||||
}
|
}
|
||||||
if ($entity->hasLinkTemplate($rel)) {
|
if ($entity->hasLinkTemplate($rel) && $entity->toUrl($rel)->isRouted()) {
|
||||||
$build['#contextual_links'][$key] = [
|
$build['#contextual_links'][$key] = [
|
||||||
'route_parameters' => $entity->toUrl($rel)->getRouteParameters(),
|
'route_parameters' => $entity->toUrl($rel)->getRouteParameters(),
|
||||||
];
|
];
|
||||||
|
|
|
@ -343,4 +343,18 @@ class EntityViewBuilderTest extends EntityKernelTestBase {
|
||||||
$this->assertArrayNotHasKey('#theme', $build);
|
$this->assertArrayNotHasKey('#theme', $build);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests an entity type with an external canonical rel.
|
||||||
|
*/
|
||||||
|
public function testExternalEntity() {
|
||||||
|
$this->installEntitySchema('entity_test_external');
|
||||||
|
/** @var \Drupal\Core\Render\RendererInterface $renderer */
|
||||||
|
$renderer = $this->container->get('renderer');
|
||||||
|
$entity_test = $this->createTestEntity('entity_test_external');
|
||||||
|
$entity_test->save();
|
||||||
|
$view = $this->container->get('entity_type.manager')->getViewBuilder('entity_test_external')->view($entity_test);
|
||||||
|
$renderer->renderRoot($view);
|
||||||
|
$this->assertArrayNotHasKey('#contextual_links', $view);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue