Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / layout_builder / tests / src / Functional / Update / LayoutBuilderEnableUpdatePathTest.php
1 <?php
2
3 namespace Drupal\Tests\layout_builder\Functional\Update;
4
5 use Drupal\FunctionalTests\Update\UpdatePathTestBase;
6
7 /**
8  * Tests the upgrade path for enabling Layout Builder.
9  *
10  * @see layout_builder_update_8601()
11  *
12  * @group layout_builder
13  * @group legacy
14  */
15 class LayoutBuilderEnableUpdatePathTest extends UpdatePathTestBase {
16
17   /**
18    * {@inheritdoc}
19    */
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',
25     ];
26   }
27
28   /**
29    * Tests the upgrade path for enabling Layout Builder.
30    */
31   public function testRunUpdates() {
32     $assert_session = $this->assertSession();
33
34     $expected = [
35       'sections' => [
36         [
37           'layout_id' => 'layout_onecol',
38           'layout_settings' => [],
39           'components' => [
40             'some-uuid' => [
41               'uuid' => 'some-uuid',
42               'region' => 'content',
43               'configuration' => [
44                 'id' => 'system_powered_by_block',
45               ],
46               'additional' => [],
47               'weight' => 0,
48             ],
49           ],
50         ],
51       ],
52     ];
53     $this->assertLayoutBuilderSettings($expected, 'block_content', 'basic', 'default');
54     $this->assertLayoutBuilderSettings(NULL, 'node', 'page', 'default');
55
56     $this->runUpdates();
57
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');
62
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]');
68   }
69
70   /**
71    * Asserts the Layout Builder settings for a given display.
72    *
73    * @param mixed $expected
74    *   The expected value.
75    * @param string $entity_type_id
76    *   The entity type ID.
77    * @param string $bundle
78    *   The bundle.
79    * @param string $view_mode
80    *   The view mode.
81    */
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'));
84   }
85
86 }