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 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 UserSteps($scenario); $I->logout(); $I->changeEmail('*****@*****.**'); }
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...'); $I->fillField(LoginPage::$emailField, '*****@*****.**'); $I->fillField(LoginPage::$passwordField, 'testpass'); $I->click(CommonPage::LOGIN_BTN_CONTEXT); $I->see('Email или пароль введены неверно!', CommonPage::ERROR_CSS_CLASS); $I = new UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); }
public function testEmailConfirm(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $testMail = '*****@*****.**'; $I->changeEmail($testMail); $key = $I->grabFromDatabase('yupe_user_tokens', 'token', ['user_id' => 1, 'type' => 3, 'status' => 0]); $I->amOnPage(RecoveryPage::getConfirmRoute($key)); $I->see('Вы успешно подтвердили новый e-mail!', CommonPage::SUCCESS_CSS_CLASS); $I->seeInDatabase('yupe_user_user', ['email_confirm' => 1, 'email' => $testMail]); //check token $I->dontSeeInDatabase('yupe_user_tokens', ['user_id' => 1, 'type' => 3, 'status' => 0]); }
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 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 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('button[type=submit]'); $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('button[type=submit]'); $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('button[type=submit]'); $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_BTN_CONTEXT); $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 UserSteps($scenario); $I->login($testEMail, $testPassword); $I->dontSeeLink('Панель управления'); }
public function tryToTestMainBackend(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->am('guest user'); $I->amGoingTo('try access to admin area'); $I->amOnPage(CommonPage::PANEL_URL . 'login'); $I->seeInCurrentUrl('/backend/login'); $I->see('Пожалуйста, авторизуйтесь'); $I->fillField('LoginForm[password]', 'wrong password'); $I->fillField('LoginForm[email]', CommonPage::TEST_USER_NAME); $I->click('Войти'); $I->see('Email или пароль введены неверно!', CommonPage::ERROR_CSS_CLASS); $I->fillField('LoginForm[password]', CommonPage::TEST_PASSWORD); $I->click('Войти'); //$I->see('Вы успешно авторизовались!', CommonPage::SUCCESS_CSS_CLASS); $I->amOnPage(CommonPage::PANEL_URL); $I->see('Панель управления "Юпи!"', 'h1'); //simple check all modules $I->amGoingTo('simple test all modules page'); $I->amOnPage('/backend/news/news'); $I->see('Новости', 'h1'); $I->amOnPage('/backend/page/page'); $I->see('Страницы', 'h1'); $I->amOnPage('/backend/image/image'); $I->see('Изображения', 'h1'); $I->amOnPage('/backend/gallery/gallery'); $I->see('Галереи', 'h1'); $I->amOnPage('/backend/comment/comment'); $I->see('Комментарии', 'h1'); $I->amOnPage('/backend/contentblock/contentBlock'); $I->see('Блоки контента'); $I->amOnPage('/backend/menu/menu'); $I->see('Меню', 'h1'); $I->amOnPage('/backend/menu/menuitem'); $I->see('Пункты меню'); $I->amOnPage('/backend/dictionary/dictionary'); $I->see('Справочники', 'h1'); $I->amOnPage('/backend/dictionary/dictionaryData'); $I->see('Значения справочников', 'h1'); $I->amOnPage('/backend/category/category'); $I->see('Категории', 'h1'); $I->amOnPage('/backend/queue/queue'); $I->see('Задания', 'h1'); $I->amOnPage('/backend/mail/event'); $I->see('Почтовые события', 'h1'); $I->amOnPage('/backend/mail/template'); $I->see('Почтовые шаблоны', 'h1'); $I->amOnPage('/backend/feedback/feedback'); $I->see('Сообщения', 'h1'); $I->amOnPage('/backend/user/user'); $I->see('Пользователи', 'h1'); $I->amGoingTo('change backend language'); $I->amOnPage('/en/backend'); $I->see('Control panel "Yupe!"', 'h1'); $I->amOnPage('/ru/backend'); $I->see('Панель управления "Юпи!"', 'h1'); $I->amOnPage('/en/backend'); $I->see('Control panel "Yupe!"', 'h1'); $I->amOnPage('/ru/backend'); $I->see('Панель управления "Юпи!"', 'h1'); $I->amGoingTo('change theme settings'); $I->amOnPage('/backend/themesettings'); $I->click('Сохранить настройки тем оформления'); $I->see('Настройки темы успешно сохранены!', CommonPage::SUCCESS_CSS_CLASS); $I->amGoingTo('change module settings'); $I->amOnPage('/backend/modulesettings?module=yupe'); $I->fillField('siteDescription', 'Changed site description!'); $I->click('Сохранить настройки модуля "Юпи!"'); $I->see('Настройки модуля "Юпи!" сохранены!', CommonPage::SUCCESS_CSS_CLASS); $I->seeInField('siteDescription', 'Changed site description!'); $I->amGoingTo('test modules page'); $I->amOnPage('/backend/settings'); $I->see('Модули', 'h1'); $I->seeLink('Юпи! (yupe)', '/backend/settings'); $I->seeLink('Пользователи (user)', '/backend/user/user'); //$I->amGoingTo('disable catalog module'); //$I->clickWithRightButton("[module='catalog']"); //$I->see('Вы уверены, что хотите отключить модуль?','.modal-body'); }
public function tryToTestPaymentBackend(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->wantToTest('store payment backend'); $I->amOnPage(self::BACKEND_PAYMENT_PATH); $I->expectTo('see sidebar menu'); $I->seeLink('Управление способами оплаты'); $I->seeLink('Добавить способ оплаты'); $I->see('Способы оплаты', 'h1'); $I->see('управление', 'small'); $I->expectTo('see payment table'); $I->see('Элементы 1—2 из 2.', '.summary'); $I->seeElement('table', ['class' => 'items table table-condensed']); $I->see('Название', '.sort-link'); $I->see('Платежная система', '.sort-link'); $I->see('Статус', '.sort-link'); $I->seeLink('Наличными'); $I->seeLink('Робокасса'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/payment/payment/update/1" data-original-title="Редактировать"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/payment/payment/delete/1" data-original-title="Удалить"'); $I->amGoingTo('test payment filter'); $I->seeElement('input', ['name' => 'Payment[name]']); $I->seeElement('input', ['name' => 'Payment[module]']); $I->seeElement('select', ['name' => 'Payment[status]']); $I->fillField('Payment[name]', 'Наличными'); $I->pressKey('#Payment_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Наличными'); $I->dontSeeLink('Робокасса'); $I->amOnPage(self::BACKEND_PAYMENT_PATH); $I->fillField('Payment[module]', 'robokassa'); $I->pressKey('#Payment_module', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Робокасса'); $I->dontSeeLink('Наличными'); $I->amOnPage(self::BACKEND_PAYMENT_PATH); $I->selectOption('Payment[status]', 'Активен'); $I->wait(1); $I->seeLink('Наличными'); $I->dontSeeLink('Робокасса'); $I->amGoingTo('add a new payment'); $I->amOnPage(self::BACKEND_PAYMENT_PATH . '/create'); $I->see('Способ оплаты', 'h1'); $I->see('добавление', 'small'); $I->seeLink('Управление способами оплаты'); $I->seeLink('Добавить способ оплаты'); $I->seeOptionIsSelected('Payment[status]', 'Активен'); $I->fillField('Payment[name]', 'Тестовый'); $I->selectOption('Payment[module]', 'Обработка вручную'); $I->click('Добавить способ оплаты и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_PAYMENT_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Тестовый'); $I->amGoingTo('delete payment'); $I->amOnPage(self::BACKEND_PAYMENT_PATH . '/delete/3'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_PAYMENT_PATH); $I->expectTo('delete attr via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/3", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSeeLink('Тестовый'); }
public function tryToTestBrands(WebGuy $I, $scenario) { $I->am('normal user'); $I->amGoingTo('test brands list page'); $I->amOnPage(self::FRONTEND_BRANDS_PATH); $I->expectTo('see brands list with active status'); $I->see('Все бренды', 'h2'); $I->seeLink('Intel'); $I->seeLink('Dell'); $I->dontSeeLink('A4Tech'); $I->dontSeeLink('Samsung'); $I->amGoingTo('visit a brand page'); $I->click('Intel'); $I->seeInCurrentUrl('/store/brand/intel'); $I->seeInTitle('Intel'); $I->see('Все товары производителя «Intel»', 'h2'); $I->see('Описание бренда Intel', 'p'); $I->see('Нет результатов.'); $I->seeLink('Все бренды'); $I->click('Все бренды'); $I->seeInCurrentUrl(self::FRONTEND_BRANDS_PATH); $I->click('Dell'); $I->see('Все товары производителя «Dell»', 'h2'); $I->dontSee('Нет результатов.'); $I->see('Сортировка:'); $I->seeLink('Артикул'); $I->seeLink('Название'); $I->seeLink('Цена'); $I->seeLink('Обновлено'); $I->seeLink('Dell U2715H'); $I->seeLink('Dell P2214H'); $I->amGoingTo('visit inactive brand page'); $I->expectTo('see 404 error'); $I->amOnPage('/store/brand/samsung'); $I->see('Ошибка 404!', 'h2'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amGoingTo('test backend brands list'); $I->amOnPage(self::BACKEND_BRANDS_PATH); $I->see('Бренды', 'h1'); $I->expectTo('see sidebar menu'); $I->seeLink('Все бренды'); $I->seeLink('Добавить'); $I->expectTo('see brand list'); $I->seeLink('Intel'); $I->seeLink('Dell'); $I->seeLink('A4Tech'); $I->seeLink('Samsung'); $I->expectTo('see buttons column'); $I->seeInPageSource('<a class="front-view btn btn-sm btn-default" target="_blank" title="" data-toggle="tooltip" href="/index-test.php/store/brand/intel"'); $I->seeInPageSource('<a class="view btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/producer/view/1"'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/producer/update/1"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/producer/delete/1"'); $I->amGoingTo('test brand grid filter'); $I->fillField('Producer[name]', 'Intel'); $I->pressKey('#Producer_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Intel'); $I->dontSeeLink('Dell'); $I->dontSeeLink('A4Tech'); $I->dontSeeLink('Samsung'); $I->fillField('Producer[name]', ''); $I->wait(1); $I->fillField('Producer[name_short]', 'Dell'); $I->pressKey('#Producer_name_short', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Dell'); $I->dontSeeLink('Intel'); $I->dontSeeLink('A4Tech'); $I->dontSeeLink('Samsung'); $I->fillField('Producer[name_short]', ''); $I->wait(1); $I->fillField('Producer[slug]', 'sams'); $I->pressKey('#Producer_slug', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Samsung'); $I->dontSeeLink('Intel'); $I->dontSeeLink('A4Tech'); $I->dontSeeLink('Dell'); $I->fillField('Producer[slug]', ''); $I->wait(1); $I->pressKey('#Producer_slug', WebDriverKeys::ENTER); $I->wait(1); $I->selectOption('Producer[status]', 'Доступен'); $I->wait(1); $I->seeLink('Intel'); $I->seeLink('Dell'); $I->dontSeeLink('A4Tech'); $I->dontSeeLink('Samsung'); $I->amGoingTo('change brand status'); $I->amOnPage(self::BACKEND_BRANDS_PATH . '/update/4'); $I->selectOption('Producer[status]', 'Доступен'); $I->click('Сохранить производителя и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_BRANDS_PATH); $I->see('Запись изменена!', '.alert-success'); $I->amOnPage(self::FRONTEND_BRANDS_PATH); $I->expectTo('see updated brand'); $I->see('Все бренды', 'h2'); $I->seeLink('Intel'); $I->seeLink('Dell'); $I->seeLink('Samsung'); $I->dontSeeLink('A4Tech'); $I->amGoingTo('add a new brand'); $I->amOnPage(self::BACKEND_BRANDS_PATH . '/create'); $I->see('Производитель', 'h1'); $I->seeOptionIsSelected('Producer[status]', 'Доступен'); $I->expectTo('see validation errors'); $I->click('Добавить производителя и закрыть'); $I->see('Необходимо заполнить поле «Короткое название»', '.error'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->see('Необходимо заполнить поле «URL»', '.error'); $I->fillField('Producer[name_short]', 'Lenovo'); $I->wait(1); $I->seeInField('Producer[slug]', 'lenovo'); $I->fillField('Producer[name]', 'Lenovo'); $I->click('Данные для поисковой оптимизации'); $I->fillField('Producer[meta_title]', 'Lenovo. Заголовок страницы'); $I->fillField('Producer[meta_keywords]', 'Lenovo. Ключевые слова'); $I->fillField('Producer[meta_description]', 'Lenovo. Описание страницы'); $I->expectTo('see successful addition of data'); $I->click('Добавить производителя и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_BRANDS_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Lenovo'); $I->amGoingTo('see created brand'); $I->amOnPage(self::BACKEND_BRANDS_PATH . '/view/5'); $I->see('Просмотр производителя', 'h1'); $I->expectTo('see brand detail view table'); $I->see('Lenovo', 'td'); $I->see('Доступен', 'td'); $I->see('Lenovo. Заголовок страницы', 'td'); $I->expectTo('see sidebar menu'); $I->seeLink('Все бренды'); $I->seeLink('Добавить'); $I->seeLink('Редактировать производителя'); $I->seeLink('Просмотреть производителя'); $I->seeLink('Удалить производителя'); $I->amOnPage(self::FRONTEND_BRANDS_PATH); $I->seeLink('Lenovo'); $I->click('Lenovo'); $I->seeInCurrentUrl('/store/brand/lenovo'); $I->see('Все товары производителя «Lenovo»', 'h2'); $I->seeInTitle('Lenovo. Заголовок страницы'); $I->seeInPageSource('<meta name="description" content="Lenovo. Описание страницы"'); $I->seeInPageSource('<meta name="keywords" content="Lenovo. Ключевые слова"'); $I->amGoingTo('test deleting brand'); $I->amOnPage(self::BACKEND_BRANDS_PATH); $I->seeLink('Lenovo'); $I->amOnPage(self::BACKEND_BRANDS_PATH . '/delete/5'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_BRANDS_PATH); $I->expectTo('delete brand via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/5", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSeeLink('Lenovo'); }
public function tryToTestCommentsAntispam(WebGuy $I, $scenario) { $I = new 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->click('Первая публичная запись в опубликованном блоге'); $I->see("Первая публичная запись в опубликованном блоге", "h4"); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1); $I->see("Спасибо, Ваша запись добавлена!", CommonPage::SUCCESS_CSS_CLASS); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1); $I->see("Запись не добавлена!", CommonPage::ERROR_CSS_CLASS); $I->wait(15); $I->fillField('Comment[text]', "Antispam Test"); $I->click("Добавить комментарий"); $I->wait(1); $I->see("Спасибо, Ваша запись добавлена!", CommonPage::SUCCESS_CSS_CLASS); }
public function tryToTestOrderListBackend(WebGuy $I, $scenario) { $I->wantToTest('order backend'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->see('Заказы', 'h1'); $I->see('управление', 'small'); $I->expectTo('see sidebar menu'); $I->seeLink('Все заказы'); $I->seeLink('Добавить заказ'); $I->seeLink('Статусы заказов'); $I->seeLink('Добавить статус'); $I->see('Элементы 1—3 из 3.', '.summary'); $I->see('Добавить', '.btn-success'); $I->see('Удалить', '#delete-order'); $I->see('№', '.sort-link'); $I->see('Создан', '.sort-link'); $I->see('Клиент', '.sort-link'); $I->see('Сумма', '.sort-link'); $I->see('Статус', '.sort-link'); $I->see('Оплата', '.sort-link'); $I->see('Оплачено', '.sort-link'); $I->see('Доставка', '.sort-link'); $I->see('Менеджер', '.sort-link'); $I->seeLink('Платежеспособный Клиент Бабосович'); $I->seeLink('Багин Тестер Петрович'); $I->see('13 320,00 руб.', 'td'); $I->see('38 600,00 руб.', 'td'); $I->see('Наличными', 'td'); $I->see('Курьером'); $I->see('Самовывоз'); $I->amGoingTo('test order table filter'); $I->seeElement('input', ['name' => 'Order[id]']); $I->seeElement('input', ['name' => 'Order[name]']); $I->seeElement('input', ['name' => 'Order[total_price]']); $I->seeElement('select', ['name' => 'Order[status_id]']); $I->seeElement('select', ['name' => 'Order[payment_method_id]']); $I->seeElement('select', ['name' => 'Order[paid]']); $I->seeElement('select', ['name' => 'Order[delivery_id]']); $I->seeElement('select', ['name' => 'Order[manager_id]']); $I->fillField('Order[id]', 3); $I->pressKey('#Order_id', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Платежеспособный Клиент Бабосович'); $I->dontSeeLink('Багин Тестер Петрович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->fillField('Order[name]', 'баг'); $I->pressKey('#Order_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Багин Тестер Петрович'); $I->dontSeeLink('Платежеспособный Клиент Бабосович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->fillField('Order[total_price]', 13320); $I->pressKey('#Order_total_price', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Платежеспособный Клиент Бабосович'); $I->dontSeeLink('Багин Тестер Петрович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->selectOption('Order[status_id]', 'Новый'); $I->wait(1); $I->seeLink('Багин Тестер Петрович'); $I->dontSeeLink('Платежеспособный Клиент Бабосович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->selectOption('Order[payment_method_id]', 'Робокасса'); $I->wait(1); $I->see('Нет результатов.'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->selectOption('Order[paid]', 'Не оплачен'); $I->wait(1); $I->seeLink('Багин Тестер Петрович'); $I->dontSeeLink('Платежеспособный Клиент Бабосович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->selectOption('Order[delivery_id]', 'Курьером'); $I->wait(1); $I->seeLink('Платежеспособный Клиент Бабосович'); $I->dontSeeLink('Багин Тестер Петрович'); $I->amOnPage(self::BACKEND_ORDER_PATH); $I->selectOption('Order[manager_id]', 'Багин Тестер Петрович'); $I->wait(1); $I->seeLink('Платежеспособный Клиент Бабосович'); $I->dontSeeLink('Багин Тестер Петрович'); $I->amOnPage(self::BACKEND_ORDER_PATH); }
public function tryToTestPagePublishing(WebGuy $I, $scenario) { $I = new 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->selectOption('News[status]', 'Опубликовано'); $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.html')); $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('/opublikovannaja-starnica'); $I->seeInTitle('Опубликованная страница'); $I->see('Опубликованная страница', 'h1'); $I->see('Опубликованная страница текст'); $I->wantToTest('unpublished page...'); $I->amOnPage('/skrytaja-stranica'); $I->see('Страница которую вы запросили не найдена.'); $I->wantToTest('protected page...'); $I->amOnPage('/zaschischennaja-stranica'); $I->seeInCurrentUrl(LoginPage::$URL); $I->see('Для просмотра этой страницы Вам необходимо авторизоваться!', CommonPage::ERROR_CSS_CLASS); $I = new UserSteps($scenario); $I->login('*****@*****.**', 'testpassword'); $I->amOnPage('/zaschischennaja-stranica'); $I->seeInTitle('Защищенная страница'); $I->see('Защищенная страница', 'h1'); $I->see('Защищенная страница текст'); $I->wantToTest('page preview...'); $I->amOnPage('/skrytaja-stranica'); $I->see('Страница которую вы запросили не найдена.'); $I->amOnPage('/skrytaja-stranica?preview=1'); $I->seeInTitle('Скрытая страница'); $I->see('Скрытая страница', 'h1'); $I->see('Скрытая страница текст'); }
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 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 tryToTestProductLinkTypes(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amGoingTo('test backend product link types list'); $I->amOnPage(self::BACKEND_LINK_PATH); $I->see('Типы связей', 'h1'); $I->see('Добавить', '.btn-default'); $I->seeLink('Управление типами связей'); $I->see('Код', '.sort-link'); $I->see('Название', '.sort-link'); $I->seeInPageSource('<a class="delete" title="" data-toggle="tooltip" href="/index-test.php/backend/store/link/typeDelete/1" data-original-title="Удалить"'); $I->amGoingTo('test grid filter'); $I->fillField('//*[@id="question-grid"]/table/thead/tr[2]/td[2]/div/*[@id="ProductLinkType_code"]', 'similar'); $I->pressKey('//*[@id="question-grid"]/table/thead/tr[2]/td[2]/div/*[@id="ProductLinkType_code"]', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Похожие товары'); $I->dontSeeLink('С этим товаром покупают'); $I->fillField('//*[@id="question-grid"]/table/thead/tr[2]/td[2]/div/*[@id="ProductLinkType_code"]', ''); $I->wait(1); $I->fillField('//*[@id="question-grid"]/table/thead/tr[2]/td[3]/div/*[@id="ProductLinkType_title"]', 'этим'); $I->pressKey('//*[@id="question-grid"]/table/thead/tr[2]/td[3]/div/*[@id="ProductLinkType_title"]', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('С этим товаром покупают'); $I->dontSeeLink('Похожие товары'); $I->fillField('//*[@id="question-grid"]/table/thead/tr[2]/td[3]/div/*[@id="ProductLinkType_title"]', ''); $I->wait(1); $I->amGoingTo('add a new link'); $I->click('//*[@id="content"]/p/a[@class="btn btn-default btn-sm dropdown-toggle"]'); $I->seeElement('//*[@id="question-form"]/div[2]/div[1]/div/*[@id="ProductLinkType_code"]'); $I->seeElement('//*[@id="question-form"]/div[2]/div[2]/div/*[@id="ProductLinkType_title"]'); $I->see('Добавить', '.btn-primary'); $I->expectTo('see validation errors'); $I->click('//*[@id="question-form"]/div[3]/div/*[@class="btn btn-primary"]'); $I->see('Необходимо заполнить поле «Код»', '.error'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->fillField('//*[@id="question-form"]/div[2]/div[1]/div/*[@id="ProductLinkType_code"]', 'test'); $I->fillField('//*[@id="question-form"]/div[2]/div[2]/div/*[@id="ProductLinkType_title"]', 'Тестовая связь'); $I->click('//*[@id="question-form"]/div[3]/div/*[@class="btn btn-primary"]'); $I->wait(1); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Тестовая связь'); $I->dontSeeElement('//*[@id="question-form"]/div[2]/div[1]/div/*[@id="ProductLinkType_code"]'); $I->dontSeeElement('//*[@id="question-form"]/div[2]/div[2]/div/*[@id="ProductLinkType_title"]'); $I->amGoingTo('test deleting link'); $I->amOnPage(self::BACKEND_LINK_DELETE_PATH); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы!', '.alert-danger'); $I->amOnPage(self::BACKEND_LINK_PATH); $I->expectTo('delete attr via ajax request'); $I->executeJS(' var url = document.location.href; $.post( url.replace("typeIndex", "typeDelete") + "/3", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSeeLink('Тестовая связь'); }
public function tryToTestCategories(WebGuy $I, $scenario) { $I->am('normal user'); $I->amGoingTo('test store categories list page'); $I->amOnPage(self::FRONTEND_CATEGORIES_PATH); $I->expectTo('see published categories list'); $I->see('Категории', 'h2'); $I->seeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->dontSeeLink('Клавиатуры'); $I->dontSeeLink('Телефоны'); $I->amGoingTo('visit a category page'); $I->click('Компьютеры'); $I->seeInCurrentUrl('/store/computer'); $I->seeInTitle('Компьютеры'); $I->see('Компьютеры', 'h1'); $I->seeLink('Dell U2715H'); $I->seeLink('Samsung U28E590D'); $I->seeLink('A4Tech B314 Black USB'); $I->amOnPage(self::FRONTEND_CATEGORIES_PATH); $I->click('Мониторы'); $I->seeInCurrentUrl('/store/computer/display'); $I->seeInTitle('Мониторы'); $I->see('Мониторы', 'h1'); $I->seeLink('Dell U2715H'); $I->seeLink('Samsung U28E590D'); $I->dontSeeLink('A4Tech B314 Black USB'); $I->amGoingTo('visit a draft category page'); $I->expectTo('see 404 error'); $I->amOnPage('/store/computer/keyboard'); $I->see('Ошибка 404!', 'h2'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amGoingTo('test backend categories list'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH); $I->see('Категории', 'h1'); $I->seeLink('Все категории'); $I->seeLink('Новая категория'); $I->seeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->seeLink('Клавиатуры'); $I->seeInPageSource('<a class="front-view btn btn-sm btn-default" target="_blank" title="" data-toggle="tooltip" href="/index-test.php/store/computer"'); $I->seeInPageSource('<a class="view btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/category/view/1"'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/category/update/1"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/category/delete/1"'); $I->amGoingTo('test category grid filter'); $I->fillField('StoreCategory[name]', 'Комп'); $I->pressKey('#StoreCategory_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Компьютеры'); $I->dontSeeLink('Мониторы'); $I->dontSeeLink('Клавиатуры'); $I->fillField('StoreCategory[name]', ''); $I->wait(1); $I->fillField('StoreCategory[slug]', 'disp'); $I->pressKey('#StoreCategory_slug', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Мониторы'); $I->dontSeeLink('Компьютеры'); $I->dontSeeLink('Клавиатуры'); $I->fillField('StoreCategory[slug]', ''); $I->wait(1); $I->pressKey('#StoreCategory_slug', WebDriverKeys::ENTER); $I->wait(1); $I->selectOption('StoreCategory[parent_id]', 'Компьютеры'); $I->wait(1); $I->dontSeeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->seeLink('Клавиатуры'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH); $I->selectOption('StoreCategory[status]', 'Черновик'); $I->wait(1); $I->seeLink('Клавиатуры'); $I->dontSeeLink('Мониторы'); $I->dontSeeLink('Компьютеры'); $I->amGoingTo('change category status'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH . '/update/3'); $I->seeOptionIsSelected('StoreCategory[status]', 'Черновик'); $I->selectOption('StoreCategory[status]', 'Опубликовано'); $I->click('Сохранить категорию и закрыть'); $I->amOnPage(self::FRONTEND_CATEGORIES_PATH); $I->see('Категории', 'h2'); $I->seeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->seeLink('Клавиатуры'); $I->dontSeeLink('Телефоны'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH . '/update/3'); $I->selectOption('StoreCategory[status]', 'Черновик'); $I->click('Сохранить категорию и закрыть'); $I->amGoingTo('add a new category'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH . '/create'); $I->see('Категория', 'h1'); $I->seeOptionIsSelected('StoreCategory[status]', 'Опубликовано'); $I->expectTo('see validation errors'); $I->click('Добавить категорию и закрыть'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->see('Необходимо заполнить поле «Алиас»', '.error'); $I->fillField('StoreCategory[name]', 'Телефоны'); $I->wait(1); $I->seeInField('StoreCategory[slug]', 'telefony'); $I->click('Данные для поисковой оптимизации'); $I->fillField('StoreCategory[title]', 'Телефоны. Заголовок h1'); $I->fillField('StoreCategory[meta_title]', 'Телефоны. Заголовок страницы'); $I->fillField('StoreCategory[meta_keywords]', 'Телефоны. Ключевые слова'); $I->fillField('StoreCategory[meta_description]', 'Телефоны. Описание страницы'); $I->expectTo('see successful addition of data'); $I->click('Добавить категорию и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_CATEGORIES_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Телефоны'); $I->amGoingTo('see created category'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH . '/view/4'); $I->see('Просмотр категории', 'h1'); $I->expectTo('see category detail view table'); $I->see('Телефоны', 'td'); $I->see('telefony', 'td'); $I->see('Опубликовано', 'td'); $I->expectTo('see sidebar menu'); $I->seeLink('Все категории'); $I->seeLink('Новая категория'); $I->seeLink('Редактировать категорию'); $I->seeLink('Просмотреть категорию'); $I->seeLink('Удалить категорию'); $I->amOnPage(self::FRONTEND_CATEGORIES_PATH); $I->seeLink('Телефоны'); $I->click('Телефоны'); $I->seeInCurrentUrl('/store/telefony'); $I->see('Телефоны. Заголовок h1', 'h1'); $I->seeInTitle('Телефоны. Заголовок страницы'); $I->seeInPageSource('<meta name="description" content="Телефоны. Описание страницы"'); $I->seeInPageSource('<meta name="keywords" content="Телефоны. Ключевые слова"'); $I->amGoingTo('test deleting categories'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH); $I->seeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->seeLink('Клавиатуры'); $I->seeLink('Телефоны'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH . '/delete/4'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_CATEGORIES_PATH); $I->expectTo('delete category via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/4", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->seeLink('Компьютеры'); $I->seeLink('Мониторы'); $I->seeLink('Клавиатуры'); $I->dontSeeLink('Телефоны'); }
public function testLogout(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->login(LoginPage::$userEmail, LoginPage::$userPassword); $I->logout(); }
public function tryToTestBackendProductDelete(WebGuy $I, $scenario) { $I->wantTo('delete product'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amOnPage(self::BACKEND_PRODUCT_PATH); $I->see('Элементы 1—5 из 5.', '.summary'); $I->seeLink('Dell P2214H'); $I->amGoingTo('try delete product by direct request'); $I->expectTo('see error'); $I->amOnPage(self::BACKEND_PRODUCT_PATH . '/delete/2'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amGoingTo('try delete product by post request'); $I->amOnPage(self::BACKEND_PRODUCT_PATH); $I->executeJS(' $.post( document.location.href + "/delete/2", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->see('Элементы 1—4 из 4.', '.summary'); $I->dontSeeLink('Dell P2214H'); }
public function tryToTestDeliveryBackend(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->wantToTest('store delivery backend'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->expectTo('see sidebar menu'); $I->seeLink('Управление способами доставки'); $I->seeLink('Добавить способ доставки'); $I->see('Способы доставки', 'h1'); $I->see('управление', 'small'); $I->expectTo('see delivery table'); $I->see('Элементы 1—4 из 4.', '.summary'); $I->seeElement('table', ['class' => 'items table table-condensed']); $I->see('Название', '.sort-link'); $I->see('Стоимость', '.sort-link'); $I->see('Бесплатна от', '.sort-link'); $I->see('Доступна от', '.sort-link'); $I->see('Статус', '.sort-link'); $I->seeLink('Самовывоз'); $I->seeLink('Курьером'); $I->seeLink('Транспортная компания'); $I->seeLink('Пункт выдачи'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/delivery/delivery/update/1" data-original-title="Редактировать"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/delivery/delivery/delete/1" data-original-title="Удалить"'); $I->amGoingTo('test delivery filter'); $I->seeElement('input', ['name' => 'Delivery[name]']); $I->seeElement('input', ['name' => 'Delivery[price]']); $I->seeElement('input', ['name' => 'Delivery[free_from]']); $I->seeElement('input', ['name' => 'Delivery[available_from]']); $I->seeElement('select', ['name' => 'Delivery[status]']); $I->fillField('Delivery[name]', 'Самовывоз'); $I->pressKey('#Delivery_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Самовывоз'); $I->dontSeeLink('Курьером'); $I->dontSeeLink('Транспортная компания'); $I->dontSeeLink('Пункт выдачи'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->fillField('Delivery[price]', 700); $I->pressKey('#Delivery_price', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Транспортная компания'); $I->dontSeeLink('Курьером'); $I->dontSeeLink('Самовывоз'); $I->dontSeeLink('Пункт выдачи'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->fillField('Delivery[free_from]', 30000); $I->pressKey('#Delivery_free_from', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Курьером'); $I->dontSeeLink('Самовывоз'); $I->dontSeeLink('Транспортная компания'); $I->dontSeeLink('Пункт выдачи'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->fillField('Delivery[available_from]', 10000); $I->pressKey('#Delivery_available_from', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Транспортная компания'); $I->dontSeeLink('Курьером'); $I->dontSeeLink('Самовывоз'); $I->dontSeeLink('Пункт выдачи'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->selectOption('Delivery[status]', 'Неактивен'); $I->wait(1); $I->seeLink('Пункт выдачи'); $I->dontSeeLink('Транспортная компания'); $I->dontSeeLink('Курьером'); $I->dontSeeLink('Самовывоз'); $I->amGoingTo('add a new delivery'); $I->amOnPage(self::BACKEND_DELIVERY_PATH . '/create'); $I->see('Способы доставки', 'h1'); $I->see('добавление', 'small'); $I->seeLink('Управление способами доставки'); $I->seeLink('Добавить способ доставки'); $I->seeOptionIsSelected('Delivery[status]', 'Активен'); $I->seeInField('Delivery[price]', '0.00'); $I->dontSeeCheckboxIsChecked('Delivery[separate_payment]'); $I->fillField('Delivery[name]', 'Почта России'); $I->fillField('Delivery[price]', 250); $I->click('Добавить доставку и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_DELIVERY_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Почта России'); $I->amGoingTo('update delivery'); $I->amOnPage(self::BACKEND_DELIVERY_PATH . '/update/5'); $I->see('Редактирование способа доставки', 'h1'); $I->see('«Почта России»', 'small'); $I->expectTo('see sidebar menu'); $I->seeLink('Управление способами доставки'); $I->seeLink('Добавить способ доставки'); $I->seeLink('Редактировать способ доставки'); $I->seeLink('Удалить способ доставки'); $I->fillField('Delivery[price]', 123); $I->click('Сохранить доставку и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_DELIVERY_PATH); $I->see('Запись изменена!', '.alert-success'); $I->see('123.00', 'td'); $I->amGoingTo('test delete delivery'); $I->amOnPage(self::BACKEND_DELIVERY_PATH . '/delete/5'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_DELIVERY_PATH); $I->expectTo('delete attr via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/5", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSeeLink('Почта России'); }
public function tryToTestAttributes(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amGoingTo('test backend attr list'); $I->amOnPage(self::BACKEND_ATTR_PATH); $I->see('Атрибуты', 'h1'); $I->expectTo('see sidebar menu'); $I->seeLink('Атрибуты'); $I->seeLink('Добавить'); $I->expectTo('see attr groups'); $I->see('Группы атрибутов', 'legend'); $I->seeLink('Группа1'); $I->seeLink('Группа2'); $I->expectTo('see attr list'); $I->see('Название', '.sort-link'); $I->see('Алиас', '.sort-link'); $I->see('Группа', '.sort-link'); $I->see('Тип', '.sort-link'); $I->see('Обязательный', '.sort-link'); $I->see('Фильтр', '.sort-link'); $I->seeLink('Тип клавиатуры'); $I->seeLink('Матрица'); $I->seeLink('Диагональ'); $I->expectTo('see buttons column'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/attribute/update/1"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/attribute/delete/1"'); $I->amGoingTo('test attr grid filter'); $I->fillField('Attribute[title]', 'клав'); $I->pressKey('#Attribute_title', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Тип клавиатуры'); $I->dontSeeLink('Матрица'); $I->dontSeeLink('Диагональ'); $I->fillField('Attribute[title]', ''); $I->wait(1); $I->fillField('Attribute[name]', 'diag'); $I->pressKey('#Attribute_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Диагональ'); $I->dontSeeLink('Тип клавиатуры'); $I->dontSeeLink('Матрица'); $I->fillField('Attribute[name]', ''); $I->wait(1); $I->selectOption('Attribute[group_id]', 'Группа1'); $I->wait(1); $I->dontSeeLink('Тип клавиатуры'); $I->seeLink('Матрица'); $I->seeLink('Диагональ'); $I->selectOption('Attribute[type]', 'Число'); $I->wait(1); $I->seeLink('Диагональ'); $I->dontSeeLink('Тип клавиатуры'); $I->dontSeeLink('Матрица'); $I->amOnPage(self::BACKEND_ATTR_PATH); $I->selectOption('Attribute[required]', 'Да'); $I->wait(1); $I->see('Нет результатов.'); $I->selectOption('Attribute[required]', 'Нет'); $I->wait(1); $I->seeLink('Матрица'); $I->seeLink('Диагональ'); $I->seeLink('Тип клавиатуры'); $I->amOnPage(self::BACKEND_ATTR_PATH); $I->selectOption('Attribute[is_filter]', 'Нет'); $I->wait(1); $I->see('Нет результатов.'); $I->selectOption('Attribute[is_filter]', 'Да'); $I->wait(1); $I->seeLink('Матрица'); $I->seeLink('Диагональ'); $I->seeLink('Тип клавиатуры'); $I->amGoingTo('add a new attr'); $I->amOnPage(self::BACKEND_ATTR_PATH . '/create'); $I->see('Атрибут', 'h1'); $I->expectTo('see validation errors'); $I->click('Добавить атрибут и закрыть'); $I->see('Необходимо заполнить поле «Тип»', '.error'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->see('Необходимо заполнить поле «Алиас»', '.error'); $I->selectOption('Attribute[type]', 'Число'); $I->fillField('Attribute[title]', 'Ширина'); $I->wait(1); $I->seeInField('Attribute[name]', 'shirina'); $I->fillField('Attribute[unit]', 'м'); $I->seeCheckboxIsChecked('Attribute[is_filter]'); $I->click('Добавить атрибут и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_ATTR_PATH); $I->see('Атрибут создан', '.alert-success'); $I->seeLink('Ширина'); $I->amGoingTo('test deleting attributes'); $I->amOnPage(self::BACKEND_ATTR_PATH . '/delete/4'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_ATTR_PATH); $I->expectTo('delete attr via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/4", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->seeLink('Диагональ'); $I->dontSeeLink('Ширина'); }
public function tryToTestCouponBackend(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amOnPage(self::BACKEND_COUPON_PATH); $I->expectTo('see sidebar menu'); $I->seeLink('Управление купонами'); $I->seeLink('Добавить купон'); $I->see('Купоны', 'h1'); $I->expectTo('see coupon table'); $I->see('Название', '.sort-link'); $I->see('Код', '.sort-link'); $I->see('Дата начала', '.sort-link'); $I->see('Дата конца', '.sort-link'); $I->see('Статус', '.sort-link'); $I->see('Заказы', 'th'); $I->expectTo('see buttons column'); $I->seeInPageSource('<a class="view btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/coupon/coupon/view/1" data-original-title="Просмотреть"'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/coupon/coupon/update/1" data-original-title="Редактировать"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/coupon/coupon/delete/1" data-original-title="Удалить"'); $I->expectTo('see coupon list'); $I->seeLink('Купон1'); $I->seeLink('Купон2'); $I->seeLink('Купон3'); $I->seeLink('Купон4'); $I->see('CPN1'); $I->see('CPN2'); $I->see('CPN3'); $I->see('CPN4'); $I->amGoingTo('test coupon filter'); $I->seeElement('input', ['name' => 'Coupon[name]']); $I->seeElement('input', ['name' => 'Coupon[code]']); $I->seeElement('input', ['name' => 'Coupon[start_time]']); $I->seeElement('input', ['name' => 'Coupon[end_time]']); $I->seeElement('select', ['name' => 'Coupon[status]']); $I->fillField('Coupon[name]', 'Купон1'); $I->pressKey('#Coupon_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Купон1'); $I->dontSeeLink('Купон2'); $I->dontSeeLink('Купон3'); $I->dontSeeLink('Купон4'); $I->amOnPage(self::BACKEND_COUPON_PATH); $I->fillField('Coupon[code]', 'CPN2'); $I->pressKey('#Coupon_code', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Купон2'); $I->dontSeeLink('Купон1'); $I->dontSeeLink('Купон3'); $I->dontSeeLink('Купон4'); $I->amOnPage(self::BACKEND_COUPON_PATH); $I->fillField('Coupon[end_time]', '2016-07-01'); $I->pressKey('#Coupon_end_time', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Купон3'); $I->dontSeeLink('Купон2'); $I->dontSeeLink('Купон1'); $I->dontSeeLink('Купон4'); $I->amOnPage(self::BACKEND_COUPON_PATH); $I->selectOption('Coupon[status]', 'Неактивен'); $I->wait(1); $I->seeLink('Купон4'); $I->dontSeeLink('Купон3'); $I->dontSeeLink('Купон2'); $I->dontSeeLink('Купон1'); $I->amGoingTo('add a new coupon'); $I->amOnPage(self::BACKEND_COUPON_PATH . '/create'); $I->see('Купоны', 'h1'); $I->see('добавление', 'small'); $I->seeLink('Управление купонами'); $I->seeLink('Добавить купон'); $I->seeOptionIsSelected('Coupon[type]', 'Сумма'); $I->seeOptionIsSelected('Coupon[status]', 'Неактивен'); $I->seeOptionIsSelected('Coupon[free_shipping]', 'нет'); $I->seeOptionIsSelected('Coupon[registered_user]', 'нет'); $I->expectTo('see validation errors'); $I->click('Добавить купон и закрыть'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->see('Необходимо заполнить поле «Код»', '.error'); $I->fillField('Coupon[name]', 'Тестовый купон'); $I->amGoingTo('add coupon with existing code'); $I->expectTo('see error'); $I->fillField('Coupon[code]', 'CPN1'); $I->click('Добавить купон и закрыть'); $I->see('Код "CPN1" уже занят.', '.error'); $I->fillField('Coupon[code]', 'test'); $I->click('Добавить купон и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_COUPON_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('Тестовый купон'); $I->amGoingTo('view coupon data'); $I->amOnPage(self::BACKEND_COUPON_PATH . '/view/5'); $I->see('Просмотр купона', 'h1'); $I->see('«test»', 'small'); $I->expectTo('see sidebar menu'); $I->seeLink('Управление купонами'); $I->seeLink('Добавить купон'); $I->seeLink('Редактировать купон'); $I->seeLink('Просмотреть купон'); $I->seeLink('Удалить купон'); $I->seeElement('table', ['class' => 'detail-view table table-striped table-condensed']); $I->see('ID', 'th'); $I->see('5', 'td'); $I->see('Название', 'th'); $I->see('Тестовый купон', 'td'); $I->see('Код', 'th'); $I->see('test', 'td'); $I->see('Тип', 'th'); $I->see('Сумма', 'td'); $I->amGoingTo('delete coupon'); $I->amOnPage(self::BACKEND_COUPON_PATH . '/delete/5'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_COUPON_PATH); $I->expectTo('delete attr via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/5", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->seeLink('Купон1'); $I->seeLink('Купон2'); $I->seeLink('Купон3'); $I->seeLink('Купон4'); $I->dontSeeLink('Тестовый купон'); }
public function tryToTestContactsPage(WebGuy $I, $scenario) { $I->am('simple user'); $I->amGoingTo('test contacts page'); $I->amOnPage(FeedBackPage::CONTACTS_URL); $I->seeInTitle('Контакты'); $I->see('Контакты', 'h1'); $I->seeInField(FeedBackPage::$nameField, ''); $I->seeInField(FeedBackPage::$emailField, ''); $I->seeInField(FeedBackPage::$themeField, ''); $I->seeInField(FeedBackPage::$textField, ''); $I->see(FeedBackPage::$buttonLabel); $I->amGoingTo('test email validation'); $I->fillField(FeedBackPage::$nameField, 'test_name'); $I->fillField(FeedBackPage::$emailField, 'test_email'); $I->fillField(FeedBackPage::$themeField, 'test_theme'); $I->fillField(FeedBackPage::$textField, 'test_text'); $I->click(FeedBackPage::$buttonLabel); $I->see('Email не является правильным E-Mail адресом.', CommonPage::ERROR_CSS_CLASS); $I->amGoingTo('test save feedback'); $I->fillField(FeedBackPage::$emailField, '*****@*****.**'); $I->click(FeedBackPage::$buttonLabel); $I->see('Ваше сообщение отправлено! Спасибо!', CommonPage::SUCCESS_CSS_CLASS); $I->seeInDatabase('yupe_feedback_feedback', ['name' => 'test_name', 'email' => '*****@*****.**', 'theme' => 'test_theme', 'text' => 'test_text', 'is_faq' => 0, 'status' => 0]); $I->amGoingTo('check that new message is hide from public access'); $I->amOnPage(FeedBackPage::routeFaq(1)); $I->see('Страница которую вы запросили не найдена.'); $I->amOnPage(FeedBackPage::FAQ_URL); $I->see('Вопросы и ответы', 'h1'); $I->see('Задайте вопрос?!', '.btn'); $I->dontSeeLink('test_theme'); $I->amGoingTo('mark feedback message as faq'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->amOnPage('/backend/feedback/feedback'); $I->see('test_name'); $I->amOnPage('/backend/feedback/feedback/update/1'); $I->selectOption('FeedBack[status]', 'Ответ отправлен'); $I->dontSeeCheckboxIsChecked('#FeedBack_is_faq'); $I->checkOption('#FeedBack_is_faq'); $I->executeJs('$("textarea[name^=FeedBack]").show();'); $I->fillField('FeedBack[answer]', 'test_answer'); $I->click('Сохранить сообщение и закрыть'); $I->see('Сообщение обновлено!', CommonPage::SUCCESS_CSS_CLASS); $I->seeInCurrentUrl('/backend/feedback/feedback'); $I->seeInDatabase('yupe_feedback_feedback', ['name' => 'test_name', 'email' => '*****@*****.**', 'theme' => 'test_theme', 'answer' => 'test_answer', 'is_faq' => 1, 'status' => 3]); $I->logout(); $I->amGoingTo('test view feedback message on the public site'); $I->amOnPage(FeedBackPage::FAQ_URL); $I->see('Вопросы и ответы', 'h1'); $I->see('Задайте вопрос?!', '.btn'); $I->seeLink('test_theme'); $I->click('test_theme'); $I->seeLink('Подробнее...'); $I->click('Подробнее...'); $I->see('test_theme #1', 'h1'); $I->see('Задайте вопрос?!', '.btn'); $check = ['test_name', 'test_theme', 'test_text', 'test_answer']; foreach ($check as $ch) { $I->see($ch); } }
public function tryToTestTypes(WebGuy $I, $scenario) { $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amGoingTo('test backend type list'); $I->amOnPage(self::BACKEND_TYPE_PATH); $I->see('Типы товаров', 'h1'); $I->expectTo('see sidebar menu'); $I->seeLink('Управление типами'); $I->seeLink('Добавить тип'); $I->expectTo('see type list'); $I->seeLink('Клавиатуры'); $I->seeLink('Мониторы'); $I->expectTo('see buttons column'); $I->seeInPageSource('<a class="update btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/type/update/1"'); $I->seeInPageSource('<a class="delete btn btn-sm btn-default" title="" data-toggle="tooltip" href="/index-test.php/backend/store/type/delete/1"'); $I->amGoingTo('test type grid filter'); $I->fillField('Type[name]', 'Мон'); $I->pressKey('#Type_name', WebDriverKeys::ENTER); $I->wait(1); $I->seeLink('Мониторы'); $I->dontSeeLink('Клавиатуры'); $I->amGoingTo('add a new type'); $I->amOnPage(self::BACKEND_TYPE_PATH . '/create'); $I->see('Тип товара', 'h1'); $I->see('Группа1', 'label'); $I->see('Группа2', 'label'); $I->expectTo('see validation errors'); $I->click('Добавить тип и закрыть'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->fillField('Type[name]', 'Телефны'); $I->expectTo('see successful addition of data'); $I->click('Добавить тип и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_TYPE_PATH); $I->see('Тип товара создан', '.alert-success'); $I->seeLink('Телефны'); $I->amGoingTo('edit wrong type name'); $I->amOnPage(self::BACKEND_TYPE_PATH . '/update/3'); $I->expectTo('see sidebar menu'); $I->seeLink('Управление типами'); $I->seeLink('Добавить тип'); $I->seeLink('Редактировать тип'); $I->seeLink('Удалить тип'); $I->fillField('Type[name]', 'Телефоны'); $I->click('Сохранить тип и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_TYPE_PATH); $I->see('Тип товара обновлен', '.alert-success'); $I->seeLink('Телефоны'); $I->amGoingTo('test deleting type'); $I->amOnPage(self::BACKEND_TYPE_PATH); $I->seeLink('Телефоны'); $I->amOnPage(self::BACKEND_TYPE_PATH . '/delete/3'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_TYPE_PATH); $I->expectTo('delete type via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/3", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSeeLink('Телефоны'); }