コード例 #1
0
 /**
  * Assert that product is present in products grid and can be found by sku, type, status and attribute set.
  *
  * @param FixtureInterface $product
  * @param CatalogProductIndex $productIndex
  * @return void
  */
 public function processAssert(FixtureInterface $product, CatalogProductIndex $productIndex)
 {
     $this->product = $product;
     $productIndex->open();
     $productIndex->getProductGrid()->resetFilter();
     \PHPUnit_Framework_Assert::assertTrue($productIndex->getProductGrid()->isRowVisible($this->prepareFilter()), 'Product \'' . $this->product->getName() . '\' is absent in Products grid.');
 }
コード例 #2
0
 /**
  * Assert that video is not displayed in admin panel.
  *
  * @param CatalogProductIndex $productGrid
  * @param InjectableFixture $product
  * @return void
  */
 public function processAssert(CatalogProductIndex $productGrid, InjectableFixture $product)
 {
     $filter = ['sku' => $product->getSku()];
     $productGrid->open();
     $productGrid->getProductGrid()->search($filter);
     $src = $productGrid->getProductGrid()->getBaseImageSource();
     \PHPUnit_Framework_Assert::assertTrue(strpos($src, '/placeholder/') !== false, 'Product image is displayed in product grid when it should not');
 }
コード例 #3
0
 /**
  * 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();
 }
コード例 #4
0
 /**
  * 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];
 }
コード例 #5
0
 /**
  * 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];
 }
コード例 #6
0
 /**
  * Run delete product test.
  *
  * @param string $products
  * @param FixtureFactory $fixtureFactory
  * @param Category $category
  * @return array
  */
 public function test($products, FixtureFactory $fixtureFactory, Category $category)
 {
     //Steps
     $products = explode(',', $products);
     $deleteProducts = [];
     foreach ($products as &$product) {
         list($fixture, $dataset) = explode('::', $product);
         $product = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset, 'data' => ['category_ids' => ['category' => $category]]]);
         $product->persist();
         $deleteProducts[] = ['sku' => $product->getSku()];
     }
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getProductGrid()->massaction($deleteProducts, 'Delete', true);
     return ['product' => $products];
 }
コード例 #7
0
 /**
  * Run mass update product simple entity test.
  *
  * @param CatalogProductSimple $initialProduct
  * @param CatalogProductSimple $product
  * @param string $configData
  * @return array
  */
 public function test(CatalogProductSimple $initialProduct, CatalogProductSimple $product, $configData)
 {
     $this->configData = $configData;
     // Preconditions
     $initialProduct->persist();
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $configData])->run();
     // Steps
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->updateAttributes([['sku' => $initialProduct->getSku()]]);
     $this->attributeMassActionPage->getAttributesBlockForm()->fill($product);
     $this->attributeMassActionPage->getFormPageActions()->save();
     $data = array_merge($initialProduct->getData(), $product->getData());
     $product = $this->objectManager->create('Magento\\Catalog\\Test\\Fixture\\CatalogProductSimple', ['data' => $data]);
     return ['category' => $initialProduct->getDataFieldConfig('category_ids')['source']->getCategories()[0], 'product' => $product];
 }
コード例 #8
0
 /**
  * Run update product simple entity test.
  *
  * @param CatalogProductSimple $initialProduct
  * @param CatalogProductSimple $product
  * @param string $configData
  * @return array
  */
 public function test(CatalogProductSimple $initialProduct, CatalogProductSimple $product, $configData = '')
 {
     $this->configData = $configData;
     // 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;
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $configData])->run();
     // 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];
 }
コード例 #9
0
 /**
  * Assert that duplicated product is found by sku and has correct product type, product template,
  * product status disabled and out of stock
  *
  * @param FixtureInterface $product
  * @param CatalogProductIndex $productGrid
  * @return void
  */
 public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid)
 {
     $config = $product->getDataConfig();
     $filter = ['name' => $product->getName(), 'visibility' => $product->getVisibility(), 'status' => 'Disabled', 'sku' => $product->getSku() . '-1', 'type' => ucfirst($config['create_url_params']['type']) . ' Product', 'price_to' => number_format($product->getPrice(), 2)];
     $productGrid->open()->getProductGrid()->search($filter);
     $filter['price_to'] = '$' . $filter['price_to'];
     \PHPUnit_Framework_Assert::assertTrue($productGrid->getProductGrid()->isRowVisible($filter, false), 'Product duplicate is absent in Products grid.');
 }
