function UserRegistrationTest::testUuidFormState
Same name in other branches
- 9 core/modules/user/tests/src/Functional/UserRegistrationTest.php \Drupal\Tests\user\Functional\UserRegistrationTest::testUuidFormState()
- 8.9.x core/modules/user/tests/src/Functional/UserRegistrationTest.php \Drupal\Tests\user\Functional\UserRegistrationTest::testUuidFormState()
- 11.x core/modules/user/tests/src/Functional/UserRegistrationTest.php \Drupal\Tests\user\Functional\UserRegistrationTest::testUuidFormState()
Tests that UUID isn't cached in form state on register form.
This is a regression test for https://www.drupal.org/node/2500527 to ensure that the form is not cached on GET requests.
File
-
core/
modules/ user/ tests/ src/ Functional/ UserRegistrationTest.php, line 180
Class
- UserRegistrationTest
- Tests registration of user under different configurations.
Namespace
Drupal\Tests\user\FunctionalCode
public function testUuidFormState() : void {
\Drupal::service('module_installer')->install([
'image',
]);
// Add a picture field in order to ensure that no form cache is written,
// which breaks registration of more than 1 user every 6 hours.
$field_storage = FieldStorageConfig::create([
'field_name' => 'user_picture',
'entity_type' => 'user',
'type' => 'image',
]);
$field_storage->save();
$field = FieldConfig::create([
'field_name' => 'user_picture',
'entity_type' => 'user',
'bundle' => 'user',
]);
$field->save();
$form_display = EntityFormDisplay::create([
'targetEntityType' => 'user',
'bundle' => 'user',
'mode' => 'default',
'status' => TRUE,
]);
$form_display->setComponent('user_picture', [
'type' => 'image_image',
]);
$form_display->save();
// Don't require email verification and allow registration by site visitors
// without administrator approval.
$this->config('user.settings')
->set('verify_mail', FALSE)
->set('register', UserInterface::REGISTER_VISITORS)
->save();
$edit = [];
$edit['name'] = $this->randomMachineName();
$edit['mail'] = $edit['name'] . '@example.com';
$edit['pass[pass2]'] = $edit['pass[pass1]'] = $this->randomMachineName();
// Create one account.
$this->drupalGet('user/register');
$this->submitForm($edit, 'Create new account');
$this->assertSession()
->statusCodeEquals(200);
$user_storage = \Drupal::entityTypeManager()->getStorage('user');
$this->assertNotEmpty($user_storage->loadByProperties([
'name' => $edit['name'],
]));
$this->drupalLogout();
// Create a second account.
$edit['name'] = $this->randomMachineName();
$edit['mail'] = $edit['name'] . '@example.com';
$edit['pass[pass2]'] = $edit['pass[pass1]'] = $this->randomMachineName();
$this->drupalGet('user/register');
$this->submitForm($edit, 'Create new account');
$this->assertSession()
->statusCodeEquals(200);
$this->assertNotEmpty($user_storage->loadByProperties([
'name' => $edit['name'],
]));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.