initial commit
This commit is contained in:
75
vendor/symfony/maker-bundle/templates/registration/Test.WithVerify.tpl.php
vendored
Normal file
75
vendor/symfony/maker-bundle/templates/registration/Test.WithVerify.tpl.php
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?= "<?php\n" ?>
|
||||
namespace App\Tests;
|
||||
|
||||
<?= $use_statements ?>
|
||||
|
||||
class RegistrationControllerTest extends WebTestCase
|
||||
{
|
||||
private KernelBrowser $client;
|
||||
private <?= $repository_class_name ?> $userRepository;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->client = static::createClient();
|
||||
|
||||
// Ensure we have a clean database
|
||||
$container = static::getContainer();
|
||||
|
||||
/** @var EntityManager $em */
|
||||
$em = $container->get('doctrine')->getManager();
|
||||
$this->userRepository = $container->get(<?= $repository_class_name ?>::class);
|
||||
|
||||
foreach ($this->userRepository->findAll() as $user) {
|
||||
$em->remove($user);
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
public function testRegister(): void
|
||||
{
|
||||
// Register a new user
|
||||
$this->client->request('GET', '/register');
|
||||
self::assertResponseIsSuccessful();
|
||||
self::assertPageTitleContains('Register');
|
||||
|
||||
$this->client->submitForm('Register', [
|
||||
'registration_form[email]' => 'me@example.com',
|
||||
'registration_form[plainPassword]' => 'password',
|
||||
'registration_form[agreeTerms]' => true,
|
||||
]);
|
||||
|
||||
// Ensure the response redirects after submitting the form, the user exists, and is not verified
|
||||
// self::assertResponseRedirects('/'); @TODO: set the appropriate path that the user is redirected to.
|
||||
self::assertCount(1, $this->userRepository->findAll());
|
||||
self::assertFalse(($user = $this->userRepository->findAll()[0])->isVerified());
|
||||
|
||||
// Ensure the verification email was sent
|
||||
// Use either assertQueuedEmailCount() || assertEmailCount() depending on your mailer setup
|
||||
// self::assertQueuedEmailCount(1);
|
||||
self::assertEmailCount(1);
|
||||
|
||||
self::assertCount(1, $messages = $this->getMailerMessages());
|
||||
self::assertEmailAddressContains($messages[0], 'from', '<?= $from_email ?>');
|
||||
self::assertEmailAddressContains($messages[0], 'to', 'me@example.com');
|
||||
self::assertEmailTextBodyContains($messages[0], 'This link will expire in 1 hour.');
|
||||
|
||||
// Login the new user
|
||||
$this->client->followRedirect();
|
||||
$this->client->loginUser($user);
|
||||
|
||||
// Get the verification link from the email
|
||||
/** @var TemplatedEmail $templatedEmail */
|
||||
$templatedEmail = $messages[0];
|
||||
$messageBody = $templatedEmail->getHtmlBody();
|
||||
self::assertIsString($messageBody);
|
||||
|
||||
preg_match('#(http://localhost/verify/email.+)">#', $messageBody, $resetLink);
|
||||
|
||||
// "Click" the link and see if the user is verified
|
||||
$this->client->request('GET', $resetLink[1]);
|
||||
$this->client->followRedirect();
|
||||
|
||||
self::assertTrue(static::getContainer()->get(<?= $repository_class_name ?>::class)->findAll()[0]->isVerified());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user