コード例 #1
0
ファイル: CommentCest.php プロジェクト: alextravin/yupe
 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);
 }
コード例 #2
0
ファイル: StoreAttributeCest.php プロジェクト: yupe/yupe
 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('Ширина');
 }
コード例 #3
0
ファイル: StoreOrderCest.php プロジェクト: yupe/yupe
 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);
 }
コード例 #4
0
ファイル: StoreProductCest.php プロジェクト: yupe/yupe
 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');
 }
コード例 #5
0
ファイル: StorePaymentCest.php プロジェクト: yupe/yupe
 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('Тестовый');
 }
コード例 #6
0
ファイル: StoreBrandCest.php プロジェクト: yupe/yupe
 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');
 }
コード例 #7
0
ファイル: StoreTypeCest.php プロジェクト: yupe/yupe
 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('Телефоны');
 }
コード例 #8
0
ファイル: StoreCouponCest.php プロジェクト: yupe/yupe
 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('Тестовый купон');
 }
コード例 #9
0
ファイル: StoreDeliveryCest.php プロジェクト: yupe/yupe
 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('Почта России');
 }
コード例 #10
0
ファイル: StoreLinkCest.php プロジェクト: yupe/yupe
 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('Тестовая связь');
 }
コード例 #11
0
ファイル: StoreCategoryCest.php プロジェクト: yupe/yupe
 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('Телефоны');
 }