Skip to content

Commit

Permalink
Merge pull request #455 from magento-qmt/PR
Browse files Browse the repository at this point in the history
[Mavericks] Extend functional tests
  • Loading branch information
Yaroslav Onischenko authored Oct 3, 2016
2 parents 152309b + 7cfbc9f commit 0f1af99
Show file tree
Hide file tree
Showing 40 changed files with 904 additions and 174 deletions.
37 changes: 37 additions & 0 deletions dev/tests/functional/lib/Magento/Mtf/Util/Command/Cli/Setup.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Mtf\Util\Command\Cli;

use Magento\Mtf\Util\Command\Cli;

/**
* Setup Magento for tests executions.
*/
class Setup extends Cli
{
/**
* Parameter for uninstall Magento command.
*/
const PARAM_SETUP_UNINSTALL = 'setup:uninstall';

/**
* Options for uninstall Magento command.
*
* @var array
*/
private $options = ['-n'];

/**
* Uninstall Magento.
*
* @return void
*/
public function uninstall()
{
parent::execute(Setup::PARAM_SETUP_UNINSTALL, $this->options);
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab;

use Magento\Mtf\Client\Element\SimpleElement;
use Magento\Mtf\Client\Locator;
use Magento\Backend\Test\Block\Widget\Tab;

/**
* Tab on Product update attributes Form.
*/
class UpdateAttributeTab extends Tab
{
/**
* Change checkbox.
*
* @var string
*/
private $changeCheckbox = [
'selector' => './/./ancestor::div[contains(@class,"control")]'
. '//input[@data-role="toggle-editability-all" or contains(@id, "toggle_")]',
'strategy' => Locator::SELECTOR_XPATH,
'input' => 'checkbox',
'value' => 'Yes',
];

/**
* Fill data into fields in the container.
*
* @param array $fields
* @param SimpleElement|null $contextElement
* @return $this
*/
public function setFieldsData(array $fields, SimpleElement $contextElement = null)
{
$context = ($contextElement === null) ? $this->_rootElement : $contextElement;
$mapping = $this->dataMapping($fields);
foreach ($mapping as $field) {
$this->_fill([$this->changeCheckbox], $context->find($field['selector'], $field['strategy']));
$this->_fill([$field], $context);
}

return $this;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action;

use Magento\Backend\Test\Block\Widget\FormTabs;

/**
* Product update Attributes Form.
*/
class UpdateAttributeForm extends FormTabs
{
//
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" ?>
<!--
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<tabs>
<product-details>
<class>Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab</class>
<selector>#attributes_update_tabs_attributes</selector>
<fields>
<price>
<selector>#price</selector>
</price>
</fields>
</product-details>
<advanced-inventory>
<class>Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Tab\UpdateAttributeTab</class>
<selector>#attributes_update_tabs_inventory</selector>
<fields>
<stock_data>
<selector>#inventory_stock_availability</selector>
<input>select</input>
</stock_data>
</fields>
</advanced-inventory>
</tabs>
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
namespace Magento\Catalog\Test\Block\Adminhtml\Product;

use Magento\Ui\Test\Block\Adminhtml\DataGrid;
use Magento\Mtf\Fixture\FixtureInterface;

/**
* Backend catalog product grid.
Expand Down Expand Up @@ -72,12 +73,17 @@ class Grid extends DataGrid
/**
* Update attributes for selected items.
*
* @param array $items [optional]
* @param array $items
* @return void
*/
public function updateAttributes(array $items = [])
{
$this->massaction($items, 'Update attributes');
$products = [];
/** @var FixtureInterface $product */
foreach ($items as $product) {
$products[] = ["sku" => $product->getSku()];
}
$this->massaction($products, 'Update attributes');
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,12 @@ class AssertMassProductUpdateSuccessMessage extends AbstractConstraint
* Assert that after mass update successful message appears.
*
* @param CatalogProductIndex $productGrid
* @param array $products
* @param int $productsCount
* @return void
*/
public function processAssert(CatalogProductIndex $productGrid, $products = [])
public function processAssert(CatalogProductIndex $productGrid, $productsCount)
{
$countProducts = count($products) ? count($products) : 1;
$expectedMessage = sprintf(self::SUCCESS_MESSAGE, $countProducts);
$expectedMessage = sprintf(self::SUCCESS_MESSAGE, $productsCount);
$actualMessage = $productGrid->getMessagesBlock()->getSuccessMessage();
\PHPUnit_Framework_Assert::assertEquals(
$expectedMessage,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Catalog\Test\Constraint;

use Magento\Catalog\Test\Page\Product\CatalogProductView;
use Magento\Mtf\Client\BrowserInterface;
use Magento\Mtf\Constraint\AbstractConstraint;

/**
* Assert that all products are in stock.
*/
class AssertProductsInStock extends AbstractConstraint
{
/**
* Assert that In Stock status is displayed for products.
*
* @param CatalogProductView $catalogProductView
* @param BrowserInterface $browser
* @param AssertProductInStock $assertProductInStock
* @param array $products
* @return void
*/
public function processAssert(
CatalogProductView $catalogProductView,
BrowserInterface $browser,
AssertProductInStock $assertProductInStock,
array $products
) {
foreach ($products as $product) {
$assertProductInStock->processAssert($catalogProductView, $browser, $product);
}
}

/**
* Returns a string representation of the object.
*
* @return string
*/
public function toString()
{
return 'In stock control is visible for each product.';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd">
<page name="CatalogProductActionAttributeEdit" area="Adminhtml" mca="catalog/product_action_attribute/edit" module="Magento_Catalog">
<block name="attributesBlockForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\Attribute" locator="body" strategy="css selector" />
<block name="attributesBlockForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\UpdateAttributeForm" locator="body" strategy="css selector" />
<block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Product\Edit\Action\FormPageActions" locator=".page-main-actions" strategy="css selector" />
</page>
</config>
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,16 @@
</item>
</field>
</dataset>

<dataset name="not_logged_in">
<field name="0" xsi:type="array">
<item name="price" xsi:type="string">90</item>
<item name="website" xsi:type="string">All Websites [USD]</item>
<item name="price_qty" xsi:type="string">2</item>
<item name="customer_group" xsi:type="array">
<item name="dataset" xsi:type="string">NOT_LOGGED_IN</item>
</item>
</field>
</dataset>
</repository>
</config>
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
<data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
<data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
<data name="product/data/sku" xsi:type="string">simple_sku_%isolation%</data>
<data name="product/data/price/value" xsi:type="string">10008</data>
<data name="product/data/price/value" xsi:type="string">10008.88</data>
<data name="product/data/short_description" xsi:type="string">Simple Product short_description %isolation%</data>
<data name="product/data/description" xsi:type="string">Simple Product description %isolation%</data>
<data name="product/data/weight" xsi:type="string">58</data>
Expand Down Expand Up @@ -461,6 +461,28 @@
<data name="product/data/country_of_manufacture" xsi:type="string">Antarctica</data>
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
</variation>
<variation name="CreateSimpleProductEntityTestVariation28" summary="Create product with tier price for not logged in customer">
<data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
<data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
<data name="product/data/sku" xsi:type="string">simple_sku_%isolation%</data>
<data name="product/data/price/value" xsi:type="string">100</data>
<data name="product/data/weight" xsi:type="string">50</data>
<data name="product/data/quantity_and_stock_status/qty" xsi:type="string">667</data>
<data name="product/data/tier_price/dataset" xsi:type="string">not_logged_in</data>
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
<constraint name="Magento\Catalog\Test\Constraint\AssertProductTierPriceOnProductPage" />
</variation>
<variation name="CreateSimpleProductEntityTestVariation29" summary="Create Simple Product and assign it to custom website">
<data name="product/data/url_key" xsi:type="string">simple-product-%isolation%</data>
<data name="product/data/name" xsi:type="string">Simple Product %isolation%</data>
<data name="product/data/sku" xsi:type="string">simple_sku_%isolation%</data>
<data name="product/data/price/value" xsi:type="string">200.20</data>
<data name="product/data/weight" xsi:type="string">50</data>
<data name="product/data/quantity_and_stock_status/qty" xsi:type="string">668</data>
<data name="product/data/website_ids/0/dataset" xsi:type="string">custom_store</data>
<constraint name="Magento\Catalog\Test\Constraint\AssertProductSaveMessage" />
<constraint name="Magento\Catalog\Test\Constraint\AssertProductOnCustomWebsite" />
</variation>
<variation name="CreateSimpleProductEntityWithEmptySkuMaskTest1" summary="Create Simple Product Entity With Empty Sku Mask" ticketId="MAGETWO-58951">
<data name="configData" xsi:type="string">empty_product_mask_sku</data>
<data name="description" xsi:type="string">Create product with custom options(fixed price)</data>
Expand Down
Loading

0 comments on commit 0f1af99

Please sign in to comment.