diff --git a/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.info.yml b/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.info.yml new file mode 100644 index 0000000..4d699e4 --- /dev/null +++ b/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.info.yml @@ -0,0 +1,8 @@ +name: 'Field Layout test' +type: module +description: 'Support module for Field Layout tests.' +core: 8.x +package: Testing +version: VERSION +dependencies: + - entity_test diff --git a/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.routing.yml b/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.routing.yml new file mode 100644 index 0000000..bcea288 --- /dev/null +++ b/core/modules/field_layout/tests/modules/field_layout_test/field_layout_test.routing.yml @@ -0,0 +1,7 @@ +entity.entity_test.test_view_mode: + path: '/entity_test/{entity_test}/test' + defaults: + _entity_view: 'entity_test.test' + _title: 'Test test view mode' + requirements: + _entity_access: 'entity_test.view' diff --git a/core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php b/core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php index aadf3ea..ea007e0 100644 --- a/core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php +++ b/core/modules/field_layout/tests/src/FunctionalJavascript/FieldLayoutTest.php @@ -15,7 +15,7 @@ class FieldLayoutTest extends JavascriptTestBase { /** * {@inheritdoc} */ - public static $modules = ['field_layout', 'field_ui', 'node', 'entity_test']; + public static $modules = ['field_layout', 'field_ui', 'node', 'field_layout_test']; /** * {@inheritdoc} @@ -57,6 +57,35 @@ protected function setUp() { } /** + * Tests that layouts are unique per-view mode. + */ + public function testEntityViewModes() { + // By default, the field is not visible. + $this->drupalGet('entity_test/1/test'); + $this->assertSession()->elementNotExists('css', '.field-layout-region--content .field--name-field-test-text'); + $this->drupalGet('entity_test/1'); + $this->assertSession()->elementNotExists('css', '.field-layout-region--content .field--name-field-test-text'); + + // Change the layout for the "test" view mode. See + // core.entity_view_mode.entity_test.test.yml. + $this->drupalGet('entity_test/structure/entity_test/display'); + $this->click('#edit-modes'); + $this->getSession()->getPage()->checkField('display_modes_custom[test]'); + $this->submitForm([], 'Save'); + $this->clickLink('configure them'); + $this->getSession()->getPage()->pressButton('Show row weights'); + $this->getSession()->getPage()->selectFieldOption('fields[field_test_text][region]', 'content'); + $this->assertSession()->assertWaitOnAjaxRequest(); + $this->submitForm([], 'Save'); + + // Each view mode has a different layout. + $this->drupalGet('entity_test/1/test'); + $this->assertSession()->elementExists('css', '.field-layout-region--content .field--name-field-test-text'); + $this->drupalGet('entity_test/1'); + $this->assertSession()->elementNotExists('css', '.field-layout-region--content .field--name-field-test-text'); + } + + /** * Tests the use of field layout for entity form displays. */ public function testEntityForm() { @@ -86,9 +115,8 @@ public function testEntityForm() { $this->assertEquals(['Left', 'Right', 'Disabled'], $this->getRegionTitles()); // Drag the field to the left region. - $page = $this->getSession()->getPage(); - $field_test_text_row = $page->find('css', '#field-test-text'); - $left_region_row = $page->find('css', '.region-left-message'); + $field_test_text_row = $this->getSession()->getPage()->find('css', '#field-test-text'); + $left_region_row = $this->getSession()->getPage()->find('css', '.region-left-message'); $field_test_text_row->find('css', '.handle')->dragTo($left_region_row); $this->assertSession()->assertWaitOnAjaxRequest(); $field_test_text_row->hasClass('.drag-previous'); @@ -102,7 +130,7 @@ public function testEntityForm() { // Move the field to the right region without tabledrag. $this->drupalGet('entity_test/structure/entity_test/form-display'); - $page->pressButton('Show row weights'); + $this->getSession()->getPage()->pressButton('Show row weights'); $this->getSession()->getPage()->selectFieldOption('fields[field_test_text][region]', 'right'); $this->assertSession()->assertWaitOnAjaxRequest(); $this->submitForm([], 'Save'); @@ -144,12 +172,13 @@ public function testEntityView() { $this->assertEquals(['Left', 'Right', 'Disabled'], $this->getRegionTitles()); // Drag the field to the left region. - $page = $this->getSession()->getPage(); - $field_test_text_row = $page->find('css', '#field-test-text'); - $left_region_row = $page->find('css', '.region-left-message'); + $this->assertTrue($this->assertSession()->optionExists('fields[field_test_text][type]', 'hidden')->isSelected()); + $field_test_text_row = $this->getSession()->getPage()->find('css', '#field-test-text'); + $left_region_row = $this->getSession()->getPage()->find('css', '.region-left-message'); $field_test_text_row->find('css', '.handle')->dragTo($left_region_row); $this->assertSession()->assertWaitOnAjaxRequest(); $field_test_text_row->hasClass('.drag-previous'); + $this->assertTrue($this->assertSession()->optionExists('fields[field_test_text][type]', 'text_trimmed')->isSelected()); $this->submitForm([], 'Save'); $this->assertSession()->pageTextContains('Your settings have been saved.'); @@ -159,7 +188,7 @@ public function testEntityView() { // Move the field to the right region without tabledrag. $this->drupalGet('entity_test/structure/entity_test/display'); - $page->pressButton('Show row weights'); + $this->getSession()->getPage()->pressButton('Show row weights'); $this->getSession()->getPage()->selectFieldOption('fields[field_test_text][region]', 'right'); $this->assertSession()->assertWaitOnAjaxRequest(); $this->submitForm([], 'Save');