diff --git a/core/modules/system/src/Tests/Theme/TwigRegistryLoaderTest.php b/core/modules/system/src/Tests/Theme/TwigRegistryLoaderTest.php index 589632b..79dcd82 100644 --- a/core/modules/system/src/Tests/Theme/TwigRegistryLoaderTest.php +++ b/core/modules/system/src/Tests/Theme/TwigRegistryLoaderTest.php @@ -30,7 +30,7 @@ class TwigRegistryLoaderTest extends WebTestBase { protected function setUp() { parent::setUp(); - \Drupal::service('theme_handler')->install(array('test_theme_twig_registry_loader')); + \Drupal::service('theme_handler')->install(array('test_theme_twig_registry_loader', 'test_theme_twig_registry_loader_theme', 'test_theme_twig_registry_loader_subtheme')); $this->twig = \Drupal::service('twig'); } @@ -65,6 +65,25 @@ public function testTwigNamespaces() { $this->drupalGet('twig-theme-test/registry-loader'); $this->assertText('This line is from test_theme_twig_registry_loader/templates/twig-registry-loader-test-extend.html.twig'); $this->assertText('This line is from test_theme_twig_registry_loader/templates/twig-registry-loader-test-include.html.twig'); + + // Enable overriding theme that overrides the extend and insert templates + // from the base theme. + $this->config('system.theme') + ->set('default', 'test_theme_twig_registry_loader_theme') + ->save(); + $this->drupalGet('twig-theme-test/registry-loader'); + $this->assertText('This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig'); + $this->assertText('This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig'); + + // Enable a subtheme for the theme that doesnt have any overrides to make + // sure that templates are being loaded from the first parent which has the + // templates. + $this->config('system.theme') + ->set('default', 'test_theme_twig_registry_loader_subtheme') + ->save(); + $this->drupalGet('twig-theme-test/registry-loader'); + $this->assertText('This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig'); + $this->assertText('This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig'); } } diff --git a/core/modules/system/tests/themes/test_theme_twig_registry_loader_subtheme/test_theme_twig_registry_loader_subtheme.info.yml b/core/modules/system/tests/themes/test_theme_twig_registry_loader_subtheme/test_theme_twig_registry_loader_subtheme.info.yml new file mode 100644 index 0000000..74c3f35 --- /dev/null +++ b/core/modules/system/tests/themes/test_theme_twig_registry_loader_subtheme/test_theme_twig_registry_loader_subtheme.info.yml @@ -0,0 +1,6 @@ +name: 'Twig registry loader test subtheme' +type: theme +base theme: test_theme_twig_registry_loader_theme +description: 'Support module for Twig registry loader testing.' +version: VERSION +core: 8.x diff --git a/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig new file mode 100644 index 0000000..047e498 --- /dev/null +++ b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig @@ -0,0 +1,5 @@ +This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-extend.html.twig + +{% block content %} +This text is in a block. +{% endblock %} diff --git a/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig new file mode 100644 index 0000000..9c72a23 --- /dev/null +++ b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig @@ -0,0 +1 @@ +This line is from test_theme_twig_registry_loader_theme/templates/twig-registry-loader-test-include.html.twig diff --git a/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/test_theme_twig_registry_loader_theme.info.yml b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/test_theme_twig_registry_loader_theme.info.yml new file mode 100644 index 0000000..64455f5 --- /dev/null +++ b/core/modules/system/tests/themes/test_theme_twig_registry_loader_theme/test_theme_twig_registry_loader_theme.info.yml @@ -0,0 +1,6 @@ +name: 'Twig registry loader test theme' +type: theme +base theme: test_theme_twig_registry_loader +description: 'Support module for Twig registry loader testing.' +version: VERSION +core: 8.x diff --git a/core/themes/bartik/templates/user.html.twig b/core/themes/bartik/templates/user.html.twig new file mode 100644 index 0000000..c44448b --- /dev/null +++ b/core/themes/bartik/templates/user.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Default theme implementation to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. + * - Field variables: For each field attached to the user a corresponding + * variable is defined; e.g., account.field_example has a variable + * 'field_example' defined. When needing to access a field's raw values, + * developers/themers are strongly encouraged to use these variables. + * Otherwise they will have to explicitly specify the desired field language, + * e.g. account.field_example.en, thus overriding any language negotiation + * rule that was previously applied. + * - attributes: HTML attributes for the container element. + * + * @see template_preprocess_user() + * + * @ingroup themeable + */ +#} + + {% if content %} + {{- content -}} + {% endif %} +