function LayoutPluginManagerTest::setUpFilesystem
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Layout/LayoutPluginManagerTest.php \Drupal\Tests\Core\Layout\LayoutPluginManagerTest::setUpFilesystem()
- 8.9.x core/tests/Drupal/Tests/Core/Layout/LayoutPluginManagerTest.php \Drupal\Tests\Core\Layout\LayoutPluginManagerTest::setUpFilesystem()
- 10 core/tests/Drupal/Tests/Core/Layout/LayoutPluginManagerTest.php \Drupal\Tests\Core\Layout\LayoutPluginManagerTest::setUpFilesystem()
Sets up the filesystem with YAML files and annotated plugins.
1 call to LayoutPluginManagerTest::setUpFilesystem()
- LayoutPluginManagerTest::setUp in core/
tests/ Drupal/ Tests/ Core/ Layout/ LayoutPluginManagerTest.php
File
-
core/
tests/ Drupal/ Tests/ Core/ Layout/ LayoutPluginManagerTest.php, line 385
Class
- LayoutPluginManagerTest
- @coversDefaultClass \Drupal\Core\Layout\LayoutPluginManager @group Layout
Namespace
Drupal\Tests\Core\LayoutCode
protected function setUpFilesystem() : void {
$module_a_provided_layout = <<<'EOS'
module_a_provided_layout:
label: 1 column layout
category: 'Columns: 1'
description: 'A module provided layout'
theme_hook: onecol
path: layouts
library: module_a/onecol
regions:
top:
label: Top region
bottom:
label: Bottom region
lorem: ipsum
module_a_derived_layout:
label: 'Invalid provider derived layout'
deriver: \Drupal\Tests\Core\Layout\LayoutDeriver
invalid_provider: true
EOS;
$theme_a_provided_layout = <<<'EOS'
theme_a_provided_layout:
class: '\Drupal\Core\Layout\LayoutDefault'
label: 2 column layout
category: 'Columns: 2'
description: 'A theme provided layout'
template: twocol
path: templates
library: theme_a/twocol
default_region: right
regions:
left:
label: Left region
right:
label: Right region
EOS;
$plugin_provided_layout = <<<'EOS'
<?php
namespace Drupal\Core\Plugin\Layout;
use Drupal\Core\Layout\Attribute\Layout;
use Drupal\Core\Layout\LayoutDefault;
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* The TestLayout Class.
*/
#[Layout(
id: 'plugin_provided_layout',
label: new TranslatableMarkup('Layout plugin'),
category: new TranslatableMarkup('Columns: 1'),
description: new TranslatableMarkup('Test layout'),
path: "core/lib/Drupal/Core",
template: "templates/plugin-provided-layout",
regions: [
"main" => [
"label" => new TranslatableMarkup("Main Region", [], ["context" => "layout_region"]),
],
],
consectetur: 'adipiscing',
)]
class TestLayout extends LayoutDefault {}
EOS;
$plugin_provided_by_annotation_layout = <<<'EOS'
<?php
namespace Drupal\Core\Plugin\Layout;
use Drupal\Core\Layout\LayoutDefault;
/**
* @Layout(
* id = "plugin_provided_by_annotation_layout",
* label = @Translation("Layout by annotation plugin"),
* category = @Translation("Columns: 2"),
* description = @Translation("Test layout provided by annotated plugin"),
* path = "core/lib/Drupal/Core",
* template = "templates/plugin-provided-annotation-layout",
* default_region = "left",
* regions = {
* "left" = {
* "label" = @Translation("Left Region", context = "layout_region")
* },
* "right" = {
* "label" = @Translation("Right Region", context = "layout_region")
* }
* }
* )
*/
class TestAnnotationLayout extends LayoutDefault {}
EOS;
vfsStream::setup('root');
vfsStream::create([
'modules' => [
'module_a' => [
'module_a.layouts.yml' => $module_a_provided_layout,
],
],
]);
vfsStream::create([
'themes' => [
'theme_a' => [
'theme_a.layouts.yml' => $theme_a_provided_layout,
],
],
]);
vfsStream::create([
'core' => [
'lib' => [
'Drupal' => [
'Core' => [
'Plugin' => [
'Layout' => [
'TestLayout.php' => $plugin_provided_layout,
'TestAnnotationLayout.php' => $plugin_provided_by_annotation_layout,
],
],
],
],
],
],
]);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.