use Drupal\Core\Layout\LayoutDefault;
use Drupal\Core\Layout\LayoutDefinition;
use Drupal\Core\Layout\LayoutPluginManager;
+use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Tests\UnitTestCase;
use org\bovigo\vfs\vfsStream;
use Prophecy\Argument;
$theme_a_path = vfsStream::url('root/themes/theme_a');
$layout_definition = $this->layoutPluginManager->getDefinition('theme_a_provided_layout');
$this->assertSame('theme_a_provided_layout', $layout_definition->id());
- $this->assertSame('2 column layout', $layout_definition->getLabel());
- $this->assertSame('Columns: 2', $layout_definition->getCategory());
+ $this->assertSame('2 column layout', (string) $layout_definition->getLabel());
+ $this->assertSame('Columns: 2', (string) $layout_definition->getCategory());
+ $this->assertSame('A theme provided layout', (string) $layout_definition->getDescription());
+ $this->assertTrue($layout_definition->getLabel() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getCategory() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getDescription() instanceof TranslatableMarkup);
$this->assertSame('twocol', $layout_definition->getTemplate());
$this->assertSame("$theme_a_path/templates", $layout_definition->getPath());
$this->assertSame('theme_a/twocol', $layout_definition->getLibrary());
$this->assertSame(LayoutDefault::class, $layout_definition->getClass());
$expected_regions = [
'left' => [
- 'label' => 'Left region',
+ 'label' => new TranslatableMarkup('Left region', [], ['context' => 'layout_region']),
],
'right' => [
- 'label' => 'Right region',
+ 'label' => new TranslatableMarkup('Right region', [], ['context' => 'layout_region']),
],
];
- $this->assertSame($expected_regions, $layout_definition->getRegions());
+ $regions = $layout_definition->getRegions();
+ $this->assertEquals($expected_regions, $regions);
+ $this->assertTrue($regions['left']['label'] instanceof TranslatableMarkup);
+ $this->assertTrue($regions['right']['label'] instanceof TranslatableMarkup);
$module_a_path = vfsStream::url('root/modules/module_a');
$layout_definition = $this->layoutPluginManager->getDefinition('module_a_provided_layout');
$this->assertSame('module_a_provided_layout', $layout_definition->id());
- $this->assertSame('1 column layout', $layout_definition->getLabel());
- $this->assertSame('Columns: 1', $layout_definition->getCategory());
+ $this->assertSame('1 column layout', (string) $layout_definition->getLabel());
+ $this->assertSame('Columns: 1', (string) $layout_definition->getCategory());
+ $this->assertSame('A module provided layout', (string) $layout_definition->getDescription());
+ $this->assertTrue($layout_definition->getLabel() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getCategory() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getDescription() instanceof TranslatableMarkup);
$this->assertSame(NULL, $layout_definition->getTemplate());
$this->assertSame("$module_a_path/layouts", $layout_definition->getPath());
$this->assertSame('module_a/onecol', $layout_definition->getLibrary());
$this->assertSame(LayoutDefault::class, $layout_definition->getClass());
$expected_regions = [
'top' => [
- 'label' => 'Top region',
+ 'label' => new TranslatableMarkup('Top region', [], ['context' => 'layout_region']),
],
'bottom' => [
- 'label' => 'Bottom region',
+ 'label' => new TranslatableMarkup('Bottom region', [], ['context' => 'layout_region']),
],
];
- $this->assertSame($expected_regions, $layout_definition->getRegions());
+ $regions = $layout_definition->getRegions();
+ $this->assertEquals($expected_regions, $regions);
+ $this->assertTrue($regions['top']['label'] instanceof TranslatableMarkup);
+ $this->assertTrue($regions['bottom']['label'] instanceof TranslatableMarkup);
$core_path = '/core/lib/Drupal/Core';
$layout_definition = $this->layoutPluginManager->getDefinition('plugin_provided_layout');
$this->assertSame('plugin_provided_layout', $layout_definition->id());
$this->assertEquals('Layout plugin', $layout_definition->getLabel());
$this->assertEquals('Columns: 1', $layout_definition->getCategory());
+ $this->assertEquals('Test layout', $layout_definition->getDescription());
+ $this->assertTrue($layout_definition->getLabel() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getCategory() instanceof TranslatableMarkup);
+ $this->assertTrue($layout_definition->getDescription() instanceof TranslatableMarkup);
$this->assertSame('plugin-provided-layout', $layout_definition->getTemplate());
$this->assertSame($core_path, $layout_definition->getPath());
$this->assertSame(NULL, $layout_definition->getLibrary());
$this->assertSame('Drupal\Core\Plugin\Layout\TestLayout', $layout_definition->getClass());
$expected_regions = [
'main' => [
- 'label' => 'Main Region',
+ 'label' => new TranslatableMarkup('Main Region', [], ['context' => 'layout_region']),
],
];
- $this->assertEquals($expected_regions, $layout_definition->getRegions());
+ $regions = $layout_definition->getRegions();
+ $this->assertEquals($expected_regions, $regions);
+ $this->assertTrue($regions['main']['label'] instanceof TranslatableMarkup);
}
/**
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
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
* template = "templates/plugin-provided-layout",
* regions = {
* "main" = {
- * "label" = @Translation("Main Region")
+ * "label" = @Translation("Main Region", context = "layout_region")
* }
* }
* )