Skip to content

Commit e3fc5b7

Browse files
authored
Merge pull request #1012 from magento-epam/PR-8
[Epam] Extend functional test sprint 8 - MTO-103: [Variation] Auto-complete Search Terms and Phrases while User is Typing - MTO-114: [Variation] Low Stock Products Report - MTO-131: [Constraint] Check invoiced order on Admin Dashboard - MTO-145: [Constraint] Check order grid date filter
2 parents 6e95f7f + 0653fe7 commit e3fc5b7

17 files changed

+342
-37
lines changed

dev/tests/functional/tests/app/Magento/Backend/Test/Block/Page/Main.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
namespace Magento\Backend\Test\Block\Page;
88

99
use Magento\Mtf\Block\Block;
10+
use Magento\Mtf\Client\Locator;
1011

1112
/**
1213
* Main dashboard block.
@@ -20,6 +21,20 @@ class Main extends Block
2021
*/
2122
protected $revenuePriceBlock = '.dashboard-totals-list li:first-child .price';
2223

24+
/**
25+
* Item xpath selector.
26+
*
27+
* @var string
28+
*/
29+
private $itemSelector = '//span[contains(text(), "%s")]/following-sibling::strong';
30+
31+
/**
32+
* Graph image selector.
33+
*
34+
* @var string
35+
*/
36+
private $graphImage = '#diagram_tab_orders_content .dashboard-diagram-chart';
37+
2338
/**
2439
* Get Revenue price block.
2540
*
@@ -29,4 +44,30 @@ public function getRevenuePrice()
2944
{
3045
return $this->_rootElement->find($this->revenuePriceBlock)->getText();
3146
}
47+
48+
/**
49+
* Get orders report from dashboard.
50+
*
51+
* @param array $argumentsList
52+
* @return array
53+
*/
54+
public function getDashboardOrder(array $argumentsList)
55+
{
56+
$order = [];
57+
foreach ($argumentsList as $argument) {
58+
$selector = sprintf($this->itemSelector, $argument);
59+
$order[strtolower($argument)] = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText();
60+
}
61+
return $order;
62+
}
63+
64+
/**
65+
* Return visibility of graph image on admin dashboard.
66+
*
67+
* @return bool
68+
*/
69+
public function isGraphImageVisible()
70+
{
71+
return $this->_rootElement->find($this->graphImage)->isVisible();
72+
}
3273
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Backend\Test\TestStep;
8+
9+
use Magento\Mtf\TestStep\TestStepInterface;
10+
use Magento\Backend\Test\Page\Adminhtml\Dashboard;
11+
12+
/**
13+
* Get order information from admin dashboard.
14+
*/
15+
class GetDashboardOrderStep implements TestStepInterface
16+
{
17+
/**
18+
* Dashboard page.
19+
*
20+
* @var Dashboard
21+
*/
22+
private $dashboard;
23+
24+
/**
25+
* Needed information from dashboard.
26+
*
27+
* @var array
28+
*/
29+
private $argumentsList;
30+
31+
/**
32+
* @param Dashboard $dashboard
33+
* @param array $argumentsList
34+
*/
35+
public function __construct(
36+
Dashboard $dashboard,
37+
array $argumentsList = []
38+
) {
39+
$this->dashboard = $dashboard;
40+
$this->argumentsList = $argumentsList;
41+
}
42+
43+
/**
44+
* Return order information from admin dashboard.
45+
*
46+
* @return array
47+
*/
48+
public function run()
49+
{
50+
$dashboardOrder = [];
51+
if (isset($this->argumentsList)) {
52+
$this->dashboard->open();
53+
$dashboardOrder = $this->dashboard->getMainBlock()->getDashboardOrder($this->argumentsList);
54+
}
55+
return ['dashboardOrder' => $dashboardOrder];
56+
}
57+
}

dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Constraint/AssertSuggestSearchingResult.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,25 @@ class AssertSuggestSearchingResult extends AbstractConstraint
2222
* Click on search suggestion and verify that search is performed.
2323
*
2424
* @param CmsIndex $cmsIndex
25-
* @param CatalogSearchQuery $catalogSearch
25+
* @param CatalogSearchQuery $searchTerm
2626
* @param AssertCatalogSearchResult $assertCatalogSearchResult
2727
* @param AdvancedResult $resultPage
2828
* @return void
2929
*/
3030
public function processAssert(
31-
CatalogSearchQuery $catalogSearch,
31+
CatalogSearchQuery $searchTerm,
3232
CmsIndex $cmsIndex,
3333
AssertCatalogSearchResult $assertCatalogSearchResult,
3434
AdvancedResult $resultPage
3535
) {
3636
$cmsIndex->open();
3737
$searchBlock = $cmsIndex->getSearchBlock();
3838

39-
$queryText = $catalogSearch->getQueryText();
39+
$queryText = $searchTerm->getQueryText();
4040
$searchBlock->fillSearch($queryText);
4141

42-
if ($catalogSearch->hasData('num_results')) {
43-
$isVisible = $searchBlock->isSuggestSearchVisible($queryText, $catalogSearch->getNumResults());
42+
if ($searchTerm->hasData('num_results')) {
43+
$isVisible = $searchBlock->isSuggestSearchVisible($queryText, $searchTerm->getNumResults());
4444
} else {
4545
$isVisible = $searchBlock->isSuggestSearchVisible($queryText);
4646
}
@@ -50,7 +50,7 @@ public function processAssert(
5050
'Block "Suggest Search" when searching was not found'
5151
);
5252
$searchBlock->clickSuggestedText($queryText);
53-
$assertCatalogSearchResult->processAssert($catalogSearch, $resultPage);
53+
$assertCatalogSearchResult->processAssert($searchTerm, $resultPage);
5454
}
5555

5656
/**

dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* 3. Perform asserts.
2323
*
2424
* @group Search_Frontend
25-
* @ZephyrId MAGETWO-24671
25+
* @ZephyrId MAGETWO-24671, MAGETWO-23186
2626
*/
2727
class SuggestSearchingResultEntityTest extends Injectable
2828
{
@@ -34,12 +34,12 @@ class SuggestSearchingResultEntityTest extends Injectable
3434
* Run suggest searching result test.
3535
*
3636
* @param CmsIndex $cmsIndex
37-
* @param CatalogSearchQuery $catalogSearch
37+
* @param CatalogSearchQuery $searchTerm
3838
* @return void
3939
*/
40-
public function testSearch(CmsIndex $cmsIndex, CatalogSearchQuery $catalogSearch)
40+
public function testSearch(CmsIndex $cmsIndex, CatalogSearchQuery $searchTerm)
4141
{
4242
$cmsIndex->open();
43-
$cmsIndex->getSearchBlock()->search($catalogSearch->getQueryText());
43+
$cmsIndex->getSearchBlock()->search($searchTerm->getQueryText());
4444
}
4545
}

dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/SuggestSearchingResultEntityTest.xml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,28 @@
66
*/
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
9-
<testCase name="Magento\CatalogSearch\Test\TestCase\SuggestSearchingResultEntityTest" summary="Suggest Searching Results" ticketId="MAGETWO-24671">
10-
<variation name="SuggestSearchingResultEntityTestVariation1">
9+
<testCase name="Magento\CatalogSearch\Test\TestCase\SuggestSearchingResultEntityTest" summary="Suggest Searching Results" ticketId="MAGETWO-24671, MAGETWO-23186">
10+
<variation name="SuggestSearchingResultEntityTestVariation1" summary="Auto-complete search with product name" ticketId="MAGETWO-24671">
1111
<data name="tag" xsi:type="string">stable:no</data>
12-
<data name="catalogSearch/data/query_text/value" xsi:type="string">catalogProductSimple::name</data>
13-
<data name="catalogSearch/data/num_results" xsi:type="string">-</data>
12+
<data name="searchTerm/data/query_text/value" xsi:type="string">catalogProductSimple::name</data>
13+
<data name="searchTerm/data/num_results" xsi:type="string">-</data>
1414
<constraint name="Magento\CatalogSearch\Test\Constraint\AssertSuggestSearchingResult" />
1515
</variation>
16-
<variation name="SuggestSearchingResultEntityTestVariation2">
16+
<variation name="SuggestSearchingResultEntityTestVariation2" summary="Auto-complete search with product sku" ticketId="MAGETWO-24671">
1717
<data name="tag" xsi:type="string">stable:no</data>
18-
<data name="catalogSearch/data/query_text/value" xsi:type="string">catalogProductSimple::sku</data>
19-
<data name="catalogSearch/data/num_results" xsi:type="string">1</data>
18+
<data name="searchTerm/data/query_text/value" xsi:type="string">catalogProductSimple::sku</data>
19+
<data name="searchTerm/data/num_results" xsi:type="string">1</data>
20+
<constraint name="Magento\CatalogSearch\Test\Constraint\AssertSuggestSearchingResult" />
21+
</variation>
22+
<variation name="SuggestSearchingResultEntityTestVariation3" summary="Auto-complete search with product description" ticketId="MAGETWO-23186">
23+
<data name="searchTerm/data/query_text/value" xsi:type="string">catalogProductSimple::abc_dfj_simple_for_advancedsearch::adc_Full</data>
24+
<data name="searchTerm/data/num_results" xsi:type="string">1</data>
25+
<constraint name="Magento\CatalogSearch\Test\Constraint\AssertSuggestSearchingResult" />
26+
<constraint name="Magento\CatalogSearch\Test\Constraint\AssertSearchTermInGrid" />
27+
</variation>
28+
<variation name="SuggestSearchingResultEntityTestVariation4" summary="Auto-complete search with product short description" ticketId="MAGETWO-23186">
29+
<data name="searchTerm/data/query_text/value" xsi:type="string">catalogProductSimple::abc_dfj_simple_for_advancedsearch::abc_short</data>
30+
<data name="searchTerm/data/num_results" xsi:type="string">1</data>
2031
<constraint name="Magento\CatalogSearch\Test\Constraint\AssertSuggestSearchingResult" />
2132
</variation>
2233
</testCase>

dev/tests/functional/tests/app/Magento/Reports/Test/Repository/ConfigData.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,14 @@
3939
<item name="dataset" xsi:type="string">custom_store</item>
4040
</field>
4141
</dataset>
42+
43+
<dataset name="notify_stock_quantity_2">
44+
<field name="cataloginventory/item_options/notify_stock_qty" xsi:type="array">
45+
<item name="scope" xsi:type="string">catalog</item>
46+
<item name="scope_id" xsi:type="number">1</item>
47+
<item name="label" xsi:type="string"/>
48+
<item name="value" xsi:type="number">2</item>
49+
</field>
50+
</dataset>
4251
</repository>
4352
</config>

dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.php

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
namespace Magento\Reports\Test\TestCase;
88

9-
use Magento\Catalog\Test\Fixture\CatalogProductSimple;
10-
use Magento\Mtf\TestCase\Injectable;
9+
use Magento\Mtf\TestCase\Scenario;
1110

1211
/**
1312
* Preconditions:
@@ -21,21 +20,19 @@
2120
* @group Reports
2221
* @ZephyrId MAGETWO-27193
2322
*/
24-
class LowStockProductsReportEntityTest extends Injectable
23+
class LowStockProductsReportEntityTest extends Scenario
2524
{
2625
/* tags */
2726
const MVP = 'no';
2827
/* end tags */
2928

3029
/**
31-
* Create product
30+
* Runs low stock products report test.
3231
*
33-
* @param CatalogProductSimple $product
3432
* @return void
3533
*/
36-
public function test(CatalogProductSimple $product)
34+
public function test()
3735
{
38-
// Preconditions
39-
$product->persist();
36+
$this->executeScenario();
4037
}
4138
}

dev/tests/functional/tests/app/Magento/Reports/Test/TestCase/LowStockProductsReportEntityTest.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
99
<testCase name="Magento\Reports\Test\TestCase\LowStockProductsReportEntityTest" summary="Generate &quot;Low Stock Products&quot; Report" ticketId="MAGETWO-27193">
10-
<variation name="LowStockProductsReportEntityTestVariation1">
10+
<variation name="LowStockProductsReportEntityTestVariation1" summary="Generate Low Stock Products Report and Set Notify for Quantity Below = 2" ticketId="MAGETWO-52213">
1111
<data name="issue" xsi:type="string">MAGETWO-62279: Low stock products report doesn't work</data>
12-
<data name="product/dataset" xsi:type="string">low_stock_product</data>
12+
<data name="product" xsi:type="string">catalogProductSimple::low_stock_product</data>
13+
<data name="configData" xsi:type="string">notify_stock_quantity_2</data>
14+
<data name="flushCache" xsi:type="boolean">true</data>
1315
<constraint name="Magento\Reports\Test\Constraint\AssertLowStockProductInGrid" />
1416
</variation>
1517
</testCase>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/TestCase/etc/testcase.xsd">
9+
<scenario name="LowStockProductsReportEntityTest" firstStep="setupConfiguration">
10+
<step name="setupConfiguration" module="Magento_Config" next="createProduct" />
11+
<step name="createProduct" module="Magento_Catalog" />
12+
</scenario>
13+
</config>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Test\Constraint;
8+
9+
use Magento\Mtf\Constraint\AbstractConstraint;
10+
use Magento\Mtf\TestStep\TestStepFactory;
11+
12+
/**
13+
* Assert invoiced order on admin dashboard.
14+
*/
15+
class AssertInvoicedOrderOnDashboard extends AbstractConstraint
16+
{
17+
/**
18+
* Assert orders quantity on admin dashboard.
19+
*
20+
* @param TestStepFactory $stepFactory
21+
* @param array $dashboardOrder
22+
* @param array $argumentsList
23+
* @param int $expectedOrdersQuantityOnDashboard
24+
* @return void
25+
*/
26+
public function processAssert(
27+
TestStepFactory $stepFactory,
28+
array $dashboardOrder,
29+
array $argumentsList,
30+
$expectedOrdersQuantityOnDashboard
31+
) {
32+
$orderQty = $stepFactory->create(
33+
\Magento\Backend\Test\TestStep\GetDashboardOrderStep::class,
34+
['argumentsList' => $argumentsList]
35+
)->run()['dashboardOrder']['quantity'];
36+
$invoicedOrdersQty = $orderQty - $dashboardOrder['quantity'];
37+
38+
\PHPUnit_Framework_Assert::assertEquals(
39+
$invoicedOrdersQty,
40+
$expectedOrdersQuantityOnDashboard,
41+
'Order quantity om admin dashboard is not correct.'
42+
);
43+
}
44+
45+
/**
46+
* Returns string representation of successful assertion.
47+
*
48+
* @return string
49+
*/
50+
public function toString()
51+
{
52+
return 'Order information on dashboard is correct.';
53+
}
54+
}

0 commit comments

Comments
 (0)