/** * Assert that category name is different on different store view. * * @param BrowserInterface $browser * @param CatalogCategoryView $categoryView * @param Category $category * @param Category $initialCategory * @param CmsIndex $cmsIndex * @return void */ public function processAssert(BrowserInterface $browser, CatalogCategoryView $categoryView, Category $category, Category $initialCategory, CmsIndex $cmsIndex) { $cmsIndex->open(); $cmsIndex->getLinksBlock()->waitWelcomeMessage(); $browser->open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); \PHPUnit_Framework_Assert::assertEquals($initialCategory->getName(), $categoryView->getTitleBlock()->getTitle(), 'Wrong category name is displayed for default store.'); $store = $category->getDataFieldConfig('store_id')['source']->store->getName(); $cmsIndex->getStoreSwitcherBlock()->selectStoreView($store); $cmsIndex->getLinksBlock()->waitWelcomeMessage(); $browser->open($_ENV['app_frontend_url'] . $initialCategory->getUrlKey() . '.html'); \PHPUnit_Framework_Assert::assertEquals($category->getName(), $categoryView->getTitleBlock()->getTitle(), 'Wrong category name is displayed for ' . $store); }
/** * 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 the category is no longer available on the top menu bar * * @param CmsIndex $cmsIndex * @param CatalogCategory $category * @param Browser $browser * @param CatalogCategoryView $categoryView * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogCategory $category, Browser $browser, CatalogCategoryView $categoryView) { $cmsIndex->open(); \PHPUnit_Framework_Assert::assertFalse($cmsIndex->getTopmenu()->isCategoryVisible($category->getName()), 'Category can be accessed from the navigation bar in the frontend.'); $browser->open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); \PHPUnit_Framework_Assert::assertEquals($category->getName(), $categoryView->getTitleBlock()->getTitle(), 'Wrong page is displayed.'); if (isset($category->getDataFieldConfig('category_products')['source'])) { $products = $category->getDataFieldConfig('category_products')['source']->getProducts(); foreach ($products as $productFixture) { \PHPUnit_Framework_Assert::assertTrue($categoryView->getListProductBlock()->isProductVisible($productFixture->getName()), "Products '{$productFixture->getName()}' not find."); } } }
/** * Assert category general information * * @param Category $category * @param array $categoryData * @return void */ protected function assertGeneralInformation(Category $category, array $categoryData) { $categoryUrl = $this->getCategoryUrl($category); \PHPUnit_Framework_Assert::assertEquals($categoryUrl, $this->browser->getUrl(), 'Wrong page URL.' . "\nExpected: " . $categoryUrl . "\nActual: " . $this->browser->getUrl()); if (isset($categoryData['name'])) { $title = $this->categoryViewPage->getTitleBlock()->getTitle(); \PHPUnit_Framework_Assert::assertEquals($categoryData['name'], $title, 'Wrong page title.' . "\nExpected: " . $categoryData['name'] . "\nActual: " . $title); } if (isset($categoryData['description'])) { $description = $this->categoryViewPage->getViewBlock()->getDescription(); \PHPUnit_Framework_Assert::assertEquals($categoryData['description'], $description, 'Wrong category description.' . "\nExpected: " . $categoryData['description'] . "\nActual: " . $description); } }
/** * Assert that created widget displayed on frontend on Home page and on Advanced Search and * after click on widget link on frontend system redirects you to catalog page. * * @param CmsIndex $cmsIndex * @param CatalogCategoryView $categoryView * @param Widget $widget * @param AdminCache $adminCache * @return void */ public function processAssert(CmsIndex $cmsIndex, CatalogCategoryView $categoryView, Widget $widget, AdminCache $adminCache) { // Flush cache $adminCache->open(); $adminCache->getActionsBlock()->flushMagentoCache(); $adminCache->getMessagesBlock()->waitSuccessMessage(); $cmsIndex->open(); $widgetText = $widget->getParameters()['anchor_text']; \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type catalog category link is absent on Home page.'); $cmsIndex->getWidgetView()->clickToWidget($widget, $widgetText); $title = $categoryView->getTitleBlock()->getTitle(); \PHPUnit_Framework_Assert::assertEquals($widget->getParameters()['entities'][0]->getName(), $title, 'Wrong category title.'); $cmsIndex->getFooterBlock()->openAdvancedSearch(); \PHPUnit_Framework_Assert::assertTrue($cmsIndex->getWidgetView()->isWidgetVisible($widget, $widgetText), 'Widget with type catalog category link is absent on Advanced Search page.'); }
/** * Verify category general information: * # Include in menu * # Name * * @param array $categoryData * @return array */ protected function verifyGeneralInformation(array $categoryData) { $errorMessage = []; if (isset($categoryData['include_in_menu']) && $categoryData['include_in_menu'] == 'Yes') { if (!$this->categoryViewPage->getTopmenu()->isCategoryVisible($categoryData['name'])) { $errorMessage[] = 'Category is not visible in the navigation pane.'; } } if (isset($categoryData['include_in_menu']) && $categoryData['include_in_menu'] == 'No') { if ($this->categoryViewPage->getTopmenu()->isCategoryVisible($categoryData['name'])) { $errorMessage[] = 'Category is visible in the navigation pane.'; } } if (isset($categoryData['name'])) { $title = $this->categoryViewPage->getTitleBlock()->getTitle(); if ($categoryData['name'] != $title) { $errorMessage[] = 'Wrong category name.' . "\nExpected: " . $categoryData['name'] . "\nActual: " . $title; } } return $errorMessage; }
/** * Assert that not displayed category in frontend main menu * * @param Browser $browser * @param CatalogCategoryView $categoryView * @param CatalogCategory $category * @return void */ public function processAssert(Browser $browser, CatalogCategoryView $categoryView, CatalogCategory $category) { $browser->open($_ENV['app_frontend_url'] . $category->getUrlKey() . '.html'); \PHPUnit_Framework_Assert::assertEquals(self::NOT_FOUND_MESSAGE, $categoryView->getTitleBlock()->getTitle(), 'Wrong page is displayed.'); }
/** * Assert that the category cannot be accessed using the direct URL and from the navigation bar in the frontend * * @param Category $category * @param CatalogCategoryView $categoryView * @param BrowserInterface $browser * @return void */ public function processAssert(Category $category, CatalogCategoryView $categoryView, BrowserInterface $browser) { $browser->open($this->getCategoryUrl($category)); \PHPUnit_Framework_Assert::assertFalse($categoryView->getTopmenu()->isCategoryVisible($category->getName()), 'Category can be accessed from the navigation bar in the frontend.'); \PHPUnit_Framework_Assert::assertEquals(self::NOT_FOUND_MESSAGE, $categoryView->getTitleBlock()->getTitle(), 'Wrong page is displayed.'); }