/** * * @param \FunctionalTester $I * @param \Codeception\Scenario $scenario */ public function testUserRegistration($I, $scenario) { $I->wantTo('ensure that registration works'); $registrationPage = RegistrationPage::openBy($I); $I->see('Sign up', 'h1'); $I->amGoingTo('submit registration form with no data'); $registrationPage->submit([]); $I->expectTo('see validations errors'); $I->see('Username cannot be blank.', '.help-block'); $I->see('E-mail cannot be blank.', '.help-block'); $I->see('Password cannot be blank.', '.help-block'); $I->see('Repeated password cannot be blank.', '.help-block'); $I->amGoingTo('submit registration form with not correct email and repeated password'); $registrationPage->submit(['username' => 'tester', 'email' => 'tester.email', 'password' => 'tester_password', 'password2' => 'tester_password2']); $I->expectTo('see that email address and repeated password is wrong'); $I->dontSee('Username cannot be blank.', '.help-block'); $I->dontSee('Password cannot be blank.', '.help-block'); $I->dontSee('Repeated password cannot be blank.', '.help-block'); $I->see('E-mail is not a valid email address.', '.help-block'); $I->see('Repeated password must be repeated exactly.', '.help-block'); $I->amGoingTo('submit registration form with correct data'); $registrationPage->submit(['username' => 'tester', 'email' => '*****@*****.**', 'password' => 'tester_password', 'password2' => 'tester_password']); $registrationPage = RegistrationPage::openBy($I); $I->amGoingTo('submit registration form with same data'); $registrationPage->submit(['username' => 'tester', 'email' => '*****@*****.**', 'password' => 'tester_password', 'password2' => 'tester_password']); $I->expectTo('see that username and email address have already been taken'); $I->see('Username "tester" has already been taken.', '.help-block'); $I->see('E-mail "*****@*****.**" has already been taken.', '.help-block'); // $I->expectTo('see that user logged in'); // $I->seeLink('Logout (tester)'); }
/** * * @param \FunctionalTester $I * @param \Codeception\Scenario $scenario */ public function testUserRegistration($I, $scenario) { /** @var Module $module */ $module = \Yii::$app->getModule('users'); $I->wantTo('ensure that registration works'); $registrationPage = RegistrationPage::openBy($I); $I->see('Sign up', 'h1'); $I->amGoingTo('submit registration form with no data'); $registrationPage->submit([]); $I->expectTo('see validations errors'); $I->see('Username cannot be blank.', '.help-block'); $I->see('E-mail cannot be blank.', '.help-block'); $I->see('Password cannot be blank.', '.help-block'); $I->see('Repeated password cannot be blank.', '.help-block'); $I->amGoingTo('submit registration form with not correct email and repeated password'); $registrationPage->submit(['username' => 'tester', 'email' => 'tester.email', 'password' => 'tester_password', 'password2' => 'tester_password2']); $I->expectTo('see that email address and repeated password is wrong'); $I->dontSee('Username cannot be blank.', '.help-block'); $I->dontSee('Password cannot be blank.', '.help-block'); $I->dontSee('Repeated password cannot be blank.', '.help-block'); $I->see('E-mail is not a valid email address.', '.help-block'); $I->see('Repeated password must be repeated exactly.', '.help-block'); $I->amGoingTo('submit registration form with correct data'); $registrationPage->submit(['username' => 'tester', 'email' => '*****@*****.**', 'password' => 'tester_password', 'password2' => 'tester_password']); $I->expectTo('see that user is created'); /** @var User $user */ $user = $I->grabRecord(User::className(), ['username' => 'tester', 'email' => '*****@*****.**']); if ($module->registrationConfirmation) { /** @var Token $token */ $token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_REGISTRATION_CONFIRMATION]); $I->seeInEmailSubject('Registration confirmation'); $I->seeInEmailRecipients('*****@*****.**'); $I->seeInEmail($token->token); } $registrationPage = RegistrationPage::openBy($I); $I->amGoingTo('submit registration form with same data'); $registrationPage->submit(['username' => 'tester', 'email' => '*****@*****.**', 'password' => 'tester_password', 'password2' => 'tester_password']); $I->expectTo('see that username and email address have already been taken'); $I->see('Username "tester" has already been taken.', '.help-block'); $I->see('E-mail "*****@*****.**" has already been taken.', '.help-block'); // $I->expectTo('see that user logged in'); // $I->seeLink('Logout (tester)'); }
<?php use mii\modules\users\models\Token; use mii\modules\users\models\User; use tests\codeception\_pages\RegistrationPage; use yii\helpers\Html; $I = new FunctionalTester($scenario); $I->wantTo('ensure that registration works'); $page = RegistrationPage::openBy($I); $I->amGoingTo('try to register with empty credentials'); $page->register('', '', ''); $I->see('Username cannot be blank'); $I->see('Email cannot be blank'); $I->see('Password cannot be blank'); $I->amGoingTo('try to register with already used email and username'); $user = $I->getFixture('users')->getModel('users'); $page->register($user->username, $user->email, 'qwerty'); $I->see(Html::encode('This username has already been taken')); $I->see(Html::encode('This email address has already been taken')); $I->amGoingTo('try to register'); $page->register('tester', '*****@*****.**', 'tester'); $I->see('A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.'); $user = $I->grabRecord(User::className(), ['email' => '*****@*****.**']); $token = $I->grabRecord(Token::className(), ['user_id' => $user->id, 'type' => Token::TYPE_CONFIRMATION]); $I->seeInEmail(Html::encode($token->url));