public function PanelizerDefaultsTest::test in Panelizer 8.4
Same name and namespace in other branches
- 8.5 tests/src/Functional/PanelizerDefaultsTest.php \Drupal\Tests\panelizer\Functional\PanelizerDefaultsTest::test()
- 8.3 src/Tests/PanelizerDefaultsTest.php \Drupal\Tests\panelizer\Functional\PanelizerDefaultsTest::test()
File
- tests/
src/ Functional/ PanelizerDefaultsTest.php, line 55
Class
- PanelizerDefaultsTest
- Confirm the defaults functionality works.
Namespace
Drupal\Tests\panelizer\FunctionalCode
public function test() {
$this
->setupContentType();
$this
->loginUser1();
// Get all enabled view modes machine names for page.
$view_modes = array_keys(\Drupal::service('entity_display.repository')
->getViewModeOptionsByBundle('node', 'page'));
foreach ($view_modes as $i => $view_mode_name) {
// Be sure view mode can be panelized.
$this
->panelize('page', $view_mode_name);
// Create an additional default layout so we can assert that it's available
// as an option when choosing the layout on the node form.
$panelizer_id = $this
->addPanelizerDefault('page', $view_mode_name);
$this
->assertDefaultExists('page', $view_mode_name, $panelizer_id);
// The user should only be able to choose the layout if specifically allowed
// to (the panelizer[allow] checkbox in the view display configuration). By
// default, they aren't.
$this
->drupalGet('node/add/page');
$this
->assertResponse(200);
$this
->assertNoFieldByName("panelizer['{$i}][default]");
// Allow user to select panelized modes in UI.
$this
->panelize('page', $view_mode_name, [
'panelizer[custom]' => TRUE,
'panelizer[allow]' => TRUE,
]);
$this
->drupalGet('node/add/page');
$this
->assertResponse(200);
$this
->assertFieldByName("panelizer[{$i}][default]");
$this
->assertOption("edit-panelizer-{$i}-default", 'default');
$this
->assertOption("edit-panelizer-{$i}-default", $panelizer_id);
// Clean up.
$this
->deletePanelizerDefault('page', $view_mode_name, $panelizer_id);
$this
->assertDefaultNotExists('page', $view_mode_name, $panelizer_id);
}
}