/** * Assert that displayed category data on category page equals to passed from fixture * * @param CatalogCategory $category * @param CatalogCategory $initialCategory * @param FixtureFactory $fixtureFactory * @param CatalogCategoryView $categoryView * @param Browser $browser * @return void */ public function processAssert(CatalogCategory $category, CatalogCategory $initialCategory, FixtureFactory $fixtureFactory, CatalogCategoryView $categoryView, Browser $browser) { $product = $fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'default', 'data' => ['category_ids' => ['category' => $initialCategory]]]); $categoryData = array_merge($initialCategory->getData(), $category->getData()); $product->persist(); $url = $_ENV['app_frontend_url'] . strtolower($category->getUrlKey()) . '.html'; $browser->open($url); \PHPUnit_Framework_Assert::assertEquals($url, $browser->getUrl(), 'Wrong page URL.' . "\nExpected: " . $url . "\nActual: " . $browser->getUrl()); if (isset($categoryData['name'])) { $title = $categoryView->getTitleBlock()->getTitle(); \PHPUnit_Framework_Assert::assertEquals($categoryData['name'], $title, 'Wrong page title.' . "\nExpected: " . $categoryData['name'] . "\nActual: " . $title); } if (isset($categoryData['description'])) { $description = $categoryView->getViewBlock()->getDescription(); \PHPUnit_Framework_Assert::assertEquals($categoryData['description'], $description, 'Wrong category description.' . "\nExpected: " . $categoryData['description'] . "\nActual: " . $description); } if (isset($categoryData['default_sort_by'])) { $sortBy = strtolower($categoryData['default_sort_by']); $sortType = $categoryView->getTopToolbar()->getSelectSortType(); \PHPUnit_Framework_Assert::assertEquals($sortBy, $sortType, 'Wrong sorting type.' . "\nExpected: " . $sortBy . "\nActual: " . $sortType); } if (isset($categoryData['available_sort_by'])) { $availableSortType = array_filter($categoryData['available_sort_by'], function (&$value) { return $value !== '-' && ucfirst($value); }); if ($availableSortType) { $availableSortType = array_values($availableSortType); $availableSortTypeOnPage = $categoryView->getTopToolbar()->getSortType(); \PHPUnit_Framework_Assert::assertEquals($availableSortType, $availableSortTypeOnPage, 'Wrong available sorting type.' . "\nExpected: " . implode(PHP_EOL, $availableSortType) . "\nActual: " . implode(PHP_EOL, $availableSortTypeOnPage)); } } }
/** * Assert that you will be redirected to url from dataset * * @param CmsIndex $cmsIndex * @param Browser $browser * @param CatalogSearchQuery $searchTerm * @return void */ public function processAssert(CmsIndex $cmsIndex, Browser $browser, CatalogSearchQuery $searchTerm) { $cmsIndex->open()->getSearchBlock()->search($searchTerm->getSynonymFor()); $windowUrl = $browser->getUrl(); $redirectUrl = $searchTerm->getRedirect(); \PHPUnit_Framework_Assert::assertEquals($windowUrl, $redirectUrl, 'Redirect by synonym was not executed.' . PHP_EOL . "Expected: " . $redirectUrl . PHP_EOL . "Actual: " . $windowUrl); }
/** * Assert that outside redirect was success * * @param UrlRewrite $urlRewrite * @param Browser $browser * @param UrlRewrite|null $initialRewrite [optional] * @return void */ public function processAssert(UrlRewrite $urlRewrite, Browser $browser, UrlRewrite $initialRewrite = null) { $urlRequestPath = $urlRewrite->hasData('request_path') ? $urlRewrite->getRequestPath() : $initialRewrite->getRequestPath(); $urlTargetPath = $urlRewrite->hasData('target_path') ? $urlRewrite->getTargetPath() : $initialRewrite->getTargetPath(); $browser->open($_ENV['app_frontend_url'] . $urlRequestPath); $browserUrl = $browser->getUrl(); \PHPUnit_Framework_Assert::assertEquals($browserUrl, $urlTargetPath, 'URL rewrite redirect false.' . "\nExpected: " . $urlTargetPath . "\nActual: " . $browserUrl); }
/** * Assert that after save a search term: * - it displays in the Search field at the top of the page if type set of characters passed from fixture * - after click 'Go' of Search field opens a results page if it was not specified Redirect URL * - after click 'Go' of Search field a customer search redirects to a specific page (passed from fixture) * if it was specified Redirect URL * * @param CmsIndex $cmsIndex * @param CatalogSearchQuery $searchTerm * @param Browser $browser * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogSearchQuery $searchTerm, Browser $browser) { $errors = []; $this->searchBlock = $cmsIndex->open()->getSearchBlock(); if ($searchTerm->hasData('display_in_terms') && $searchTerm->getDisplayInTerms() === 'Yes') { $errors = $this->checkSuggestSearch($searchTerm); } $this->searchBlock->search($searchTerm->getQueryText()); $windowUrl = $browser->getUrl(); $redirectUrl = $searchTerm->getRedirect(); if ($windowUrl !== $redirectUrl) { $errors[] = '- url window (' . $windowUrl . ') does not match the url redirect(' . $redirectUrl . ')'; } \PHPUnit_Framework_Assert::assertEmpty($errors, 'When checking on the frontend "Search terms" arose following errors:' . PHP_EOL . implode(PHP_EOL, $errors)); }
/** * Assert that you will be not redirected to url from dataset * * @param CmsIndex $cmsIndex * @param CatalogSearchQuery $searchTerm * @param Browser $browser * @return void */ public function processAssert(CmsIndex $cmsIndex, Browser $browser, CatalogSearchQuery $searchTerm) { $cmsIndex->open()->getSearchBlock()->search($searchTerm->getSynonymFor()); \PHPUnit_Framework_Assert::assertNotEquals($browser->getUrl(), $searchTerm->getRedirect(), 'Url in the browser corresponds to Url in fixture (redirect has been performed).' . PHP_EOL . 'Search term: "' . $searchTerm->getQueryText() . '"'); }
/** * Assert check URL rewrite category redirect * * @param UrlRewrite $urlRewrite * @param CatalogCategory $category * @param Browser $browser * @return void */ public function processAssert(UrlRewrite $urlRewrite, CatalogCategory $category, Browser $browser) { $browser->open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); $url = $urlRewrite->getOptions() == 'No' ? $urlRewrite->getRequestPath() : $category->getUrlKey() . '.html'; \PHPUnit_Framework_Assert::assertEquals($browser->getUrl(), $_ENV['app_frontend_url'] . $url, 'URL rewrite category redirect false.' . "\nExpected: " . $_ENV['app_frontend_url'] . $url . "\nActual: " . $browser->getUrl()); }
/** * Assert that created CMS Page URL Redirect lead to appropriate page in frontend * * @param UrlRewrite $urlRewrite * @param CmsPage $cmsPage * @param Browser $browser * @return void */ public function processAssert(UrlRewrite $urlRewrite, CmsPage $cmsPage, Browser $browser) { $browser->open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath()); $url = $urlRewrite->getOptions() == 'No' ? $urlRewrite->getRequestPath() : $this->url . $cmsPage->getPageId(); \PHPUnit_Framework_Assert::assertEquals($browser->getUrl(), $_ENV['app_frontend_url'] . $url, 'URL rewrite CMS Page redirect false.' . "\nExpected: " . $_ENV['app_frontend_url'] . $url . "\nActual: " . $browser->getUrl()); }