10 use Magento\CatalogSearch\Test\Page\AdvancedSearch;
11 use Magento\Cms\Test\Page\CmsIndex;
12 use Magento\Mtf\Fixture\FixtureFactory;
13 use Magento\Mtf\Fixture\InjectableFixture;
14 use Magento\Mtf\Constraint\AbstractConstraint;
15 use Magento\CatalogSearch\Test\Page\CatalogsearchResult;
43 AdvancedSearch $searchPage,
44 CatalogsearchResult $catalogSearchResult,
46 $attributeValue =
null 50 $cmsIndex->getFooterBlock()->openAdvancedSearch();
51 $searchForm = $searchPage->getForm();
54 $searchForm->fill($productSearch);
55 $searchForm->submit();
57 $isVisible = $catalogSearchResult->getListProductBlock()->getProductItem(
$product)->isVisible();
58 }
while (!$isVisible && $catalogSearchResult->getBottomToolbar()->nextPage());
60 \PHPUnit\Framework\Assert::assertTrue($isVisible,
'Product attribute is not searchable on Frontend.');
70 protected function prepareFixture(InjectableFixture $productSearch, $attributeValue)
72 $customAttribute = $productSearch->getDataFieldConfig(
'custom_attribute')[
'source']->getAttribute();
73 if ($attributeValue !==
null) {
74 $customAttribute = [
'value' => $attributeValue,
'attribute' => $customAttribute];
76 return $this->fixtureFactory->createByCode(
77 'catalogProductSimple',
78 [
'data' => [
'custom_attribute' => $customAttribute]]
89 return 'Product attribute is searchable on Frontend.';
processAssert(CmsIndex $cmsIndex, InjectableFixture $product, AdvancedSearch $searchPage, CatalogsearchResult $catalogSearchResult, FixtureFactory $fixtureFactory, $attributeValue=null)
prepareFixture(InjectableFixture $productSearch, $attributeValue)