/** * Fill gift message form on order level * * @param GiftMessage $giftMessage * @return void */ public function fillGiftMessageOrder(GiftMessage $giftMessage) { /** @var \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm $giftMessageForm */ if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') { $this->_rootElement->find($this->allowGiftOptions)->click(); $giftMessageForm = $this->blockFactory->create('Magento\\GiftMessage\\Test\\Block\\Cart\\GiftOptions\\GiftMessageForm', ['element' => $this->_rootElement->find($this->giftMessageOrderForm)]); $formData = ['sender' => $giftMessage->getSender(), 'recipient' => $giftMessage->getRecipient(), 'message' => $giftMessage->getMessage()]; $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]); $giftMessageForm->fill($formData); $this->_rootElement->find($this->giftMessageOrderButton)->click(); $this->waitForElementVisible($this->giftMessageSummary); } }
/** * Create new order via curl. * * @return array */ public function run() { /** @var Order $order */ $order = $this->fixtureFactory->createByCode('order', ['dataSet' => $this->orderDataSet]); $order->persist(); return ['order' => $order]; }
/** * @constructor * @param FixtureFactory $fixtureFactory * @param string $data * @param array $params [optional] */ public function __construct(FixtureFactory $fixtureFactory, $data, array $params = []) { $this->params = $params; $explodedData = explode('::', $data); switch (sizeof($explodedData)) { case 1: $this->data = $explodedData[0]; break; case 3: list($fixture, $dataset, $field) = $explodedData; $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); if (!$entity->hasData('id')) { $entity->persist(); } $this->data = $entity->getData($field); $this->entity = $entity; break; case 4: list($fixture, $dataset, $source, $field) = $explodedData; $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]); if (!$entity->hasData('id')) { $entity->persist(); } $source = $source == 'product' ? $entity->getEntityId()['products'][0] : $entity->getData($source); $this->data = $source->getData($field); $this->entity = $entity; break; } }
/** * Fill Sales Data. * * @return array */ public function run() { $this->orderCreateIndex->getCreateBlock()->submitOrder(); $this->salesOrderView->getMessagesBlock()->waitSuccessMessage(); $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#'); $order = $this->fixtureFactory->createByCode('orderInjectable', ['data' => ['id' => $orderId, 'customer_id' => ['customer' => $this->customer], 'entity_id' => ['products' => $this->products], 'billing_address_id' => ['billingAddress' => $this->billingAddress]]]); return ['orderId' => $orderId, 'order' => $order]; }
/** * Prepare VAT ID confguration. * * @param ConfigData $vatConfig * @param string $customerGroup * @return void */ protected function prepareVatConfig(ConfigData $vatConfig, $customerGroup) { $groupConfig = ['customer/create_account/viv_domestic_group' => ['value' => $this->vatGroups['valid_domestic_group']->getCustomerGroupId()], 'customer/create_account/viv_intra_union_group' => ['value' => $this->vatGroups['valid_intra_union_group']->getCustomerGroupId()], 'customer/create_account/viv_invalid_group' => ['value' => $this->vatGroups['invalid_group']->getCustomerGroupId()], 'customer/create_account/viv_error_group' => ['value' => $this->vatGroups['error_group']->getCustomerGroupId()]]; $vatConfig = $this->fixtureFactory->createByCode('configData', ['data' => array_replace_recursive($vatConfig->getSection(), $groupConfig)]); $vatConfig->persist(); $customerData = array_merge($this->customer->getData(), ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupCode()]], ['address' => ['addresses' => $this->customer->getDataFieldConfig('address')['source']->getAddresses()]]); $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]); }
/** * Update CMS Page. * * @param CmsPage $cms * @param CmsPage $cmsOriginal * @return array */ public function test(CmsPage $cms, CmsPage $cmsOriginal) { // Steps $this->cmsPageIndex->open(); $this->cmsPageIndex->getCmsPageGridBlock()->searchAndOpen(['title' => $cmsOriginal->getTitle()]); $this->cmsPageNew->getPageForm()->fill($cms); $this->cmsPageNew->getPageMainActions()->save(); return ['cms' => $this->factory->createByCode('cmsPage', ['data' => array_merge($cmsOriginal->getData(), $cms->getData())])]; }
/** * Create reward exchange rates. * * @return void */ public function run() { if (count($this->rewardRates)) { foreach ($this->rewardRates as $rewardRate) { $exchangeRate = $this->fixtureFactory->createByCode('rewardRate', ['dataSet' => $rewardRate]); $exchangeRate->persist(); } } }
/** * Place order after checking order totals on review step. * * @return array */ public function run() { if (isset($this->prices['grandTotal'])) { $this->assertGrandTotalOrderReview->processAssert($this->checkoutOnepage, $this->prices['grandTotal']); } $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder(); $order = $this->fixtureFactory->createByCode('orderInjectable', ['data' => ['entity_id' => ['products' => $this->products]]]); return ['orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(), 'order' => $order]; }
/** * 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); }
/** * Get product by data * * @param string $productData * @param array $relatedProductsData * @return FixtureInterface */ protected function getProductByData($productData, array $relatedProductsData) { list($fixtureName, $dataSet) = explode('::', $productData); $relatedProductsPresets = []; foreach ($relatedProductsData as $type => $presets) { $relatedProductsPresets[$type]['presets'] = $presets; } return $this->fixtureFactory->createByCode($fixtureName, ['dataSet' => $dataSet, 'data' => $relatedProductsPresets]); }
/** * Create simple product and inject pages. * * @param SystemCurrencySymbolIndex $currencySymbolIndex * @param SystemCurrencyIndex $currencyIndex * @param FixtureFactory $fixtureFactory * @return array */ public function __inject(SystemCurrencySymbolIndex $currencySymbolIndex, SystemCurrencyIndex $currencyIndex, FixtureFactory $fixtureFactory) { $this->currencySymbolIndex = $currencySymbolIndex; $this->currencyIndex = $currencyIndex; $this->fixtureFactory = $fixtureFactory; $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'product_with_category']); $product->persist(); return ['product' => $product]; }
/** * Create sales rule. * * @return array */ public function run() { $result['salesRule'] = null; if ($this->salesRule !== null) { $salesRule = $this->fixtureFactory->createByCode('salesRule', ['dataset' => $this->salesRule]); $salesRule->persist(); $result['salesRule'] = $salesRule; } return $result; }
/** * Prepare data. * * @param FixtureFactory $fixtureFactory * @return array */ public function __prepare(FixtureFactory $fixtureFactory) { /** @var CatalogProductSimple $productSymbols */ $productSymbols = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'abc_dfj_simple_for_advancedsearch']); $productSymbols->persist(); /** @var CatalogProductSimple $productNumbers */ $productNumbers = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'adc_123_simple_for_advancedsearch']); $productNumbers->persist(); return ['productsSearch' => ['simple_1' => $productSymbols, 'simple_2' => $productNumbers]]; }
/** * Create product. * * @return array */ public function run() { list($fixtureClass, $dataSet) = explode('::', $this->product); /** @var FixtureInterface $product */ $product = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataSet' => trim($dataSet), 'data' => $this->data]); if ($product->hasData('id') === false) { $product->persist(); } return ['product' => $product]; }
/** * Create tax rule. * * @return array */ public function run() { $result['taxRule'] = null; if ($this->taxRule != '-') { $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataSet' => $this->taxRule]); $taxRule->persist(); $result['taxRule'] = $taxRule; } return $result; }
/** * Create customer and 2 simple products with categories before run test. * * @param FixtureFactory $fixtureFactory * @return array */ public function __prepare(FixtureFactory $fixtureFactory) { $customer = $fixtureFactory->createByCode('customer', ['dataset' => 'default']); $customer->persist(); $productForSalesRule1 = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'simple_for_salesrule_1']); $productForSalesRule1->persist(); $productForSalesRule2 = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'simple_for_salesrule_2']); $productForSalesRule2->persist(); return ['customer' => $customer, 'productForSalesRule1' => $productForSalesRule1, 'productForSalesRule2' => $productForSalesRule2]; }
/** * Create catalog rule * * @return array */ public function run() { $result['catalogRule'] = null; if (!empty($this->catalogRule) && $this->catalogRule != '-') { $catalogRule = $this->fixtureFactory->createByCode('catalogRule', ['dataSet' => $this->catalogRule]); $catalogRule->persist(); $result['catalogRule'] = $catalogRule; } return $result; }
/** * Creating Cms page. * * @param array $data * @param string $fixtureType * @return array */ public function test(array $data, $fixtureType) { // Steps $cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]); $this->cmsIndex->open(); $this->cmsIndex->getPageActionsBlock()->addNew(); $this->cmsPageNew->getPageForm()->fill($cms); $this->cmsPageNew->getPageMainActions()->save(); return ['cms' => $cms]; }
/** * Prepare configuration settings for test. * * @param FixtureFactory $fixtureFactory * @return array */ public function __prepare(FixtureFactory $fixtureFactory) { $this->fixtureFactory = $fixtureFactory; $config = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->get('Magento\\Mtf\\Config\\GlobalConfig'); $adminCred['username'] = $config->get('application/0/backendLogin/0/value'); $adminCred['password'] = $config->get('application/0/backendPassword/0/value'); $newVersion['Mage_All_Latest'] = $config->get('version/0/value'); $adminFixture = $this->fixtureFactory->createByCode('user', ['data' => $adminCred]); $connectFixture = $this->fixtureFactory->createByCode('connect', ['data' => $newVersion]); return ['adminUser' => $adminFixture, 'connect' => $connectFixture]; }
/** * Apply several sales rules. * * @param array $salesRules * @param CatalogProductSimple $productForSalesRule1 * @param CatalogProductSimple $productForSalesRule2 */ public function testApplySeveralSalesRules(array $salesRules, CatalogProductSimple $productForSalesRule1, CatalogProductSimple $productForSalesRule2) { // Preconditions $productForSalesRule1->persist(); $productForSalesRule2->persist(); // Create sales rules foreach ($salesRules as $key => $dataSet) { $salesRule[$key] = $this->fixtureFactory->createByCode('salesRule', ['dataset' => $dataSet]); $salesRule[$key]->persist(); } }
/** * 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]; }
/** * Create addresses. * * @return array */ public function run() { if ($this->newAddresses === null) { return []; } $newAddressesFixtures = []; $dataSets = explode(',', $this->newAddresses); foreach ($dataSets as $dataSet) { $newAddressesFixtures[] = $this->fixtureFactory->createByCode('address', ['dataSet' => $dataSet]); } return ['newAddresses' => $newAddressesFixtures]; }
/** * Prepare data. * * @param FixtureFactory $fixtureFactory * @return array */ public function __prepare(FixtureFactory $fixtureFactory) { $this->objectManager->create('Mage\\Tax\\Test\\TestStep\\DeleteAllTaxRulesStep')->run(); $this->objectManager->create('Mage\\Core\\Test\\TestStep\\SetupConfigurationStep', ['configData' => 'default_tax_configuration'])->run(); $customer = $fixtureFactory->createByCode('customer', ['dataSet' => 'johndoe_with_addresses']); $customer->persist(); $taxRule = $fixtureFactory->createByCode('taxRule', ['dataSet' => 'tax_rule_default']); $taxRule->persist(); $productTemplate = $fixtureFactory->createByCode('catalogAttributeSet', ['dataSet' => 'custom_attribute_set_with_fpt']); $productTemplate->persist(); return ['customer' => $customer, 'data' => ['attribute_set_id' => ['attribute_set' => $productTemplate]]]; }
/** * Creating Cms page. * * @param array $data * @param string $fixtureType * @return array */ public function test(array $data, $fixtureType) { // Steps $cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]); $this->cmsIndex->open(); $this->cmsIndex->getPageActionsBlock()->addNew(); //TODO: remove cms page new refresh after resolve issue with static js files publication (MAGETWO-37898) $this->cmsPageNew->open(); $this->cmsPageNew->getPageForm()->fill($cms); $this->cmsPageNew->getPageMainActions()->save(); return ['cms' => $cms]; }
/** * Apply currency in config step. * * @return void */ public function run() { if ($this->currencySymbols !== '-') { $symbols = explode(',', $this->currencySymbols); foreach ($symbols as &$symbol) { $symbol = strtoupper(trim($symbol)); } $this->data['currency/options/allow']['value'] = $symbols; $config = $this->fixtureFactory->createByCode('configData', ['data' => $this->data]); $config->persist(); } }
/** * Create tax rule. * * @return array */ public function run() { $result['taxRule'] = null; if ($this->taxRule !== null) { $taxRuleDataSets = explode(',', $this->taxRule); foreach ($taxRuleDataSets as $taxRuleDataSet) { $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataset' => $taxRuleDataSet]); $taxRule->persist(); $result['taxRule'] = $taxRule; } } return $result; }
/** * Create a new product with the given attribute set * * @return array */ public function run() { // Create product with attribute set mentioned above: $customAttribute = $this->attribute; if ($this->attributeValue !== null) { $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute]; } $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'product_with_category_with_anchor', 'data' => ['attribute_set_id' => ['attribute_set' => $this->attributeSet], 'custom_attribute' => $customAttribute]]); $this->catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple'); $productForm = $this->catalogProductEdit->getProductForm(); $productForm->fill($product); $this->catalogProductEdit->getFormPageActions()->save(); return ['product' => $product]; }
/** * Create products. * * @return InjectableFixture[] */ public function run() { $products = []; $productsDataSets = explode(',', $this->products); foreach ($productsDataSets as $key => $productDataSet) { list($fixtureClass, $dataSet) = $this->resolveProductFixture($productDataSet); $data = isset($this->data[$key]) ? $this->data[$key] : []; /** @var InjectableFixture[] $products */ $products[$key] = $this->fixtureFactory->createByCode($fixtureClass, ['dataSet' => $dataSet, 'data' => $data]); if ($products[$key]->hasData('id') === false) { $products[$key]->persist(); } } return ['products' => $products]; }
/** * Prepare new product for update. * * @param ConfigurableProduct $initialProduct * @param ConfigurableProduct $product * @param string $attributeTypeAction * @return ConfigurableProduct */ protected function prepareProduct(ConfigurableProduct $initialProduct, ConfigurableProduct $product, $attributeTypeAction) { if ($attributeTypeAction == 'deleteAll') { $this->deletedAttributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source']->getAttributes(); return $product; } $dataProduct = $product->getData(); $dataInitialProduct = $initialProduct->getData(); $oldMatrix = []; if ($attributeTypeAction == 'deleteLast') { array_pop($dataInitialProduct['configurable_attributes_data']['attributes_data']); $attributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source']->getAttributes(); $this->deletedAttributes[] = array_pop($attributes); } $attributesData = $dataInitialProduct['configurable_attributes_data']['attributes_data']; if ($attributeTypeAction == 'addOptions') { $oldMatrix = $dataInitialProduct['configurable_attributes_data']['matrix']; $this->addOptions($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']); } else { $this->addAttributes($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']); } $dataProduct['configurable_attributes_data'] = ['attributes_data' => $attributesData, 'matrix' => $oldMatrix]; if ($product->hasData('category_ids')) { $dataProduct['category_ids']['category'] = $product->getDataFieldConfig('category_ids')['source']->getCategories()[0]; } return $this->fixtureFactory->createByCode('configurableProduct', ['data' => $dataProduct]); }
/** * Create review. * * @param Review $review * @param int $rating * @return Review */ protected function createReview($review, $rating) { $reviewData = $review->getData(); $fixtureRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0]; $reviewData['ratings'][0] = ['fixtureRating' => $fixtureRating, 'rating' => $rating]; return $this->fixtureFactory->createByCode('review', ['data' => $reviewData]); }