コード例 #10
0
 /**
  * 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();
 }
コード例 #11
0
 /**
  * Test update bundle product
  *
  * @param CatalogProductBundle $product
  * @param CatalogProductBundle $originalProduct
  * @return void
  */
 public function test(CatalogProductBundle $product, CatalogProductBundle $originalProduct)
 {
     $originalProduct->persist();
     $this->catalogProductIndex->open();
     $filter = ['sku' => $originalProduct->getSku()];
     $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter);
     $this->catalogProductEdit->getForm()->fill($product);
     $this->catalogProductEdit->getFormAction()->save();
 }
コード例 #12
0
 /**
  * Assert that product cannot be found by name and sku
  *
  * @param FixtureInterface|FixtureInterface[] $product
  * @param CatalogProductIndex $productGrid
  * @return void
  */
 public function processAssert($product, CatalogProductIndex $productGrid)
 {
     $products = is_array($product) ? $product : [$product];
     foreach ($products as $product) {
         $filter = ['sku' => $product->getSku(), 'name' => $product->getName()];
         $productGrid->open();
         \PHPUnit_Framework_Assert::assertFalse($productGrid->getProductGrid()->isRowVisible($filter), "Product with sku \"{$filter['sku']}\" and name \"{$filter['name']}\" is attend in Products grid.");
     }
 }
コード例 #13
0
 /**
  * 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.');
 }
コード例 #14
0
ファイル: AssertProductForm.php プロジェクト: aiesh/magento2
 /**
  * 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);
     $fixtureData = $this->prepareFixtureData($product->getData(), $product, $this->sortFields);
     $formData = $this->prepareFormData($productPage->getForm()->getData($product), $this->sortFields);
     $error = $this->verifyData($fixtureData, $formData);
     \PHPUnit_Framework_Assert::assertTrue(empty($error), $error);
 }
 /**
  * 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.");
 }
コード例 #16
0
 /**
  * Run test duplicate product entity.
  *
  * @param string $productType
  * @return array
  */
 public function test($productType)
 {
     // Precondition
     $product = $this->createProduct($productType);
     // Steps
     $filter = ['sku' => $product->getSku()];
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->searchAndOpen($filter);
     $this->editProductPage->getFormPageActions()->saveAndDuplicate();
     return ['product' => $product];
 }
コード例 #17
0
 /**
  * Assert that child products generated during configurable product are present in products grid
  *
  * @param CatalogProductIndex $productGrid
  * @param ConfigurableProduct $product
  * @return void
  */
 public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product)
 {
     $configurableAttributesData = $product->getConfigurableAttributesData();
     $errors = [];
     $productGrid->open();
     foreach ($configurableAttributesData['matrix'] as $variation) {
         $filter = ['name' => $variation['name'], 'type' => isset($variation['weight']) && (int) $variation['weight'] > 0 ? 'Simple Product' : 'Virtual Product', 'sku' => $variation['sku'], 'visibility' => self::NOT_VISIBLE_INDIVIDUALLY];
         if (!$productGrid->getProductGrid()->isRowVisible($filter)) {
             $errors[] = sprintf('Child product with name: "%s" and sku:"%s" is absent in grid.', $filter['name'], $filter['sku']);
         }
     }
     \PHPUnit_Framework_Assert::assertEmpty($errors, implode(' ', $errors));
 }
コード例 #18
0
 /**
  * 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));
 }
コード例 #19
0
 /**
  * Update product.
  *
  * @param ConfigurableProduct $product
  * @return void
  */
 protected function updateProduct(ConfigurableProduct $product)
 {
     //open product
     $filter = ['sku' => $this->initialProduct->getSku()];
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->searchAndOpen($filter);
     //update
     $productForm = $this->catalogProductEdit->getProductForm();
     $productForm->openSection('variations');
     /** @var Config $variationsSection */
     $variationsSection = $productForm->getSection('variations');
     $variationsSection->deleteVariations();
     $this->catalogProductEdit->getProductForm()->fill($product);
 }
コード例 #20
0
 /**
  * Viewed product report list
  *
  * @param string $products
  * @param array $viewsReport
  * @param string $total
  * @return array
  */
 public function test($products, array $viewsReport, $total)
 {
     // Preconditions
     $this->catalogProductIndexPage->open();
     $this->catalogProductIndexPage->getProductGrid()->massaction([], 'Delete', true, 'Select All');
     $productsList = $this->prepareProducts($products);
     $this->openProducts($productsList, $total);
     $this->productReportView->open();
     $this->productReportView->getMessagesBlock()->clickLinkInMessage('notice', 'here');
     // Steps
     $this->productReportView->getFilterBlock()->viewsReport($viewsReport);
     $this->productReportView->getActionsBlock()->showReport();
     return ['productsList' => $productsList];
 }
