diff --git a/core/modules/user/src/Tests/UserFieldsTest.php b/core/modules/user/src/Tests/UserFieldsTest.php new file mode 100644 index 0000000..2606bc7 --- /dev/null +++ b/core/modules/user/src/Tests/UserFieldsTest.php @@ -0,0 +1,61 @@ +account = $this->drupalCreateUser(array()); + + // Setup a test theme with fields. + + } + + /** + * Tests account's available fields. + */ + function testUserFields() { + $this->drupalLogin($this->account); + + \Drupal::service('theme_handler')->install(array('user_test_theme')); + \Drupal::theme()->setActiveTheme(\Drupal::service('theme.initialization')->initTheme('user_test_theme')); + $this->container->set('theme.registry', NULL); + //$themes = \Drupal::service('theme_handler')->listInfo(); + $registry = $this->container->get('theme.registry'); + $registry->reset(); + $templates = $registry->getRuntime(); + //debug($templates); + $this->drupalGet('user'); + } +} diff --git a/core/modules/user/tests/themes/user_test_theme/user.html.twig b/core/modules/user/tests/themes/user_test_theme/user.html.twig new file mode 100644 index 0000000..7bede96 --- /dev/null +++ b/core/modules/user/tests/themes/user_test_theme/user.html.twig @@ -0,0 +1,32 @@ +{# +/** + * @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 + */ +#} +

This is a test

+ + {% if content %} + {{- content -}} + {% endif %} +

AAA {{ user.mail.value }}

+ diff --git a/core/modules/user/tests/themes/user_test_theme/user_test_theme.info.yml b/core/modules/user/tests/themes/user_test_theme/user_test_theme.info.yml new file mode 100644 index 0000000..817d265 --- /dev/null +++ b/core/modules/user/tests/themes/user_test_theme/user_test_theme.info.yml @@ -0,0 +1,11 @@ +name: 'User Test theme' +type: theme +description: 'Theme for testing the available fields in user twig template' +version: VERSION +core: 8.x +stylesheets-remove: + - system.module.css +regions: + content: Content + left: Left + right: Right diff --git a/core/modules/user/user.module b/core/modules/user/user.module index 86c063d..1aebc44 100644 --- a/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -1501,6 +1501,7 @@ function user_logout() { * - attributes: HTML attributes for the containing element. */ function template_preprocess_user(&$variables) { + $variables['user'] = $variables['elements']['#user']; // Helpful $content variable for templates. foreach (Element::children($variables['elements']) as $key) { $variables['content'][$key] = $variables['elements'][$key];