public function tryToTestPagePublishing(WebGuy $I, $scenario) { $I = new WebGuy\UserSteps($scenario); $I->login(\CommonPage::TEST_USER_NAME, \CommonPage::TEST_PASSWORD); $I->am('admin'); $I->amGoingTo('test publishing news...'); $I->amOnPage(\CommonPage::PANEL_URL); $I->see(\CommonPage::PANEL_LABEL, 'h1'); $I->amOnPage('/backend/news/news'); $I->see('Новости'); $I->seeLink('Вторая не опубликованная новость'); $I->amOnPage(\CommonPage::PANEL_URL . 'news/news/update/2'); $I->see('Редактирование новости'); $I->see('Вторая не опубликованная новость'); $I->fillField('News[status]', 1); $I->click('Сохранить новость и продолжить'); $I->see('Новость обновлена!', \CommonPage::SUCCESS_CSS_CLASS); $I->logout(); $I->am('anonymous user'); $I->amGoingTo('test show just published news...'); $I->amOnPage(\NewsPage::route('vtoraja-ne-opublikovannaja-novost')); $I->expectTo('see just published news...'); $I->see('Вторая не опубликованная новость', 'h4'); $I->see('Вторая не опубликованная новость текст'); $I->seeInTitle('Вторая не опубликованная новость'); }
public function tryToTest(WebGuy $I, $scenario) { $I->wantToTest('show published page...'); $I->amOnPage('/pages/opublikovannaja-starnica'); $I->seeInTitle('Опубликованная страница'); $I->see('Опубликованная страница', 'h3'); $I->see('Опубликованная страница текст'); $I->wantToTest('unpublished page...'); $I->amOnPage('/pages/skrytaja-stranica'); $I->see('Страница которую Вы запросили не найдена.'); $I->wantToTest('protected page...'); $I->amOnPage('/pages/zaschischennaja-stranica'); $I->seeInCurrentUrl(\LoginPage::$URL); $I->see('Для просмотра этой страницы Вам необходимо авторизоваться!', \CommonPage::ERROR_CSS_CLASS); $I = new WebGuy\UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); $I->amOnPage('/pages/zaschischennaja-stranica'); $I->seeInTitle('Защищенная страница'); $I->see('Защищенная страница', 'h3'); $I->see('Защищенная страница текст'); $I->wantToTest('page preview...'); $I->amOnPage('/pages/skrytaja-stranica'); $I->see('Страница которую Вы запросили не найдена.'); $I->amOnPage('/pages/skrytaja-stranica?preview=1'); $I->seeInTitle('Скрытая страница'); $I->see('Скрытая страница', 'h3'); $I->see('Скрытая страница текст'); }
public function testLoginPage(WebGuy $I, $scenario) { $I->amOnPage(LoginPage::$URL); $I->wantTo('Check login form elements...'); $I->seeInTitle(\CommonPage::LOGIN_LABEL); $I->seeLink('Забыли пароль?'); $I->see(\CommonPage::LOGIN_LABEL); $I->see('Запомнить меня'); $I->dontSeeCheckboxIsChecked(LoginPage::$rememberMeField); $I->seeLink('Регистрация'); $I->seeInField(LoginPage::$emailField, ''); $I->seeInField(LoginPage::$passwordField, ''); $I->amOnPage(LoginPage::$URL); $I->wantTo('Check form with wrong data format...'); $I->fillField(LoginPage::$emailField, 'test'); $I->fillField(LoginPage::$passwordField, 'testpass'); $I->click(\CommonPage::LOGIN_LABEL, \CommonPage::BTN_PRIMARY_CSS_CLASS); $I->see('Email не является правильным E-Mail адресом.', \CommonPage::ERROR_CSS_CLASS); $I->amOnPage(LoginPage::$URL); $I->wantTo('Check form with wrong data...'); $I->fillField(LoginPage::$emailField, '*****@*****.**'); $I->fillField(LoginPage::$passwordField, 'testpass'); $I->click(\CommonPage::LOGIN_LABEL, \CommonPage::BTN_PRIMARY_CSS_CLASS); $I->see('Email или пароль введены неверно!', \CommonPage::ERROR_CSS_CLASS); $I = new WebGuy\UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); }
public function testEditUserProfile(WebGuy $I, $scenario) { $I->dontSeeLink(\EditProfilePage::URL); $I->amOnPage(\EditProfilePage::URL); $I->seeInCurrentUrl('login'); $I->wantTo('Test user profile form...'); $I = new WebGuy\UserSteps($scenario); $I->login(\LoginPage::$userEmail, \LoginPage::$userPassword); $I->amOnPage(\EditProfilePage::URL); $I->see('E-Mail проверен', '.text-success'); $I->seeInTitle('Профиль пользователя'); $I->seeInField(\EditProfilePage::$emailField, \LoginPage::$userEmail); $I->see('Сохранить профиль', \CommonPage::BTN_PRIMARY_CSS_CLASS); $I->wantTo('Test change user email...'); $I = new WebGuy\UserSteps($scenario); $I->logout(); $I->changeEmail('*****@*****.**'); }
public function tryToTestNewsListPage(WebGuy $I, $scenario) { $I->am('simple user'); $I->amGoingTo('test news list page...'); $I->amOnPage(\NewsPage::URL); $I->see('Новости', 'h1'); $I->seeLink('Первая опубликованная новость'); $I->dontSeeLink('Третья новость только для авторизованных'); $I->dontSeeLink('Вторая не опубликованная новость'); $I->am('authorized user'); $I = new WebGuy\UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); $I->amGoingTo('test news list for authorized user...'); $I->amOnPage(\NewsPage::URL); $I->expectTo('see news list with protected news...'); $I->seeLink('Первая опубликованная новость'); $I->seeLink('Третья новость только для авторизованных'); $I->dontSeeLink('Вторая не опубликованная новость'); }
public function tryToTestCommentsAntispam(WebGuy $I, $scenario) { $I = new WebGuy\UserSteps($scenario); $I->login(\CommonPage::TEST_USER_NAME, \CommonPage::TEST_PASSWORD); $I->am('admin'); $I->amGoingTo('test comments antispam...'); $I->amOnPage("/blogs/public-blog"); $I->see("Оставить комментарий", "h3"); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1000); $I->see("Спасибо, Ваша запись добавлена!", \CommonPage::SUCCESS_CSS_CLASS); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1000); $I->see("Защита от спама", \CommonPage::ERROR_CSS_CLASS); $I->wait(15000); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1000); $I->see("Спасибо, Ваша запись добавлена!", \CommonPage::SUCCESS_CSS_CLASS); }
public function tryToTestNewsPage(WebGuy $I, $scenario) { $I->am('anonymous user'); $I->amGoingTo('test show news page...'); $I->amOnPage(\NewsPage::route('pervaja-opublikovannaja-novost')); $I->expectTo('see published news...'); $I->see('Первая опубликованная новость', 'h4'); $I->see('Первая опубликованная текст'); $I->seeInTitle('Первая опубликованная новость'); $I->amGoingTo('test show not published news...'); $I->amOnPage(\NewsPage::route('vtoraja-ne-opublikovannaja-novost')); $I->expectTo(' see page not found exception...'); $I->dontSee('Вторая не опубликованная новость'); $I->dontSeeInTitle('Вторая не опубликованная новость'); $I->amGoingTo('test show protected news...'); $I->amOnPage(\NewsPage::route('tretja-novost-tolko-dlja-avtorizovannyh')); $I->expectTo(' see login page...'); $I->dontSee('Третья новость только для авторизованных'); $I->dontSee('Третья новость только для авторизованных текст'); $I->dontSeeInTitle('Третья новость только для авторизованных текст'); $I->seeInCurrentUrl('login'); $I->see('Для просмотра этой страницы Вам необходимо авторизоваться!', \CommonPage::ERROR_CSS_CLASS); $I->am('authorized user'); $I = new WebGuy\UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); $I->amGoingTo('test show protected news for authorized user...'); $I->amOnPage(\NewsPage::route('tretja-novost-tolko-dlja-avtorizovannyh')); $I->expectTo(' see protected news...'); $I->see('Третья новость только для авторизованных', 'h4'); $I->see('Третья новость только для авторизованных текст'); $I->seeInTitle('Третья новость только для авторизованных'); $I->amGoingTo('test show not published news...'); $I->amOnPage(\NewsPage::route('vtoraja-ne-opublikovannaja-novost')); $I->expectTo(' see page not found exception...'); $I->dontSee('Вторая не опубликованная новость'); $I->dontSeeInTitle('Вторая не опубликованная новость'); }
public function testUserRegistrationAndActivation(WebGuy $I, $scenario) { $I->wantTo('Check registration and activation new user account...'); $I->amOnPage(\RegistrationPage::URL); $I->see(\RegistrationPage::$buttonLabel); $I->seeInTitle('Регистрация'); $I->wantTo('See form with empty fields...'); $I->seeInField(\RegistrationPage::$nickNameField, ''); $I->seeInField(\RegistrationPage::$emailField, ''); $I->seeInField(\RegistrationPage::$passwordField, ''); $I->seeInField(\RegistrationPage::$cpasswordField, ''); $I->see(\RegistrationPage::$buttonLabel); $I->wantTo('Test form validation...'); $testNickName = 'testuser'; $testEMail = '*****@*****.**'; $testPassword = '******'; $I->fillField(\RegistrationPage::$nickNameField, 'test-nick.name'); $I->fillField(\RegistrationPage::$emailField, 'test'); $I->fillField(\RegistrationPage::$passwordField, $testPassword); $I->fillField(\RegistrationPage::$cpasswordField, '111'); $I->click(\RegistrationPage::$buttonLabel, '.btn-primary'); $I->see('Email не является правильным E-Mail адресом', \CommonPage::ERROR_CSS_CLASS); $I->see('Пароли не совпадают', \CommonPage::ERROR_CSS_CLASS); $I->see('Неверный формат поля "Имя пользователя" допустимы только буквы и цифры, от 2 до 20 символов', \CommonPage::ERROR_CSS_CLASS); $I->wantTo('Test form with existing user name and email...'); $I->fillField(\RegistrationPage::$nickNameField, 'yupe'); $I->fillField(\RegistrationPage::$emailField, '*****@*****.**'); $I->fillField(\RegistrationPage::$passwordField, $testPassword); $I->fillField(\RegistrationPage::$cpasswordField, $testPassword); $I->click(\RegistrationPage::$buttonLabel, '.btn-primary'); $I->see('Имя пользователя уже занято', \CommonPage::ERROR_CSS_CLASS); $I->see('Email уже занят', \CommonPage::ERROR_CSS_CLASS); $I->wantTo('Test success registration...'); $I->fillField(\RegistrationPage::$nickNameField, $testNickName); $I->fillField(\RegistrationPage::$emailField, $testEMail); $I->click(\RegistrationPage::$buttonLabel, '.btn-primary'); $I->see('Учетная запись создана! Проверьте Вашу почту!', \CommonPage::SUCCESS_CSS_CLASS); $I->seeInCurrentUrl('login'); // check that user is created $I->seeInDatabase('yupe_user_user', ['email' => $testEMail, 'access_level' => 0, 'status' => 2, 'email_confirm' => 0, 'nick_name' => $testNickName]); //check that token is created $I->seeInDatabase('yupe_user_tokens', ['user_id' => 2, 'type' => 1, 'status' => 0]); $I->wantTo('Test that new user cant login without account activation...'); $I->fillField(\LoginPage::$emailField, $testEMail); $I->fillField(\LoginPage::$passwordField, $testPassword); $I->click(\CommonPage::LOGIN_LABEL, \CommonPage::BTN_PRIMARY_CSS_CLASS); $I->see('Email или пароль введены неверно!', \CommonPage::ERROR_CSS_CLASS); $I->wantTo('Test account activation...'); $key = $I->grabFromDatabase('yupe_user_tokens', 'token', ['user_id' => 2, 'type' => 1, 'status' => 0]); $I->amOnPage(\RegistrationPage::getActivateRoute(time())); $I->see('Внимание! Возникла проблема с активацией аккаунта. Обратитесь к администрации сайта.', \CommonPage::ERROR_CSS_CLASS); $I->seeInCurrentUrl('registration'); $I->amOnPage(\RegistrationPage::getActivateRoute($key)); $I->see('Вы успешно активировали аккаунт! Теперь Вы можете войти!', \CommonPage::SUCCESS_CSS_CLASS); // check user $I->seeInDatabase('yupe_user_user', ['email' => $testEMail, 'access_level' => 0, 'status' => 1, 'email_confirm' => 1, 'nick_name' => $testNickName]); //check token $I->dontSeeInDatabase('yupe_user_tokens', ['user_id' => 2, 'type' => 1, 'status' => 0]); $I->wantTo('Test login with new account...'); $I = new WebGuy\UserSteps($scenario); $I->login($testEMail, $testPassword); $I->dontSeeLink('Панель управления'); }
<?php use WebGuy\UserSteps; $I = new UserSteps($scenario); $I->wantTo('Log in and log out.'); // Wait one second before logging in so that our password expires. sleep(1); // todo: add test for account lockout, below code is not passing the tests // $I->login('*****@*****.**', 'demo34'); // $I->login('*****@*****.**', 'demo34'); // $I->see('Your account has been temporarily locked due to too many failed login attempts.'); // Wait one second before logging in again so that the lockout expires. // sleep(1); $I->login('*****@*****.**', 'demo12'); $I->see('Your password has expired.'); $I->fillField(\ChangePasswordPage::$fieldPassword, 'demo1234'); $I->fillField(\ChangePasswordPage::$fieldVerifyPassword, 'demo1234'); $I->click('#changePasswordForm button[type=submit]'); $I->logout();
<?php use WebGuy\UserSteps; $I = new UserSteps($scenario); $I->wantTo('Reset my password and log in.'); $I->amOnPage(\ForgotPasswordPage::$URL); $I->fillField(\ForgotPasswordPage::$fieldEmail, '*****@*****.**'); $I->click('#forgotPasswordForm button[type=submit]'); $I->see('Reset password'); $I->click('a'); $I->seeElement('#changePasswordForm'); $I->fillField(\ResetPasswordPage::$fieldPassword, 'demo1234'); $I->fillField(\ResetPasswordPage::$fieldVerifyPassword, 'demo1234'); $I->click('#changePasswordForm button[type=submit]'); $I->see('You have already used this password.'); $I->fillField(\ResetPasswordPage::$fieldPassword, 'demo4321'); $I->fillField(\ResetPasswordPage::$fieldVerifyPassword, 'demo4321'); $I->click('#changePasswordForm button[type=submit]'); $I->login('*****@*****.**', 'demo4321');
public function testLogout(WebGuy $I, $scenario) { $I = new WebGuy\UserSteps($scenario); $I->login(\LoginPage::$userEmail, \LoginPage::$userPassword); $I->logout(); }