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 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 tryToTestOrderStatusBackend(WebGuy $I, $scenario) { $I->wantToTest('order status'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH); $I->see('Статусы заказа', 'h1'); $I->see('управление', 'small'); $I->expectTo('see sidebar menu'); $I->seeLink('Все заказы'); $I->seeLink('Добавить заказ'); $I->seeLink('Статусы заказов'); $I->seeLink('Добавить статус'); $I->expectTo('see order status table'); $I->see('Элементы 1—4 из 4.', '.summary'); $I->see('Добавить', '.btn-success'); $I->see('Удалить', '#delete-orderstatus'); $I->see('№', '.sort-link'); $I->see('Название', '.sort-link'); $I->see('Новый', '.label-default'); $I->see('Принят', '.label-info'); $I->see('Выполнен', '.label-success'); $I->see('Удален', '.label-danger'); $I->amGoingTo('test status filter'); $I->seeElement('input', ['name' => 'OrderStatus[name]']); $I->fillField('OrderStatus[name]', 'Новый'); $I->pressKey('#OrderStatus_name', WebDriverKeys::ENTER); $I->wait(1); $I->see('Новый', '.label-default'); $I->dontSee('Принят', '.label-info'); $I->dontSee('Выполнен', '.label-success'); $I->dontSee('Удален', '.label-danger'); $I->amGoingTo('add a new status'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH . '/create'); $I->see('Статусы заказа', 'h1'); $I->see('добавление', 'small'); $I->seeLink('Все заказы'); $I->seeLink('Добавить заказ'); $I->seeLink('Статусы заказов'); $I->seeLink('Добавить статус'); $I->seeElement('input', ['name' => 'OrderStatus[name]']); $I->amGoingTo('send form without data'); $I->expectTo('see validation error'); $I->click('Добавить статус и продолжить'); $I->see('Необходимо заполнить поле «Название».', '.error'); $I->fillField('OrderStatus[name]', 'Отменен'); $I->click('Добавить статус и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_ORDER_STATUS_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->see('Отменен', 'td'); $I->amGoingTo('update system status'); $I->expectTo('see error'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH . '/update/1'); $I->see('Ошибка 404!', 'h2'); $I->amGoingTo('update status'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH . '/update/5'); $I->seeInField('OrderStatus[name]', 'Отменен'); $I->fillField('OrderStatus[name]', 'Изменен'); $I->click('Сохранить статус и закрыть'); $I->wait(1); $I->seeInCurrentUrl(self::BACKEND_ORDER_STATUS_PATH); $I->see('Запись изменена!', '.alert-success'); $I->see('Изменен', 'td'); $I->amGoingTo('delete status'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH . '/delete/5'); $I->expectTo('see an error message'); $I->see('Неверный запрос. Пожалуйста, больше не повторяйте такие запросы', '.alert-danger'); $I->amOnPage(self::BACKEND_ORDER_STATUS_PATH); $I->expectTo('delete status via ajax request'); $I->executeJS(' $.post( document.location.href + "/delete/5", {"YUPE_TOKEN":yupeToken} ); '); $I->wait(1); $I->reloadPage(); $I->dontSee('Изменен', 'td'); }
public function tryToTestBackendProductCreate(WebGuy $I, $scenario) { $I->wantTo('create product'); $I = new UserSteps($scenario); $I->loginAsAdminAndGoToThePanel(CommonPage::TEST_USER_NAME, CommonPage::TEST_PASSWORD); $I->am('administrator'); $I->amOnPage(self::BACKEND_PRODUCT_PATH . '/create'); $I->see('Товары', 'h1'); $I->see('добавление', 'small'); $I->expectTo('see sidebar menu'); $I->seeLink('Все товары'); $I->seeLink('Добавить товар'); $I->expectTo('see required fields validation errors'); $I->click('Добавить товар и закрыть'); $I->see('Необходимо заполнить поле «Название»', '.error'); $I->see('Необходимо заполнить поле «Алиас»', '.error'); $I->fillField('Product[sku]', 'TST6'); $I->seeOptionIsSelected('Product[status]', 'Доступен'); $I->selectOption('Product[category_id]', 'Клавиатуры'); $I->selectOption('Product[producer_id]', 'A4Tech'); $I->fillField('Product[name]', 'A4Tech Bloody B740 White USB'); $I->wait(1); $I->seeInField('Product[slug]', 'a4tech-bloody-b740-white-usb'); $I->fillField('Product[price]', 7000); $I->fillField('Product[discount]', 5); $I->click('//*[@id="content"]/ul[@class="nav nav-tabs"]/li[2]/a'); $I->selectOption('Product[type_id]', 'Клавиатуры'); $I->wait(1); $I->see('Тип клавиатуры', 'label'); $I->selectOption('Attribute[3]', 'механическая'); $I->click('Склад'); $I->seeOptionIsSelected('Product[in_stock]', 'В наличии'); $I->fillField('Product[quantity]', 1); $I->fillField('Product[length]', 101); $I->fillField('Product[width]', 102); $I->fillField('Product[height]', 103); $I->fillField('Product[weight]', 104); $I->click('SEO'); $I->fillField('Product[title]', 'A4Tech Bloody. Заголовок h1'); $I->fillField('Product[meta_title]', 'A4Tech Bloody. Заголовок страницы'); $I->fillField('Product[meta_keywords]', 'A4Tech Bloody. Meta-keywords'); $I->fillField('Product[meta_description]', 'A4Tech Bloody. Meta-description'); $I->click('Связанные товары'); $I->see('Сначала необходимо сохранить товар.'); $I->click('Добавить товар и закрыть'); $I->seeInCurrentUrl(self::BACKEND_PRODUCT_PATH); $I->see('Запись добавлена!', '.alert-success'); $I->seeLink('A4Tech Bloody B740 White USB'); $I->amOnPage(self::BACKEND_PRODUCT_PATH . '/view/6'); $I->see('Просмотр товара', 'h1'); $I->see('«A4Tech Bloody B740 White USB»', 'small'); $I->see('Тип', 'th'); $I->see('Клавиатуры', 'td'); $I->see('Название', 'th'); $I->see('A4Tech Bloody B740 White USB', 'td'); $I->see('Цена', 'th'); $I->see('7000.000', 'td'); $I->see('Статус', 'th'); $I->see('Доступен', 'td'); $I->see('Длина, м.', 'th'); $I->see('101.000', 'td'); $I->see('Ширина, м.', 'th'); $I->see('102.000', 'td'); $I->see('Высота, м.', 'th'); $I->see('103.000', 'td'); $I->see('Вес, кг.', 'th'); $I->see('104.000', 'td'); $I->see('Количество', 'th'); $I->see('1', 'td'); $I->amOnPage(self::FRONTEND_PRODUCT_PATH); $I->seeLink('A4Tech Bloody B740 White USB'); }
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 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 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 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('Телефоны'); }