Skip to content

Commit 22eb214

Browse files
author
Dmytro Aponasenko
committed
Merge branch 'MTA-2316-2' of https://github.corp.ebay.com/magento-qmt/magento2ce into develop
2 parents c003165 + 4e1eefa commit 22eb214

27 files changed

+1601
-5
lines changed

dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ abstract class Grid extends Block
179179
*
180180
* @var string
181181
*/
182-
protected $noRecords = '[data-role="row"] .empty-text';
182+
protected $noRecords = '.empty-text';
183183

184184
/**
185185
* Base part of row locator template for getRow() method.

dev/tests/functional/tests/app/Magento/Downloadable/Test/Block/Customer/Products/ListProducts.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,15 @@ public function openLink($linkTitle)
3232
{
3333
$this->_rootElement->find(sprintf($this->link, $linkTitle), Locator::SELECTOR_XPATH)->click();
3434
}
35+
36+
/**
37+
* Get link url by title.
38+
*
39+
* @param string $title
40+
* @return string
41+
*/
42+
public function getLinkUrl($title)
43+
{
44+
return $this->_rootElement->find(sprintf($this->link, $title), Locator::SELECTOR_XPATH)->getAttribute('href');
45+
}
3546
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Reports\Test\Block\Adminhtml\Product\Sold;
8+
9+
use Magento\Sales\Test\Fixture\OrderInjectable;
10+
use Magento\Mtf\Client\Locator;
11+
use Magento\Mtf\ObjectManager;
12+
13+
/**
14+
* Class Grid
15+
* Ordered Products Report grid
16+
*/
17+
class Grid extends \Magento\Backend\Test\Block\Widget\Grid
18+
{
19+
/**
20+
* Mapping for fields in Ordered Products Report Grid
21+
*
22+
* @var array
23+
*/
24+
protected $dataMapping = [
25+
'report_from' => 'datepicker',
26+
'report_to' => 'datepicker',
27+
'report_period' => 'select',
28+
];
29+
30+
/**
31+
* Product in grid locator
32+
*
33+
* @var string
34+
*/
35+
protected $product = './/*[contains(.,"%s")]/*[contains(@class,"col-qty")]';
36+
37+
/**
38+
* Filter locator
39+
*
40+
* @var string
41+
*/
42+
protected $filter = '[name=%s]';
43+
44+
/**
45+
* Refresh button locator
46+
*
47+
* @var string
48+
*/
49+
protected $refreshButton = '[data-ui-id="adminhtml-report-grid-refresh-button"]';
50+
51+
/**
52+
* Search accounts in report grid
53+
*
54+
* @var array $customersReport
55+
* @return void
56+
*/
57+
public function searchAccounts(array $customersReport)
58+
{
59+
$customersReport = $this->prepareData($customersReport);
60+
foreach ($customersReport as $name => $value) {
61+
$this->_rootElement
62+
->find(sprintf($this->filter, $name), Locator::SELECTOR_CSS, $this->dataMapping[$name])
63+
->setValue($value);
64+
}
65+
$this->_rootElement->find($this->refreshButton)->click();
66+
}
67+
68+
/**
69+
* Prepare data
70+
*
71+
* @param array $customersReport
72+
* @return array
73+
*/
74+
protected function prepareData(array $customersReport)
75+
{
76+
foreach ($customersReport as $name => $reportFilter) {
77+
if ($name === 'report_period') {
78+
continue;
79+
}
80+
$date = ObjectManager::getInstance()->create(
81+
'\Magento\Backend\Test\Fixture\Source\Date',
82+
['params' => [], 'data' => ['pattern' => $reportFilter]]
83+
);
84+
$customersReport[$name] = $date->getData();
85+
}
86+
return $customersReport;
87+
}
88+
89+
/**
90+
* Get orders quantity from Ordered Products Report grid
91+
*
92+
* @param OrderInjectable $order
93+
* @return array
94+
*/
95+
public function getOrdersResults(OrderInjectable $order)
96+
{
97+
$products = $order->getEntityId()['products'];
98+
$views = [];
99+
foreach ($products as $key => $product) {
100+
$views[$key] = $this->_rootElement
101+
->find(sprintf($this->product, $product->getName()), Locator::SELECTOR_XPATH)->getText();
102+
}
103+
return $views;
104+
}
105+
}

