You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
simple-yewu/tests/codeception/frontend/functional/SignupCest.php

89 lines
2.4 KiB

6 years ago
<?php
namespace tests\codeception\frontend\functional;
use tests\codeception\frontend\_pages\SignupPage;
use common\models\User;
class SignupCest
{
/**
* This method is called before each cest class test method
* @param \codeception_frontend\FunctionalTester $I
*/
public function _before($I)
{
}
/**
* This method is called after each cest class test method, even if test failed.
* @param \codeception_frontend\FunctionalTester $I
*/
public function _after($I)
{
//reload default fixtures
$I->loadFixtures();
}
/**
* This method is called when test fails.
* @param \codeception_frontend\FunctionalTester $I
*/
public function _failed($I)
{
}
/**
*
* @param \codeception_frontend\FunctionalTester $I
* @param \Codeception\Scenario $scenario
*/
public function testUserSignup($I, $scenario)
{
$I->wantTo('ensure that signup works');
$signupPage = SignupPage::openBy($I);
$I->see('Signup', 'h1');
$I->see('Please fill out the following fields to signup:');
$I->amGoingTo('submit signup form with no data');
$signupPage->submit([]);
$I->expectTo('see validation errors');
$I->see('Username cannot be blank.', '.help-block');
$I->see('Email cannot be blank.', '.help-block');
$I->see('Password cannot be blank.', '.help-block');
$I->amGoingTo('submit signup form with not correct email');
$signupPage->submit([
'username' => 'tester',
'email' => 'tester.email',
'password' => 'tester_password',
]);
$I->expectTo('see that email address is wrong');
$I->dontSee('Username cannot be blank.', '.help-block');
$I->dontSee('Password cannot be blank.', '.help-block');
$I->see('Email is not a valid email address.', '.help-block');
$I->amGoingTo('submit signup form with correct email');
$signupPage->submit([
'username' => 'tester',
'email' => 'tester.email@example.com',
'password' => 'tester_password',
]);
$I->expectTo('see that user is created');
$I->seeRecord('common\models\User', [
'username' => 'tester',
'email' => 'tester.email@example.com',
]);
$I->expectTo('see that user logged in');
$I->see('Logout (tester)', 'form button[type=submit]');
}
}