SignupCest.php 1.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
<?php

namespace frontend\tests\acceptance;

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

class SignupCest
{

	/**
Johnny Theill committed
12
	 * This method is called before each cest class test method
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
	 * @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);
Johnny Theill committed
48
		$I->see('Signup', 'h1');
49 50 51 52 53 54 55
		$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');
Johnny Theill committed
56 57 58
		$I->see('Username cannot be blank.', '.help-block');
		$I->see('Email cannot be blank.', '.help-block');
		$I->see('Password cannot be blank.', '.help-block');
59 60 61 62 63 64 65 66

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

Johnny Theill committed
67 68 69
		$I->expectTo('see that email address is wrong');
		$I->dontSee('Username cannot be blank.', '.help-block');
		$I->dontSee('Password cannot be blank.', '.help-block');
70 71 72 73 74 75 76 77 78 79
		$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');
Johnny Theill committed
80
		$I->seeLink('Logout (tester)');
81 82
	}
}