/** * Assert that deleted attribute can't be added to product template on Product Page via Add Attribute control * * @param CatalogProductAttribute $productAttribute * @param CatalogProductIndex $productGrid * @param CatalogProductNew $newProductPage * @param CatalogProductEdit $productEdit * @return void */ public function processAssert(CatalogProductAttribute $productAttribute, CatalogProductIndex $productGrid, CatalogProductEdit $productEdit, CatalogProductNew $newProductPage) { $productGrid->open(); $productGrid->getGridPageActionBlock()->addProduct('simple'); $productEdit->getForm()->openVariationsTab(); \PHPUnit_Framework_Assert::assertFalse($newProductPage->getForm()->checkAttributeInVariationsSearchAttributeForm($productAttribute), "Product attribute found in Attribute Search form."); }
/** * Assert that video data received from external service is correct. * * @param CatalogProductEdit $editProductPage * @param InjectableFixture $initialProduct * @param array $video * @return void */ public function processAssert(CatalogProductEdit $editProductPage, InjectableFixture $initialProduct, array $video) { $editProductPage->open(['id' => $initialProduct->getId()]); $editProductPage->getProductForm()->openTab('images-and-videos'); $imagesTab = $editProductPage->getProductForm()->getTab('images-and-videos'); $result = $imagesTab->clickFirstVideo()->getVideoDialog()->validate($video); \PHPUnit_Framework_Assert::assertTrue($result, 'Video data received from external service is not correct.'); }
/** * Assert form data equals fixture data * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $filter = ['sku' => $product->getData('sku')]; $productGrid->open()->getProductGrid()->searchAndOpen($filter); $fields = $this->convertDownloadableArray($this->prepareFixtureData($product)); $fieldsForm = $productPage->getForm()->getData($product); \PHPUnit_Framework_Assert::assertEquals($fields, $fieldsForm, 'Form data not equals fixture data.'); }
/** * Assert that video data received from external service is correct. * * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $editProductPage * @param InjectableFixture $product * @param array $video * @return void */ public function processAssert(CatalogProductIndex $productGrid, CatalogProductEdit $editProductPage, InjectableFixture $product, array $video) { $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $editProductPage->getProductForm()->openSection('images-and-videos'); $imagesTab = $editProductPage->getProductForm()->getSection('images-and-videos'); $result = $imagesTab->clickFirstVideo()->getVideoDialog()->validate($video); \PHPUnit_Framework_Assert::assertTrue($result, 'Video data received from external service is not correct.'); }
/** * Assert form data equals fixture data * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $filter = ['sku' => $product->getSku()]; $productGrid->open()->getProductGrid()->searchAndOpen($filter); $formData = $productPage->getForm()->getData($product); $fixtureData = $this->prepareFixtureData($product); $errors = $this->compareArray($fixtureData, $formData); \PHPUnit_Framework_Assert::assertTrue(empty($errors), "These data must be equal to each other:\n" . implode("\n", $errors)); }
/** * Set Default Attribute Value. * * @return void */ public function run() { $customAttribute = $this->attribute; if ($this->attributeValue !== null) { $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute]; } $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['data' => ['custom_attribute' => $customAttribute]]); $this->catalogProductEdit->getProductForm()->fill($product); }
/** * Assert form data equals fixture data. * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $filter = ['sku' => $product->getSku() . '-1']; $productGrid->open()->getProductGrid()->searchAndOpen($filter); $formData = $productPage->getProductForm()->getData($product); $fixtureData = $this->prepareFixtureData($product->getData()); $errors = $this->verifyData($fixtureData, $formData); \PHPUnit_Framework_Assert::assertEmpty($errors, $errors); }
/** * Check whether the attribute is mandatory. * * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductEdit $catalogProductEdit * @param CatalogProductAttribute $attribute * @param InjectableFixture $product * @return void */ public function processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, InjectableFixture $product) { $catalogProductIndex->open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $productForm = $catalogProductEdit->getProductForm(); $productForm->getAttributeElement($attribute)->setValue(''); $catalogProductEdit->getFormPageActions()->save(); $failedAttributes = $productForm->getRequireNoticeAttributes($product); $actualMessage = $failedAttributes['product-details'][$attribute->getFrontendLabel()]; \PHPUnit_Framework_Assert::assertEquals(self::REQUIRE_MESSAGE, $actualMessage, 'JS error notice on product edit page is not equal to expected.'); }
/** * Assert form data equals fixture data * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $filter = ['sku' => $product->getSku()]; $productGrid->open()->getProductGrid()->searchAndOpen($filter); $fieldsForm = $productPage->getProductForm()->getData($product); $fieldsFixture = $this->prepareFixtureData($product->getData()); $fieldsFixture['associated'] = $this->prepareGroupedOptions($fieldsFixture['associated']); $errors = $this->verifyData($fieldsFixture, $fieldsForm); \PHPUnit_Framework_Assert::assertEmpty($errors, $errors); }
/** * Test update grouped product. * * @param GroupedProduct $product * @param GroupedProduct $originalProduct * @return void */ public function test(GroupedProduct $product, GroupedProduct $originalProduct) { // Precondition $originalProduct->persist(); // Steps $this->catalogProductIndex->open(); $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $originalProduct->getSku()]); $this->catalogProductEdit->getProductForm()->fill($product); $this->catalogProductEdit->getFormPageActions()->save(); }
/** * Check whether the attribute is unique. * * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductEdit $catalogProductEdit * @param CatalogProductAttribute $attribute * @param CatalogProductSimple $product, * @param FixtureFactory $fixtureFactory * @throws \Exception * @return void */ public function processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, CatalogProductSimple $product, FixtureFactory $fixtureFactory) { $simpleProduct = $fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'product_with_category_with_anchor', 'data' => ['attribute_set_id' => ['attribute_set' => $product->getDataFieldConfig('attribute_set_id')['source']->getAttributeSet()], 'custom_attribute' => $attribute]]); $catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple'); $productForm = $catalogProductEdit->getProductForm(); $productForm->fill($simpleProduct); $catalogProductEdit->getFormPageActions()->save(); $failedAttributes = $productForm->getRequireNoticeAttributes($simpleProduct); $actualMessage = isset($failedAttributes['product-details'][$attribute->getFrontendLabel()]) ? $failedAttributes['product-details'][$attribute->getFrontendLabel()] : null; \PHPUnit_Framework_Assert::assertEquals(sprintf(self::UNIQUE_MESSAGE, $attribute->getFrontendLabel()), $actualMessage, 'JS error notice on product edit page is not equal to expected.'); }
/** * Add this attribute to Default attribute Template. Create product and Assert that created attribute * is displayed on product form (Products > Inventory > Catalog). * * @param InjectableFixture $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productEdit * @param CatalogProductAttribute $attribute * @param CatalogAttributeSet $attributeSet * @param CatalogProductAttribute $productAttributeOriginal * @throws \Exception * @return void */ public function processAssert(InjectableFixture $product, CatalogProductIndex $productGrid, CatalogProductEdit $productEdit, CatalogProductAttribute $attribute, CatalogAttributeSet $attributeSet, CatalogProductAttribute $productAttributeOriginal = null) { if (!$product->hasData('sku')) { $product = $this->createProductWithAttributeSet($productAttributeOriginal, $attributeSet); } $filterProduct = ['sku' => $product->getSku()]; $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen($filterProduct); $catalogProductAttribute = $productAttributeOriginal !== null ? array_merge($productAttributeOriginal->getData(), $attribute->getData()) : $attribute->getData(); \PHPUnit_Framework_Assert::assertTrue($productEdit->getProductForm()->checkAttributeLabel($catalogProductAttribute), "Product Attribute is absent on Product form."); }
/** * Assert that created product template: * 1. Displays in product template suggest container dropdown * 2. Can be used for new created product. * * @param FixtureFactory $fixtureFactory * @param CatalogProductEdit $productEdit * @param CatalogProductIndex $productGrid * @param CatalogAttributeSet $attributeSet * @param CatalogProductNew $newProductPage * @param CatalogProductAttribute $productAttributeOriginal * @return void */ public function processAssert(FixtureFactory $fixtureFactory, CatalogProductEdit $productEdit, CatalogProductIndex $productGrid, CatalogAttributeSet $attributeSet, CatalogProductNew $newProductPage, CatalogProductAttribute $productAttributeOriginal) { $productGrid->open(); $productGrid->getGridPageActionBlock()->addProduct('simple'); $productBlockForm = $newProductPage->getProductForm(); /**@var CatalogProductSimple $catalogProductSimple */ $productSimple = $fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'default', 'data' => ['attribute_set_id' => ['attribute_set' => $attributeSet]]]); $productBlockForm->fill($productSimple); \PHPUnit_Framework_Assert::assertTrue($productEdit->getProductForm()->isCustomTabVisible($attributeSet->getGroup()), "Product Group is absent on Product form tabs."); $productEdit->getProductForm()->openCustomTab($attributeSet->getGroup()); \PHPUnit_Framework_Assert::assertTrue($productEdit->getProductForm()->checkAttributeLabel($productAttributeOriginal), "Product Attribute is absent on Product form."); }
/** * Check whether the attribute is unique. * * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductEdit $catalogProductEdit * @param CatalogProductAttribute $attribute * @param CatalogProductSimple $product , * @param FixtureFactory $fixtureFactory * @throws \Exception * @return void */ public function processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, CatalogProductSimple $product, FixtureFactory $fixtureFactory) { $this->fixtureFactory = $fixtureFactory; $simpleProduct = $this->createSimpleProductFixture($product, $attribute); $catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple'); $productForm = $catalogProductEdit->getProductForm(); $productForm->fill($simpleProduct); $catalogProductEdit->getFormPageActions()->save(); $actualErrorMessage = $catalogProductEdit->getMessagesBlock()->getErrorMessage(); $attributeLabel = $attribute->getFrontendLabel(); \PHPUnit_Framework_Assert::assertEquals(sprintf(self::UNIQUE_MESSAGE, $attributeLabel), $actualErrorMessage, 'JS error notice on product edit page is not equal to expected.'); }
/** * Check whether the attribute is mandatory. * * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductEdit $catalogProductEdit * @param CatalogProductAttribute $attribute * @param InjectableFixture $product * @param string $sectionName * @return void */ public function processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, InjectableFixture $product, $sectionName) { $catalogProductIndex->open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $productForm = $catalogProductEdit->getProductForm(); if (!$productForm->checkAttributeLabel($attribute)) { $productForm->openSection($sectionName); } $productForm->getAttributeElement($attribute)->setValue(''); $catalogProductEdit->getFormPageActions()->save(); $validationErrors = $productForm->getSection($sectionName)->getValidationErrors(); $actualMessage = isset($validationErrors[$attribute->getFrontendLabel()]) ? $validationErrors[$attribute->getFrontendLabel()] : ''; \PHPUnit_Framework_Assert::assertEquals(self::REQUIRE_MESSAGE, $actualMessage, 'JS error notice on product edit page is not equal to expected.'); }
/** * Run update product simple entity test * * @param CatalogProductSimple $initialProduct * @param CatalogProductSimple $product * @return array */ public function test(CatalogProductSimple $initialProduct, CatalogProductSimple $product) { // Preconditions $initialProduct->persist(); $initialCategory = $initialProduct->hasData('category_ids') ? $initialProduct->getDataFieldConfig('category_ids')['source']->getCategories()[0] : null; $category = $product->hasData('category_ids') && $product->getCategoryIds()[0] ? $product->getDataFieldConfig('category_ids')['source']->getCategories()[0] : $initialCategory; // Steps $filter = ['sku' => $initialProduct->getSku()]; $this->productGrid->open(); $this->productGrid->getProductGrid()->searchAndOpen($filter); $this->editProductPage->getProductForm()->fill($product); $this->editProductPage->getFormPageActions()->save(); return ['category' => $category]; }
/** * Test update bundle product * * @param BundleProduct $product * @param BundleProduct $originalProduct * @return array */ public function test(BundleProduct $product, BundleProduct $originalProduct) { // Preconditions $originalProduct->persist(); $originalCategory = $originalProduct->hasData('category_ids') ? $originalProduct->getDataFieldConfig('category_ids')['source']->getCategories() : null; $category = $product->hasData('category_ids') ? $product->getDataFieldConfig('category_ids')['source']->getCategories() : $originalCategory; // Steps $filter = ['sku' => $originalProduct->getSku()]; $this->catalogProductIndex->open(); $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter); $this->catalogProductEdit->getProductForm()->fill($product); $this->catalogProductEdit->getFormPageActions()->save(); return ['category' => $category]; }
/** * Assert form data equals duplicate product configurable data * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $duplicateProductSku = $product->getSku() . '-1'; $filter = ['sku' => $duplicateProductSku]; $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen($filter); $productData = $product->getData(); $productData['sku'] = $duplicateProductSku; $productData['status'] = 'Product offline'; $fixtureData = $this->prepareFixtureData($productData, $this->sortFields); $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields); $error = $this->verifyData($fixtureData, $formData); \PHPUnit_Framework_Assert::assertTrue(empty($error), $error); }
/** * Assert all product attribute options on product creation form. * * @param InjectableFixture $product * @param CatalogProductIndex $productGrid * @param CatalogProductAttribute $attribute * @param CatalogProductEdit $productEdit * @return void */ public function processAssert(InjectableFixture $product, CatalogProductIndex $productGrid, CatalogProductAttribute $attribute, CatalogProductEdit $productEdit) { $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $attributeOptions = $attribute->getOptions(); $options[] = $attribute->getFrontendLabel(); foreach ($attributeOptions as $option) { $options[] = $option['admin']; } $productAttributeOptions = $productEdit->getProductForm()->getAttributeElement($attribute)->getText(); $productOptions = explode("\n", $productAttributeOptions); $diff = array_diff($options, $productOptions); \PHPUnit_Framework_Assert::assertTrue(empty($diff), "Products attribute options are absent on product form: " . implode(', ', $diff)); }
/** * Assert that created product template: * 1. Displays in product template suggest container dropdown * 2. Can be used for new created product. * * @param FixtureFactory $fixtureFactory * @param CatalogProductEdit $productEdit * @param CatalogProductIndex $productGrid * @param CatalogAttributeSet $attributeSet * @param CatalogProductNew $newProductPage * @param CatalogProductAttribute $productAttribute * @return void */ public function processAssert(FixtureFactory $fixtureFactory, CatalogProductEdit $productEdit, CatalogProductIndex $productGrid, CatalogAttributeSet $attributeSet, CatalogProductNew $newProductPage, CatalogProductAttribute $productAttribute) { $productGrid->open(); $productGrid->getProductBlock()->addProduct('simple'); $productBlockForm = $newProductPage->getForm(); /**@var CatalogProductSimple $catalogProductSimple */ $productSimple = $fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'default', 'data' => ['attribute_set_id' => ['attribute_set' => $attributeSet]]]); $productBlockForm->fillProduct($productSimple); $newProductPage->getFormAction()->save(); $formData = $productEdit->getForm()->getData($productSimple); $formAttributeSet = $formData['attribute_set_id']; \PHPUnit_Framework_Assert::assertEquals($attributeSet->getAttributeSetName(), $formAttributeSet, 'Attribute Set not found on Product form.' . "\nExpected: " . $attributeSet->getAttributeSetName() . "\nActual: " . $formAttributeSet); $productEdit->getForm()->openTab('product-details'); \PHPUnit_Framework_Assert::assertTrue($productEdit->getForm()->checkAttributeLabel($productAttribute), "Product Attribute is absent on Product form."); }
/** * Assert form data equals fixture data * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $filter = ['sku' => $product->getSku()]; $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen($filter); $productData = $product->getData(); if ($product->hasData('custom_options')) { $customOptionsSource = $product->getDataFieldConfig('custom_options')['source']; $productData['custom_options'] = $customOptionsSource->getCustomOptions(); } $fixtureData = $this->prepareFixtureData($productData, $this->sortFields); $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields); $error = $this->verifyData($fixtureData, $formData); \PHPUnit_Framework_Assert::assertTrue(empty($error), $error); }
/** * Update product. * * @param ConfigurableProduct $product * @return void */ protected function updateProduct(ConfigurableProduct $product) { $productForm = $this->catalogProductEdit->getProductForm(); $productForm->openTab('variations'); $productForm->getTab('variations')->deleteAttributes(); $this->catalogProductEdit->getProductForm()->fill($product); }
/** * Run update product simple entity test * * @param CatalogProductSimple $product * @return void */ public function testUpdate(CatalogProductSimple $product) { $filter = ['sku' => $this->product->getSku()]; $this->productGrid->open()->getProductGrid()->searchAndOpen($filter); $this->editProductPage->getProductForm()->fill($product); $this->editProductPage->getFormPageActions()->save(); }
/** * Add this attribute to Default attribute Template. Create product and Assert that created attribute * is displayed on product form (Products > Inventory > Catalog) * * @param FixtureFactory $fixtureFactory * @param CatalogProductSetIndex $productSet * @param CatalogProductSetEdit $productSetEdit * @param CatalogAttributeSet $productTemplate * @param CatalogProductIndex $productGrid * @param CatalogProductAttribute $productAttributeOriginal * @param CatalogProductEdit $productEdit * @param CatalogProductAttribute|null $productAttribute * @return void */ public function processAssert(FixtureFactory $fixtureFactory, CatalogProductSetIndex $productSet, CatalogProductSetEdit $productSetEdit, CatalogAttributeSet $productTemplate, CatalogProductIndex $productGrid, CatalogProductEdit $productEdit, CatalogProductAttribute $productAttribute, CatalogProductAttribute $productAttributeOriginal = null) { $filterAttribute = ['set_name' => $productTemplate->getAttributeSetName()]; $productSet->open(); $productSet->getGrid()->searchAndOpen($filterAttribute); $attributeData = $productAttributeOriginal !== null ? array_merge($productAttribute->getData(), $productAttributeOriginal->getData()) : $productAttribute->getData(); $productSetEdit->getAttributeSetEditBlock()->moveAttribute($attributeData, 'Product Details'); $productSetEdit->getPageActions()->save(); $product = $fixtureFactory->createByCode('catalogProductSimple', ['dataSet' => 'product_with_category', 'data' => ['attribute_set_id' => ['attribute_set' => $productTemplate]]]); $product->persist(); $filterProduct = ['sku' => $product->getSku()]; $productGrid->open(); $productGrid->getProductGrid()->searchAndOpen($filterProduct); $catalogProductAttribute = $productAttributeOriginal !== null ? array_merge($productAttributeOriginal->getData(), $productAttribute->getData()) : $productAttribute->getData(); \PHPUnit_Framework_Assert::assertTrue($productEdit->getProductForm()->checkAttributeLabel($catalogProductAttribute), "Product Attribute is absent on Product form."); }
/** * Clear downloadable product data. * * @return void */ protected function clearDownloadableData() { $this->catalogProductEdit->getProductForm()->openSection('downloadable_information'); /** @var Downloadable $downloadableInfoTab */ $downloadableInfoTab = $this->catalogProductEdit->getProductForm()->getSection('downloadable_information'); $downloadableInfoTab->getDownloadableBlock('Links')->clearDownloadableData(); }
/** * Test update downloadable product * * @param CatalogProductDownloadable $product * @param CatalogCategory $category * @return void */ public function testUpdateDownloadableProduct(CatalogProductDownloadable $product, CatalogCategory $category) { $filter = ['sku' => $this->product->getSku()]; $this->catalogProductIndex->open()->getProductGrid()->searchAndOpen($filter); $productBlockForm = $this->catalogProductEdit->getForm(); $productBlockForm->fillProduct($product, $category); $this->catalogProductEdit->getFormAction()->save(); }
/** * Assert that displayed product data on edit page equals passed from fixture * * @param FixtureInterface $product * @param CatalogProductIndex $productGrid * @param CatalogProductEdit $productPage * @return void */ public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid, CatalogProductEdit $productPage) { $productGrid->open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]); $form = $productPage->getForm(); $formData = $form->getData($product); foreach (array_keys($formData['configurable_attributes_data']['matrix']) as $key) { unset($formData['configurable_attributes_data']['matrix'][$key]['price']); } $fixtureData = $this->prepareFixtureData($product->getData(), $product); $attributes = $fixtureData['configurable_attributes_data']['attributes_data']; $matrix = $fixtureData['configurable_attributes_data']['matrix']; unset($fixtureData['configurable_attributes_data'], $fixtureData['id']); $fixtureData['configurable_attributes_data']['attributes_data'] = $this->prepareAttributes($attributes); $fixtureData['configurable_attributes_data']['matrix'] = $this->prepareMatrix($matrix); $errors = $this->verifyData($fixtureData, $formData); \PHPUnit_Framework_Assert::assertEmpty($errors, $errors); }
/** * Run update product virtual entity test * * @param CatalogProductVirtual $product * @return void */ public function test(CatalogProductVirtual $product) { // Steps $this->productGrid->open(); $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $this->product->getSku()]); $this->editProductPage->getProductForm()->fill($product); $this->editProductPage->getFormPageActions()->save(); }
/** * Add this attribute to Default attribute Template. Create product and Assert that created attribute * is displayed on product form (Products > Inventory > Catalog). * * @param InjectableFixture $product * @param FixtureFactory $fixtureFactory * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductEdit $catalogProductEdit * @param CatalogProductAttribute $attribute * @param CatalogAttributeSet $attributeSet * @param CatalogProductAttribute $productAttributeOriginal * @throws \Exception * @return void */ public function processAssert(InjectableFixture $product, FixtureFactory $fixtureFactory, CatalogProductIndex $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, CatalogAttributeSet $attributeSet, CatalogProductAttribute $productAttributeOriginal = null) { $this->fixtureFactory = $fixtureFactory; $this->catalogProductIndex = $catalogProductIndex; $this->catalogProductEdit = $catalogProductEdit; if (!$product->hasData('sku')) { if (!$productAttributeOriginal) { $productAttributeOriginal = $attribute; } $product = $this->objectManager->create('Magento\\Catalog\\Test\\TestStep\\CreateProductWithAttributeSetStep', ['attribute' => $productAttributeOriginal, 'attributeSet' => $attributeSet])->run(); $product = $product['product']; } $filterProduct = ['sku' => $product->getSku()]; $catalogProductIndex->open(); $catalogProductIndex->getProductGrid()->searchAndOpen($filterProduct); $catalogProductAttribute = $productAttributeOriginal !== null ? array_merge($productAttributeOriginal->getData(), $attribute->getData()) : $attribute->getData(); \PHPUnit_Framework_Assert::assertTrue($catalogProductEdit->getProductForm()->checkAttributeLabel($catalogProductAttribute), "Product Attribute is absent on Product form."); }
/** * Test update downloadable product * * @param DownloadableProduct $product * @param Category $category * @return void */ public function test(DownloadableProduct $product, Category $category) { // Steps $filter = ['sku' => $this->product->getSku()]; $this->catalogProductIndex->open()->getProductGrid()->searchAndOpen($filter); $productBlockForm = $this->catalogProductEdit->getProductForm(); $productBlockForm->fill($product, null, $category); $this->catalogProductEdit->getFormPageActions()->save(); }