public function PanelizerNodeFunctionalTest::testWizardUI in Panelizer 8.5
Same name and namespace in other branches
- 8.3 src/Tests/PanelizerNodeFunctionalTest.php \Drupal\Tests\panelizer\Functional\PanelizerNodeFunctionalTest::testWizardUI()
- 8.4 tests/src/Functional/PanelizerNodeFunctionalTest.php \Drupal\Tests\panelizer\Functional\PanelizerNodeFunctionalTest::testWizardUI()
Tests the admin interface to set a default layout for a bundle.
File
- tests/
src/ Functional/ PanelizerNodeFunctionalTest.php, line 360
Class
- PanelizerNodeFunctionalTest
- Basic functional tests of using Panelizer with nodes.
Namespace
Drupal\Tests\panelizer\FunctionalCode
public function testWizardUI() {
$assert_session = $this
->assertSession();
// Enter the wizard.
$this
->drupalGet('admin/structure/panelizer/edit/node__page__default__default');
$this
->assertResponse(200);
$this
->assertText('Wizard Information');
$this
->assertField('edit-label');
// Contexts step.
$this
->clickLink('Contexts');
$this
->assertText('@panelizer.entity_context:entity', 'The current entity context is present.');
// Layout selection step.
$this
->clickLink('Layout');
$this
->assertSession()
->buttonExists('edit-update-layout');
// Content step. Add the Node block to the top region.
$this
->clickLink('Content');
$this
->clickLink('Add new block');
$this
->clickLink('Title');
$edit = [
'region' => 'content',
];
$this
->submitForm($edit, 'Add block');
$this
->assertResponse(200);
// Finish the wizard.
$this
->submitForm([], 'Update and save');
$this
->assertResponse(200);
// Confirm this returned to the main wizard page.
$this
->assertText('Wizard Information');
$this
->assertField('edit-label');
// Return to the Manage Display page, which is where the Cancel button
// currently sends you. That's a UX WTF and should be fixed...
$this
->submitForm([], 'Cancel');
$this
->assertResponse(200);
// Confirm the page is back to the content type settings page.
$this
->assertFieldChecked('edit-panelizer-custom');
// Now change and save the general setting.
$edit = [
'panelizer[custom]' => FALSE,
];
$this
->submitForm($edit, 'Save');
$assert_session
->statusCodeEquals(200);
$assert_session
->fieldNotExists('panelizer[custom]');
// Add another block at the Content step and then save changes.
$this
->drupalGet('admin/structure/panelizer/edit/node__page__default__default/content');
$this
->assertResponse(200);
$this
->clickLink('Add new block');
$this
->clickLink('Body');
$edit = [
'region' => 'content',
];
$this
->submitForm($edit, 'Add block');
$this
->assertResponse(200);
$this
->assertText('entity_field:node:body', 'The body block was added successfully.');
$this
->submitForm([], 'Save');
$this
->assertResponse(200);
$this
->clickLink('Content');
$this
->assertText('entity_field:node:body', 'The body block was saved successfully.');
// Check that the Manage Display tab changed now that Panelizer is set up.
// Also, the field display table should be hidden.
$this
->assertNoRaw('<div id="field-display-overview-wrapper">');
// Disable Panelizer for the default display mode. This should bring back
// the field overview table at Manage Display and not display the link to
// edit the default Panelizer layout.
$this
->unpanelize('page');
$this
->assertNoLinkByHref('admin/structure/panelizer/edit/node__page__default');
$this
->assertRaw('<div id="field-display-overview-wrapper">');
}