diff --git a/core/modules/layout_builder/config/schema/layout_builder.schema.yml b/core/modules/layout_builder/config/schema/layout_builder.schema.yml index 7faad99c24a3..d92cc4286e9f 100644 --- a/core/modules/layout_builder/config/schema/layout_builder.schema.yml +++ b/core/modules/layout_builder/config/schema/layout_builder.schema.yml @@ -64,3 +64,16 @@ inline_block: block.settings.inline_block:*: type: inline_block + +layout_builder_multi_width: + type: layout_plugin.settings + mapping: + column_widths: + type: string + label: 'Column widths' + +layout_plugin.settings.layout_twocol_section: + type: layout_builder_multi_width + +layout_plugin.settings.layout_threecol_section: + type: layout_builder_multi_width diff --git a/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/config/install/core.entity_view_display.entity_test.bundle_with_extra_fields.default.yml b/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/config/install/core.entity_view_display.entity_test.bundle_with_extra_fields.default.yml new file mode 100644 index 000000000000..7c1bf15e6caa --- /dev/null +++ b/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/config/install/core.entity_view_display.entity_test.bundle_with_extra_fields.default.yml @@ -0,0 +1,36 @@ +langcode: en +status: true +dependencies: + module: + - layout_builder +third_party_settings: + layout_builder: + sections: + - + layout_id: layout_twocol_section + layout_settings: + column_widths: '50-50' + components: + 1445597a-c674-431d-ac0a-277d99347a7f: + uuid: 1445597a-c674-431d-ac0a-277d99347a7f + region: first + configuration: + label_display: '0' + context_mapping: + entity: layout_builder.entity + id: 'extra_field_block:entity_test:bundle_with_extra_fields:display_extra_field' + additional: { } + weight: 1 + allow_custom: false + enabled: true +id: entity_test.bundle_with_extra_fields.default +targetEntityType: entity_test +bundle: bundle_with_extra_fields +mode: default +content: + display_extra_field: + weight: 100 + settings: { } + third_party_settings: { } + region: content +hidden: { } diff --git a/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/layout_builder_defaults_test.info.yml b/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/layout_builder_defaults_test.info.yml new file mode 100644 index 000000000000..ab5323585883 --- /dev/null +++ b/core/modules/layout_builder/tests/modules/layout_builder_defaults_test/layout_builder_defaults_test.info.yml @@ -0,0 +1,6 @@ +name: 'Layout Builder defaults test' +type: module +description: 'Support module for testing layout building defaults.' +package: Testing +version: VERSION +core: 8.x diff --git a/core/modules/layout_builder/tests/src/Kernel/DefaultsSectionStorageTest.php b/core/modules/layout_builder/tests/src/Kernel/DefaultsSectionStorageTest.php index 5e3e1a2cb520..f5c0c93fa20f 100644 --- a/core/modules/layout_builder/tests/src/Kernel/DefaultsSectionStorageTest.php +++ b/core/modules/layout_builder/tests/src/Kernel/DefaultsSectionStorageTest.php @@ -25,6 +25,7 @@ class DefaultsSectionStorageTest extends KernelTestBase { protected static $modules = [ 'layout_discovery', 'layout_builder', + 'layout_builder_defaults_test', 'entity_test', 'field', 'system', @@ -44,13 +45,27 @@ class DefaultsSectionStorageTest extends KernelTestBase { protected function setUp() { parent::setUp(); + entity_test_create_bundle('bundle_with_extra_fields'); $this->installSchema('system', ['key_value_expire']); $this->installEntitySchema('entity_test'); $this->installEntitySchema('user'); + $this->installConfig(['layout_builder_defaults_test']); $this->plugin = DefaultsSectionStorage::create($this->container, [], 'defaults', new SectionStorageDefinition()); } + /** + * Tests installing defaults via config install. + */ + public function testConfigInstall() { + /** @var \Drupal\layout_builder\Entity\LayoutEntityDisplayInterface $display */ + $display = LayoutBuilderEntityViewDisplay::load('entity_test.bundle_with_extra_fields.default'); + $section = $display->getSection(0); + $this->assertInstanceOf(Section::class, $section); + $this->assertEquals('layout_twocol_section', $section->getLayoutId()); + $this->assertEquals(['column_widths' => '50-50'], $section->getLayoutSettings()); + } + /** * @covers ::access * @dataProvider providerTestAccess