View source
<?php
namespace Drupal\Tests\layout_builder\Functional\Update;
use Drupal\FunctionalTests\Update\UpdatePathTestBase;
class LayoutBuilderEnableUpdatePathTest extends UpdatePathTestBase {
protected function setDatabaseDumpFiles() {
$this->databaseDumpFiles = [
__DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz',
__DIR__ . '/../../../fixtures/update/layout-builder.php',
__DIR__ . '/../../../fixtures/update/layout-builder-enable.php',
];
}
public function testRunUpdates() {
$assert_session = $this
->assertSession();
$expected = [
'sections' => [
[
'layout_id' => 'layout_onecol',
'layout_settings' => [],
'components' => [
'some-uuid' => [
'uuid' => 'some-uuid',
'region' => 'content',
'configuration' => [
'id' => 'system_powered_by_block',
],
'additional' => [],
'weight' => 0,
],
],
'third_party_settings' => [],
],
],
];
$this
->assertLayoutBuilderSettings($expected, 'block_content', 'basic', 'default');
$this
->assertLayoutBuilderSettings(NULL, 'node', 'page', 'default');
$this
->runUpdates();
$expected['enabled'] = TRUE;
$expected['sections'][0]['layout_settings']['label'] = '';
$this
->assertLayoutBuilderSettings($expected, 'block_content', 'basic', 'default');
$this
->assertLayoutBuilderSettings(NULL, 'node', 'page', 'default');
$this
->drupalLogin($this->rootUser);
$this
->drupalGet('admin/structure/block/block-content/manage/basic/display');
$assert_session
->checkboxChecked('layout[enabled]');
$this
->drupalGet('admin/structure/types/manage/page/display');
$assert_session
->checkboxNotChecked('layout[enabled]');
}
protected function assertLayoutBuilderSettings($expected, $entity_type_id, $bundle, $view_mode) {
$this
->assertEquals($expected, \Drupal::config("core.entity_view_display.{$entity_type_id}.{$bundle}.{$view_mode}")
->get('third_party_settings.layout_builder'));
}
}