SignupCest.php 2.48 KB
Newer Older
1 2
<?php

3
namespace tests\codeception\frontend\functional;
4

5
use tests\codeception\frontend\_pages\SignupPage;
6 7 8 9 10
use common\models\User;

class SignupCest
{

11 12
    /**
     * This method is called before each cest class test method
13
     * @param \Codeception\Event\TestEvent $event
14 15 16 17 18 19 20
     */
    public function _before($event)
    {
    }

    /**
     * This method is called after each cest class test method, even if test failed.
21
     * @param \Codeception\Event\TestEvent $event
22 23 24 25 26 27 28 29 30 31 32
     */
    public function _after($event)
    {
        User::deleteAll([
            'email' => 'tester.email@example.com',
            'username' => 'tester',
        ]);
    }

    /**
     * This method is called when test fails.
33
     * @param \Codeception\Event\FailEvent $event
34 35 36 37 38 39 40 41
     */
    public function _fail($event)
    {

    }

    /**
     *
42
     * @param \codeception_frontend\FunctionalTester $I
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
     * @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([
64 65 66
            'username' => 'tester',
            'email' => 'tester.email',
            'password' => 'tester_password',
67 68 69 70 71 72 73 74 75
        ]);

        $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([
76 77 78
            'username' => 'tester',
            'email' => 'tester.email@example.com',
            'password' => 'tester_password',
79 80 81 82
        ]);

        $I->expectTo('see that user is created');
        $I->seeRecord('common\models\User', [
83 84
            'username' => 'tester',
            'email' => 'tester.email@example.com',
85 86 87 88 89
        ]);

        $I->expectTo('see that user logged in');
        $I->seeLink('Logout (tester)');
    }
90
}