dev/tests/functional/tests/app/Magento/Reports/Test/Constraint/AssertSalesReportIntervalResult.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function processAssert(
3333
$this->salesReportPage = $salesReportPage;
3434
$this->order = $order;
3535
$this->searchInSalesReportGrid($salesReport);
36-
$salesResult = $salesReportPage->getGridBlock()->getLastResult();
36+
$salesResult = $this->prepareSalesResult($salesReportPage->getGridBlock()->getLastResult());
3737
$prepareInitialResult = $this->prepareExpectedResult($initialSalesResult);
3838
\PHPUnit_Framework_Assert::assertEquals(
3939
$prepareInitialResult,
@@ -42,6 +42,22 @@ public function processAssert(
4242
);
4343
}
4444

45+
/**
46+
* Prepare sales result.
47+
*
48+
* @param array $salesResult
49+
* @return array
50+
*/
51+
protected function prepareSalesResult($salesResult)
52+
{
53+
$data = [];
54+
foreach ($salesResult as $key => $result) {
55+
$data[$key] = intval($result);
56+
}
57+
58+
return $data;
59+
}
60+
4561
/**
4662
* Returns a string representation of the object
4763
*

dev/tests/functional/tests/app/Magento/Reports/Test/Page/Adminhtml/SalesCouponReportView.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
<page name="SalesCouponReportView" area="Adminhtml" mca="reports/report_sales/coupons" module="Magento_Reports">
1010
<block name="filterBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Coupons\Filter" locator="#filter_form" strategy="css selector"/>
1111
<block name="actionBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Coupons\Action" locator=".page-main-actions" strategy="css selector"/>
12-
<block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Coupons\Grid" locator="//*[@class='grid']/.." strategy="xpath"/>
12+
<block name="gridBlock" class="Magento\Reports\Test\Block\Adminhtml\Sales\Coupons\Grid" locator="//*[@class='data-grid']" strategy="xpath"/>
1313
</page>
1414
</config>

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ class AbandonedCartsReportEntityTest extends Injectable
3636
/* tags */
3737
const MVP = 'no';
3838
const DOMAIN = 'MX';
39-
const STABLE = 'no';
4039
/* end tags */
4140

4241
/**
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Reports\Test\TestCase;
8+
9+
use Magento\Reports\Test\Page\Adminhtml\Bestsellers;
10+
use Magento\Sales\Test\Fixture\OrderInjectable;
11+
use Magento\Mtf\TestCase\Injectable;
12+
13+
/**
14+
* Test Flow:
15+
* Preconditions:
16+
* 1. Create customer.
17+
* 2. Create product.
18+
* 3. Place order.
19+
* 4. Refresh statistic.
20+
*
21+
* Steps:
22+
* 1. Open Backend.
23+
* 2. Go to Reports > Products > Bestsellers.
24+
* 3. Select time range, report period.
25+
* 4. Click "Show report".
26+
* 5. Perform all assertions.
27+
*
28+
* @group Reports_(MX)
29+
* @ZephyrId MAGETWO-28222
30+
*/
31+
class BestsellerProductsReportEntityTest extends Injectable
32+
{
33+
/* tags */
34+
const MVP = 'no';
35+
const DOMAIN = 'MX';
36+
/* end tags */
37+
38+
/**
39+
* Bestsellers page.
40+
*
41+
* @var Bestsellers
42+
*/
43+
protected $bestsellers;
44+
45+
/**
46+
* Inject pages.
47+
*
48+
* @param Bestsellers $bestsellers
49+
* @return void
50+
*/
51+
public function __inject(Bestsellers $bestsellers)
52+
{
53+
$this->bestsellers = $bestsellers;
54+
}
55+
56+
/**
57+
* Bestseller Products Report.
58+
*
59+
* @param OrderInjectable $order
60+
* @param array $bestsellerReport
61+
* @return void
62+
*/
63+
public function test(OrderInjectable $order, array $bestsellerReport)
64+
{
65+
// Preconditions
66+
$order->persist();
67+
$this->bestsellers->open();
68+
$this->bestsellers->getMessagesBlock()->clickLinkInMessages('notice', 'here');
69+
70+
// Steps
71+
$this->bestsellers->getFilterBlock()->viewsReport($bestsellerReport);
72+
$this->bestsellers->getActionsBlock()->showReport();
73+
}
74+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2015 Magento. 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/etc/variations.xsd">
9+
<testCase name="Magento\Reports\Test\TestCase\BestsellerProductsReportEntityTest">
10+
<variation name="BestsellerProductsReportEntityTestVariation1">
11+
<data name="order/dataSet" xsi:type="string">simple_big_qty</data>
12+
<data name="bestsellerReport/period_type" xsi:type="string">Year</data>
13+
<data name="bestsellerReport/from" xsi:type="string">m/d/Y -1 year</data>
14+
<data name="bestsellerReport/to" xsi:type="string">m/d/Y</data>
15+
<data name="bestsellerReport/show_empty_rows" xsi:type="string">No</data>
16+
<data name="date" xsi:type="string">Y</data>
17+
<constraint name="Magento\Reports\Test\Constraint\AssertBestsellerReportResult"/>
18+
</variation>
19+
<variation name="BestsellerProductsReportEntityTestVariation2">
20+
<data name="order/dataSet" xsi:type="string">virtual_big_qty</data>
21+
<data name="bestsellerReport/period_type" xsi:type="string">Month</data>
22+
<data name="bestsellerReport/from" xsi:type="string">m/d/Y -1 month</data>
23+
<data name="bestsellerReport/to" xsi:type="string">m/d/Y</data>
24+
<data name="bestsellerReport/show_empty_rows" xsi:type="string">Yes</data>
25+
<data name="date" xsi:type="string">n/Y</data>
26+
<constraint name="Magento\Reports\Test\Constraint\AssertBestsellerReportResult"/>
27+
</variation>
28+
<variation name="BestsellerProductsReportEntityTestVariation3">
29+
<data name="order/dataSet" xsi:type="string">simple_big_qty</data>
30+
<data name="bestsellerReport/period_type" xsi:type="string">Day</data>
31+
<data name="bestsellerReport/from" xsi:type="string">m/d/Y -1 day</data>
32+
<data name="bestsellerReport/to" xsi:type="string">m/d/Y +1 day</data>
33+
<data name="bestsellerReport/show_empty_rows" xsi:type="string">No</data>
34+
<data name="date" xsi:type="string">M d, Y</data>
35+
<constraint name="Magento\Reports\Test\Constraint\AssertBestsellerReportResult"/>
36+
</variation>
37+
</testCase>
38+
</config>
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Reports\Test\TestCase;
8+
9+
use Magento\Customer\Test\Fixture\Customer;
10+
use Magento\Reports\Test\Page\Adminhtml\CustomerOrdersReport;
11+
use Magento\Sales\Test\Fixture\OrderInjectable;
12+
use Magento\Mtf\Fixture\FixtureFactory;
13+
use Magento\Mtf\TestCase\Injectable;
14+
15+
/**
16+
* Test Creation for OrderCountReportEntity
17+
*
18+
* Test Flow:
19+
*
20+
* Preconditions:
21+
* 1. Create customer
22+
* 2. Create orders for customer
23+
*
24+
* Steps:
25+
* 1. Login to backend
26+
* 2. Open Reports > Customer > Order Count
27+
* 3. Fill data from dataSet
28+
* 4. Click button Refresh
29+
* 5. Perform all assertions
30+
*
31+
* @group Reports_(MX)
32+
* @ZephyrId MAGETWO-28521
33+
*/
34+
class CustomersOrderCountReportEntityTest extends Injectable
35+
{
36+
/* tags */
37+
const MVP = 'no';
38+
const DOMAIN = 'MX';
39+
/* end tags */
40+
41+
/**
42+
* Order count report page
43+
*
44+
* @var CustomerOrdersReport
45+
*/
46+
protected $customerOrdersReport;
47+
48+
/**
49+
* Inject page
50+
*
51+
* @param CustomerOrdersReport $customerOrdersReport
52+
* @return void
53+
*/
54+
public function __inject(CustomerOrdersReport $customerOrdersReport)
55+
{
56+
$this->customerOrdersReport = $customerOrdersReport;
57+
}
58+
59+
/**
60+
* Order count report view
61+
*
62+
* @param Customer $customer
63+
* @param string $orders
64+
* @param array $report
65+
* @param FixtureFactory $fixtureFactory
66+
* @return array
67+
*/
68+
public function test(Customer $customer, $orders, array $report, FixtureFactory $fixtureFactory)
69+
{
70+
// Precondition
71+
$customer->persist();
72+
$orders = explode(',', $orders);
73+
foreach ($orders as $order) {
74+
$order = $fixtureFactory->createByCode(
75+
'orderInjectable',
76+
['dataSet' => $order, 'data' => ['customer_id' => ['customer' => $customer]]]
77+
);
78+
$order->persist();
79+
}
80+
81+
// Steps
82+
$this->customerOrdersReport->open();
83+
$this->customerOrdersReport->getFilterBlock()->viewsReport($report);
84+
$this->customerOrdersReport->getFilterBlock()->refreshFilter();
85+
86+
return['customer' => $customer];
87+
}
88+
}

0 commit comments

Comments
 (0)