コード例 #21
0
 /**
  * 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 review on product page
  *
  * @param Review $review
  * @param int $rating
  * @return array
  */
 public function test(Review $review, $rating)
 {
     // Steps
     $review = $this->createReview($review, $rating);
     $this->catalogProductIndex->open();
     /** @var CatalogProductSimple $product */
     $product = $this->reviewInitial->getDataFieldConfig('entity_id')['source']->getEntity();
     $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
     $this->catalogProductEdit->getProductForm()->openTab('product_reviews');
     $filter = ['title' => $this->reviewInitial->getTitle(), 'sku' => $product->getSku()];
     $this->catalogProductEdit->getProductForm()->getTabElement('product_reviews')->getReviewsGrid()->searchAndOpen($filter);
     $this->reviewEdit->getReviewForm()->fill($review);
     $this->reviewEdit->getPageActions()->save();
     $productRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0];
     return ['product' => $product, 'productRating' => $productRating];
 }
コード例 #23
0
 /**
  * Run product type switching on updating test.
  *
  * @param string $productOrigin
  * @param string $product
  * @param string $actionName
  * @return array
  */
 public function test($productOrigin, $product, $actionName)
 {
     // Preconditions
     list($fixtureClass, $dataset) = explode('::', $productOrigin);
     $productOrigin = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataset' => trim($dataset)]);
     $productOrigin->persist();
     list($fixtureClass, $dataset) = explode('::', $product);
     $product = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataset' => trim($dataset)]);
     // Steps
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $productOrigin->getSku()]);
     $this->performAction($actionName);
     $this->catalogProductEdit->getProductForm()->fill($product);
     $this->catalogProductEdit->getFormPageActions()->save($product);
     return ['product' => $product];
 }
 /**
  * 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.");
 }
 /**
  * Assign promoted products.
  *
  * @param string $promotedProducts
  * @param string $type
  * @return void
  */
 protected function assignPromotedProducts($promotedProducts, $type)
 {
     $promotedProducts = $this->parsePromotedProducts($promotedProducts);
     foreach ($promotedProducts as $productName => $assignedNames) {
         $initialProduct = $this->products[$productName];
         $filter = ['sku' => $initialProduct->getSku()];
         $assignedProducts = [];
         foreach ($assignedNames as $assignedName) {
             $assignedProducts[] = $this->products[$assignedName];
         }
         $product = $this->fixtureFactory->create(get_class($initialProduct), ['data' => [$type => ['products' => $assignedProducts]]]);
         $this->catalogProductIndex->open();
         $this->catalogProductIndex->getProductGrid()->searchAndOpen($filter);
         $this->catalogProductEdit->getProductForm()->fill($product);
         $this->catalogProductEdit->getFormPageActions()->save();
         $this->catalogProductEdit->getMessagesBlock()->waitSuccessMessage();
     }
 }
コード例 #26
0
 /**
  * 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.");
 }
 /**
  * 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';
     if (isset($compareData['quantity_and_stock_status']['qty'])) {
         $compareData['quantity_and_stock_status']['qty'] = '';
         $compareData['quantity_and_stock_status']['is_in_stock'] = 'Out of Stock';
     }
     $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);
 }
コード例 #28
0
 /**
  * Open products on backend.
  *
  * @return void
  */
 public function run()
 {
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $this->product->getSku()]);
 }
コード例 #29
0
 /**
  * Asserts that SKU successfully generated
  *
  * @param FixtureInterface $product
  * @param CatalogProductIndex $productGrid
  * @return void
  */
 public function processAssert(FixtureInterface $product, CatalogProductIndex $productGrid)
 {
     $filter = ['sku' => $product->getName()];
     $productGrid->open();
     \PHPUnit_Framework_Assert::assertTrue($productGrid->getProductGrid()->isRowVisible($filter), 'SKU is not automatically generated for a product.');
 }
コード例 #30
0
 /**
  * Assert product availability in products grid
  *
  * @param CatalogProductConfigurable $configurable
  * @param CatalogProductIndex $productPageGrid
  * @return void
  */
 public function processAssert(CatalogProductConfigurable $configurable, CatalogProductIndex $productPageGrid)
 {
     $filter = ['sku' => $configurable->getSku()];
     $productPageGrid->open();
     \PHPUnit_Framework_Assert::assertTrue($productPageGrid->getProductGrid()->isRowVisible($filter), 'Product with sku \'' . $configurable->getSku() . '\' is absent in Products grid.');
 }