Mercurial > hg > isophonics-drupal-site
comparison core/modules/user/tests/src/Functional/UserLanguageCreationTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
13:5fb285c0d0e3 | 14:1fec387a4317 |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\user\Functional; | |
4 | |
5 use Drupal\language\Entity\ConfigurableLanguage; | |
6 use Drupal\Tests\BrowserTestBase; | |
7 | |
8 /** | |
9 * Tests whether proper language is stored for new users and access to language | |
10 * selector. | |
11 * | |
12 * @group user | |
13 */ | |
14 class UserLanguageCreationTest extends BrowserTestBase { | |
15 | |
16 /** | |
17 * Modules to enable. | |
18 * | |
19 * @var array | |
20 */ | |
21 public static $modules = ['user', 'language']; | |
22 | |
23 /** | |
24 * Functional test for language handling during user creation. | |
25 */ | |
26 public function testLocalUserCreation() { | |
27 // User to add and remove language and create new users. | |
28 $admin_user = $this->drupalCreateUser(['administer languages', 'access administration pages', 'administer users']); | |
29 $this->drupalLogin($admin_user); | |
30 | |
31 // Add predefined language. | |
32 $langcode = 'fr'; | |
33 ConfigurableLanguage::createFromLangcode($langcode)->save(); | |
34 | |
35 // Set language negotiation. | |
36 $edit = [ | |
37 'language_interface[enabled][language-url]' => TRUE, | |
38 ]; | |
39 $this->drupalPostForm('admin/config/regional/language/detection', $edit, t('Save settings')); | |
40 $this->assertText(t('Language detection configuration saved.'), 'Set language negotiation.'); | |
41 | |
42 // Check if the language selector is available on admin/people/create and | |
43 // set to the currently active language. | |
44 $this->drupalGet($langcode . '/admin/people/create'); | |
45 $this->assertOptionSelected("edit-preferred-langcode", $langcode, 'Global language set in the language selector.'); | |
46 | |
47 // Create a user with the admin/people/create form and check if the correct | |
48 // language is set. | |
49 $username = $this->randomMachineName(10); | |
50 $edit = [ | |
51 'name' => $username, | |
52 'mail' => $this->randomMachineName(4) . '@example.com', | |
53 'pass[pass1]' => $username, | |
54 'pass[pass2]' => $username, | |
55 ]; | |
56 | |
57 $this->drupalPostForm($langcode . '/admin/people/create', $edit, t('Create new account')); | |
58 | |
59 $user = user_load_by_name($username); | |
60 $this->assertEqual($user->getPreferredLangcode(), $langcode, 'New user has correct preferred language set.'); | |
61 $this->assertEqual($user->language()->getId(), $langcode, 'New user has correct profile language set.'); | |
62 | |
63 // Register a new user and check if the language selector is hidden. | |
64 $this->drupalLogout(); | |
65 | |
66 $this->drupalGet($langcode . '/user/register'); | |
67 $this->assertNoFieldByName('language[fr]', 'Language selector is not accessible.'); | |
68 | |
69 $username = $this->randomMachineName(10); | |
70 $edit = [ | |
71 'name' => $username, | |
72 'mail' => $this->randomMachineName(4) . '@example.com', | |
73 ]; | |
74 | |
75 $this->drupalPostForm($langcode . '/user/register', $edit, t('Create new account')); | |
76 | |
77 $user = user_load_by_name($username); | |
78 $this->assertEqual($user->getPreferredLangcode(), $langcode, 'New user has correct preferred language set.'); | |
79 $this->assertEqual($user->language()->getId(), $langcode, 'New user has correct profile language set.'); | |
80 | |
81 // Test if the admin can use the language selector and if the | |
82 // correct language is was saved. | |
83 $user_edit = $langcode . '/user/' . $user->id() . '/edit'; | |
84 | |
85 $this->drupalLogin($admin_user); | |
86 $this->drupalGet($user_edit); | |
87 $this->assertOptionSelected("edit-preferred-langcode", $langcode, 'Language selector is accessible and correct language is selected.'); | |
88 | |
89 // Set passRaw so we can log in the new user. | |
90 $user->passRaw = $this->randomMachineName(10); | |
91 $edit = [ | |
92 'pass[pass1]' => $user->passRaw, | |
93 'pass[pass2]' => $user->passRaw, | |
94 ]; | |
95 | |
96 $this->drupalPostForm($user_edit, $edit, t('Save')); | |
97 | |
98 $this->drupalLogin($user); | |
99 $this->drupalGet($user_edit); | |
100 $this->assertOptionSelected("edit-preferred-langcode", $langcode, 'Language selector is accessible and correct language is selected.'); | |
101 } | |
102 | |
103 } |