SignupCest.php 1.86 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
<?php

namespace frontend\tests\acceptance;

use frontend\tests\_pages\SignupPage;
use common\models\User;

class SignupCest
{

	/**
	 * This method is called after each cest class test method
	 * @param \Codeception\Event\Test $event
	 */
	public function _before($event)
	{
	}

	/**
	 * This method is called after each cest class test method, even if test failed.
	 * @param \Codeception\Event\Test $event
	 */
	public function _after($event)
	{
		User::deleteAll([
			'email' => 'tester.email@example.com',
			'username' => 'tester',
		]);
	}

	/**
	 * This method is called when test fails.
	 * @param \Codeception\Event\Fail $event
	 */
	public function _fail($event)
	{
	}

	/**
	 * 
	 * @param \WebGuy $I
	 * @param \Codeception\Scenario $scenario
	 */
	public function testUserSignup($I, $scenario)
	{
		$I->wantTo('ensure that signup works');

		$signupPage = SignupPage::openBy($I);
		$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.');
		$I->see('Email cannot be blank.');
		$I->see('Password cannot be blank.');

		$I->amGoingTo('submit signup form with not correct email');
		$signupPage->submit([
			'username'		=>	'tester',
			'email'			=>	'tester.email',
			'password'		=>	'tester_password',
		]);

		$I->expectTo('see that email adress is wrong');
		$I->dontSee('Username cannot be blank.', '.help-inline');
		$I->dontSee('Password cannot be blank.', '.help-inline');
		$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 logged in');
		$I->see('Logout (tester)');
	}

}