3 namespace Drupal\Tests\layout_builder\Functional\Update;
5 use Drupal\FunctionalTests\Update\UpdatePathTestBase;
8 * Tests the upgrade path for enabling Layout Builder.
10 * @see layout_builder_update_8601()
12 * @group layout_builder
15 class LayoutBuilderEnableUpdatePathTest extends UpdatePathTestBase {
20 protected function setDatabaseDumpFiles() {
21 $this->databaseDumpFiles = [
22 __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz',
23 __DIR__ . '/../../../fixtures/update/layout-builder.php',
24 __DIR__ . '/../../../fixtures/update/layout-builder-enable.php',
29 * Tests the upgrade path for enabling Layout Builder.
31 public function testRunUpdates() {
32 $assert_session = $this->assertSession();
37 'layout_id' => 'layout_onecol',
38 'layout_settings' => [],
41 'uuid' => 'some-uuid',
42 'region' => 'content',
44 'id' => 'system_powered_by_block',
53 $this->assertLayoutBuilderSettings($expected, 'block_content', 'basic', 'default');
54 $this->assertLayoutBuilderSettings(NULL, 'node', 'page', 'default');
58 // The display with existing sections is enabled while the other is not.
59 $expected['enabled'] = TRUE;
60 $this->assertLayoutBuilderSettings($expected, 'block_content', 'basic', 'default');
61 $this->assertLayoutBuilderSettings(NULL, 'node', 'page', 'default');
63 $this->drupalLogin($this->rootUser);
64 $this->drupalGet('admin/structure/block/block-content/manage/basic/display');
65 $assert_session->checkboxChecked('layout[enabled]');
66 $this->drupalGet('admin/structure/types/manage/page/display');
67 $assert_session->checkboxNotChecked('layout[enabled]');
71 * Asserts the Layout Builder settings for a given display.
73 * @param mixed $expected
75 * @param string $entity_type_id
77 * @param string $bundle
79 * @param string $view_mode
82 protected function assertLayoutBuilderSettings($expected, $entity_type_id, $bundle, $view_mode) {
83 $this->assertEquals($expected, \Drupal::config("core.entity_view_display.$entity_type_id.$bundle.$view_mode")->get('third_party_settings.layout_builder'));