/** * Test create grouped product * * @param GroupedProduct $product * @param Category $category * @return void */ public function test(GroupedProduct $product, Category $category) { //Steps $this->catalogProductIndex->open(); $this->catalogProductIndex->getGridPageActionBlock()->addProduct('grouped'); $this->catalogProductNew->getProductForm()->fill($product, null, $category); $this->catalogProductNew->getFormPageActions()->save(); }
/** * Test create catalog Configurable product run * * @param ConfigurableProduct $product * @return void */ public function test(ConfigurableProduct $product) { // Steps $this->productIndex->open(); $this->productIndex->getGridPageActionBlock()->addProduct('configurable'); $this->productNew->getProductForm()->fill($product); $this->productNew->getFormPageActions()->save($product); }
/** * Run create product virtual entity test * * @param CatalogProductVirtual $product * @param Category $category * @return void */ public function testCreate(CatalogProductVirtual $product, Category $category) { // Steps $this->productGrid->open(); $this->productGrid->getGridPageActionBlock()->addProduct('virtual'); $this->newProductPage->getProductForm()->fill($product, null, $category); $this->newProductPage->getFormPageActions()->save(); }
/** * Test create bundle product * * @param BundleProduct $product * @param Category $category * @return void */ public function test(BundleProduct $product, Category $category) { $this->catalogProductIndex->open(); $this->catalogProductIndex->getGridPageActionBlock()->addProduct('bundle'); $productBlockForm = $this->catalogProductNew->getProductForm(); $productBlockForm->fill($product, null, $category); $this->catalogProductNew->getFormPageActions()->save(); }
/** * Test create catalog Configurable product run * * @param ConfigurableProduct $product * @return void */ public function test(ConfigurableProduct $product) { $this->markTestIncomplete('MAGETWO-40002'); // Steps $this->productIndex->open(); $this->productIndex->getGridPageActionBlock()->addProduct('configurable'); $this->productNew->getProductForm()->fill($product); $this->productNew->getFormPageActions()->save($product); }
/** * 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(); }
/** * Run product type switching on creation test * * @param string $createProduct * @param string $product * @return array */ public function test($createProduct, $product) { // Steps $this->catalogProductIndex->open(); $this->catalogProductIndex->getGridPageActionBlock()->addProduct($createProduct); list($fixture, $dataSet) = explode('::', $product); $product = $this->fixtureFactory->createByCode($fixture, ['dataSet' => $dataSet]); $this->catalogProductNew->getProductForm()->fill($product); $this->catalogProductNew->getFormPageActions()->save($product); return ['product' => $product]; }
/** * 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]; }
/** * 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]; }
/** * 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]; }
/** * 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]; }
/** * 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 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.'); }
/** * 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(); }
/** * 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]; }
/** * 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 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'); }
/** * 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 deleted attribute can't be added to attribute set on Product Page via Add Attribute control. * * @param CatalogProductAttribute $productAttribute * @param CatalogProductIndex $productGrid * @param CatalogProductNew $newProductPage * @return void */ public function processAssert(CatalogProductAttribute $productAttribute, CatalogProductIndex $productGrid, CatalogProductNew $newProductPage) { $productGrid->open(); $productGrid->getGridPageActionBlock()->addProduct('simple'); $newProductPage->getFormPageActions()->addNewAttribute(); $filter = ['label' => $productAttribute->getFrontendLabel()]; \PHPUnit_Framework_Assert::assertFalse($newProductPage->getProductForm()->getAttributesSearchGrid()->isRowVisible($filter), 'Attribute \'' . $productAttribute->getFrontendLabel() . '\' is found in Attributes grid.'); }
/** * 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.'); }
/** * Test create downloadable product * * @param CatalogProductDownloadable $product * @param CatalogCategory $category */ public function testCreateDownloadableProduct(CatalogProductDownloadable $product, CatalogCategory $category) { $this->catalogProductIndex->open(); $this->catalogProductIndex->getProductBlock()->addProduct('downloadable'); $productBlockForm = $this->catalogProductNew->getForm(); $productBlockForm->fillProduct($product, $category); $this->catalogProductNew->getFormAction()->save(); }
/** * 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(); }
/** * Test create downloadable product * * @param DownloadableProductInjectable $product * @param CatalogCategory $category * @return void */ public function testCreateDownloadableProduct(DownloadableProductInjectable $product, CatalogCategory $category) { $this->catalogProductIndex->open(); $this->catalogProductIndex->getGridPageActionBlock()->addProduct('downloadable'); $productBlockForm = $this->catalogProductNew->getProductForm(); $productBlockForm->fill($product, null, $category); $this->catalogProductNew->getFormPageActions()->save(); }
/** * 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(); }
/** * 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."); } }
/** * Create and save product * * @param FixtureInterface $product * @return void */ protected function createAndSaveProduct(FixtureInterface $product) { $dataConfig = $product->getDataConfig(); $typeId = isset($dataConfig['type_id']) ? $dataConfig['type_id'] : null; $this->catalogProductIndex->open(); $this->catalogProductIndex->getGridPageActionBlock()->addProduct($typeId); $this->catalogProductNew->getProductForm()->fill($product); $this->catalogProductNew->getFormPageActions()->save($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); }
/** * Assert that customer group not on product page. * * @param CatalogProductIndex $catalogProductIndex * @param CatalogProductNew $catalogProductNew * @param CustomerGroup $customerGroup * @return void */ public function processAssert(CatalogProductIndex $catalogProductIndex, CatalogProductNew $catalogProductNew, CustomerGroup $customerGroup) { $catalogProductIndex->open(); $catalogProductIndex->getGridPageActionBlock()->addProduct(); $catalogProductNew->getProductForm()->openSection('advanced-pricing'); /** @var AdvancedPricing $advancedPricingTab */ $advancedPricingTab = $catalogProductNew->getProductForm()->getSection('advanced-pricing'); \PHPUnit_Framework_Assert::assertFalse($advancedPricingTab->getTierPriceForm()->isVisibleCustomerGroup($customerGroup), "Customer group {$customerGroup->getCustomerGroupCode()} is still in tier price form on product page."); }
/** * 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(); }
/** * Run create product virtual entity test * * @param CatalogProductVirtual $product * @param CatalogCategory $category * @return void */ public function testCreate(CatalogProductVirtual $product, CatalogCategory $category) { // Steps $this->productGrid->open(); $this->productGrid->getProductBlock()->addProduct('virtual'); $productBlockForm = $this->newProductPage->getForm(); $productBlockForm->fillProduct($product, $category); $this->newProductPage->getFormAction()->save(); }