public function EntityUsageLayoutBuilderTest::testLayoutBuilderInlineBlockUsage in Entity Usage 8.4
Same name in this branch
- 8.4 tests/src/Functional/EntityUsageLayoutBuilderTest.php \Drupal\Tests\entity_usage\Functional\EntityUsageLayoutBuilderTest::testLayoutBuilderInlineBlockUsage()
- 8.4 tests/src/Kernel/EntityUsageLayoutBuilderTest.php \Drupal\Tests\entity_usage\Kernel\EntityUsageLayoutBuilderTest::testLayoutBuilderInlineBlockUsage()
Same name and namespace in other branches
- 8.2 tests/src/Functional/EntityUsageLayoutBuilderTest.php \Drupal\Tests\entity_usage\Functional\EntityUsageLayoutBuilderTest::testLayoutBuilderInlineBlockUsage()
Test entities referenced by block content in LB are shown on usage page.
E.g, if entityHost (with LB) -> Block Content -> entityInner, when navigating to entityInner, the source relationship is shown as ultimately coming from entityHost (via Block Content).
File
- tests/
src/ Functional/ EntityUsageLayoutBuilderTest.php, line 86
Class
- EntityUsageLayoutBuilderTest
- Tests layout builder usage through Inline Blocks displays in UI.
Namespace
Drupal\Tests\entity_usage\FunctionalCode
public function testLayoutBuilderInlineBlockUsage() {
$innerEntity = EntityTest::create([
'name' => $this
->randomMachineName(),
]);
$innerEntity
->save();
$type = BlockContentType::create([
'id' => 'foo',
'label' => 'Foo',
]);
$type
->save();
$fieldStorage = FieldStorageConfig::create([
'field_name' => 'myref',
'entity_type' => 'block_content',
'type' => 'entity_reference',
'settings' => [
'target_type' => 'entity_test',
],
]);
$fieldStorage
->save();
$field = FieldConfig::create([
'field_storage' => $fieldStorage,
'bundle' => $type
->id(),
]);
$field
->save();
$block = BlockContent::create([
'type' => $type
->id(),
'reusable' => 0,
'myref' => $innerEntity,
]);
$block
->save();
$sectionData = [
new Section('layout_onecol', [], [
'first-uuid' => new SectionComponent('first-uuid', 'content', [
'id' => 'inline_block:' . $type
->id(),
'block_revision_id' => $block
->getRevisionId(),
]),
]),
];
$entityHost = EntityTest::create([
'name' => $this
->randomMachineName(),
OverridesSectionStorage::FIELD_NAME => $sectionData,
]);
$entityHost
->save();
$this
->drupalLogin($this
->drupalCreateUser([
'access entity usage statistics',
'view test entity',
]));
$this
->drupalGet(Url::fromRoute('entity.entity_test.entity_usage', [
'entity_test' => $innerEntity
->id(),
]));
$this
->assertSession()
->statusCodeEquals(200);
$row1 = $this
->assertSession()
->elementExists('css', 'table tbody tr:nth-child(1)');
$link = $this
->assertSession()
->elementExists('css', 'td:nth-child(1) a', $row1);
$this
->assertEquals($entityHost
->label(), $link
->getText());
$this
->assertEquals($link
->getAttribute('href'), $entityHost
->toUrl()
->toString());
}