Skip to content

Commit ba3e643

Browse files
authored
Merge pull request #4318 from magento-tsg/2.2-develop-pr95
[TSG] Fixes for 2.2 (pr95) (2.2-develop)
2 parents 848e1f9 + d0c762d commit ba3e643

File tree

16 files changed

+928
-490
lines changed

16 files changed

+928
-490
lines changed

app/code/Magento/Catalog/Test/Mftf/Test/AdminCheckingAttributeValueOnProductEditPageTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252

5353
<!--Go to Product edit page-->
5454
<amOnPage url="{{AdminProductEditPage.url($$createSimpleProduct.id$$)}}" stepKey="goToProductEditPage"/>
55-
<waitForPageLoad stepKey="waitForPageLoad"/>
55+
<scrollToTopOfPage stepKey="scrollToShowAttribute"/>
5656

5757
<!-- Grab attribute dropdown options -->
5858
<grabMultiple selector="{{AdminProductFormSection.customAttributeSelectOptions($$createDropdownProductAttribute.attribute[attribute_code]$$)}}" stepKey="clickOnAttributeDropdown" />

app/code/Magento/Reports/Helper/Data.php

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,27 @@ public function getIntervals($from, $to, $period = self::REPORT_PERIOD_TYPE_DAY)
6363

6464
$dateStart = new \DateTime($from);
6565
$dateEnd = new \DateTime($to);
66+
$dateFormat = 'Y-m-d';
67+
$dateInterval = new \DateInterval('P1D');
68+
switch ($period) {
69+
case self::REPORT_PERIOD_TYPE_MONTH:
70+
$dateFormat = 'Y-m';
71+
$dateInterval = new \DateInterval('P1M');
72+
break;
73+
case self::REPORT_PERIOD_TYPE_YEAR:
74+
$dateFormat = 'Y';
75+
$dateInterval = new \DateInterval('P1Y');
76+
break;
77+
}
6678
while ($dateStart->diff($dateEnd)->invert == 0) {
67-
switch ($period) {
68-
case self::REPORT_PERIOD_TYPE_DAY:
69-
$intervals[] = $dateStart->format('Y-m-d');
70-
$dateStart->add(new \DateInterval('P1D'));
71-
break;
72-
case self::REPORT_PERIOD_TYPE_MONTH:
73-
$intervals[] = $dateStart->format('Y-m');
74-
$dateStart->add(new \DateInterval('P1M'));
75-
break;
76-
case self::REPORT_PERIOD_TYPE_YEAR:
77-
$intervals[] = $dateStart->format('Y');
78-
$dateStart->add(new \DateInterval('P1Y'));
79-
break;
80-
}
79+
$intervals[] = $dateStart->format($dateFormat);
80+
$dateStart->add($dateInterval);
81+
}
82+
83+
if (!in_array($dateEnd->format($dateFormat), $intervals)) {
84+
$intervals[] = $dateEnd->format($dateFormat);
8185
}
86+
8287
return $intervals;
8388
}
8489

app/code/Magento/Reports/Test/Unit/Helper/DataTest.php

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,38 @@
66

77
namespace Magento\Reports\Test\Unit\Helper;
88

9+
use Magento\Framework\App\Helper\Context;
10+
use Magento\Framework\Data\Collection;
911
use Magento\Reports\Helper\Data;
12+
use Magento\Reports\Model\Item;
13+
use Magento\Reports\Model\ItemFactory;
1014

1115
class DataTest extends \PHPUnit\Framework\TestCase
1216
{
1317
/**
14-
* @var \Magento\Reports\Helper\Data
18+
* @var Data
1519
*/
1620
protected $data;
1721

1822
/**
19-
* @var \Magento\Framework\App\Helper\Context|\PHPUnit_Framework_MockObject_MockObject
23+
* @var Context|\PHPUnit_Framework_MockObject_MockObject
2024
*/
2125
protected $contextMock;
2226

2327
/**
24-
* @var \Magento\Reports\Model\ItemFactory|\PHPUnit_Framework_MockObject_MockObject
28+
* @var ItemFactory|\PHPUnit_Framework_MockObject_MockObject
2529
*/
2630
protected $itemFactoryMock;
2731

2832
/**
29-
* {@inheritDoc}
33+
* @inheritdoc
3034
*/
3135
protected function setUp()
3236
{
33-
$this->contextMock = $this->getMockBuilder(\Magento\Framework\App\Helper\Context::class)
37+
$this->contextMock = $this->getMockBuilder(Context::class)
3438
->disableOriginalConstructor()
3539
->getMock();
36-
$this->itemFactoryMock = $this->getMockBuilder(\Magento\Reports\Model\ItemFactory::class)
40+
$this->itemFactoryMock = $this->getMockBuilder(ItemFactory::class)
3741
->setMethods(['create'])
3842
->disableOriginalConstructor()
3943
->getMock();
@@ -52,7 +56,7 @@ protected function setUp()
5256
* @dataProvider intervalsDataProvider
5357
* @return void
5458
*/
55-
public function testGetIntervals($from, $to, $period, $results)
59+
public function testGetIntervals(string $from, string $to, string $period, array $results)
5660
{
5761
$this->assertEquals($this->data->getIntervals($from, $to, $period), $results);
5862
}
@@ -65,14 +69,14 @@ public function testGetIntervals($from, $to, $period, $results)
6569
* @dataProvider intervalsDataProvider
6670
* @return void
6771
*/
68-
public function testPrepareIntervalsCollection($from, $to, $period, $results)
72+
public function testPrepareIntervalsCollection(string $from, string $to, string $period, array $results)
6973
{
70-
$collection = $this->getMockBuilder(\Magento\Framework\Data\Collection::class)
74+
$collection = $this->getMockBuilder(Collection::class)
7175
->disableOriginalConstructor()
7276
->setMethods(['addItem'])
7377
->getMock();
7478

75-
$item = $this->getMockBuilder(\Magento\Reports\Model\Item::class)
79+
$item = $this->getMockBuilder(Item::class)
7680
->disableOriginalConstructor()
7781
->setMethods(['setPeriod', 'setIsEmpty'])
7882
->getMock();
@@ -97,50 +101,56 @@ public function testPrepareIntervalsCollection($from, $to, $period, $results)
97101
/**
98102
* @return array
99103
*/
100-
public function intervalsDataProvider()
104+
public function intervalsDataProvider(): array
101105
{
102106
return [
103107
[
104108
'from' => '2000-01-15 10:00:00',
105109
'to' => '2000-01-15 11:00:00',
106-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_DAY,
107-
'results' => ['2000-01-15']
110+
'period' => Data::REPORT_PERIOD_TYPE_DAY,
111+
'results' => ['2000-01-15'],
108112
],
109113
[
110114
'from' => '2000-01-15 10:00:00',
111115
'to' => '2000-01-17 10:00:00',
112-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_MONTH,
113-
'results' => ['2000-01']
116+
'period' => Data::REPORT_PERIOD_TYPE_MONTH,
117+
'results' => ['2000-01'],
114118
],
115119
[
116120
'from' => '2000-01-15 10:00:00',
117121
'to' => '2000-02-15 10:00:00',
118-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR,
119-
'results' => ['2000']
122+
'period' => Data::REPORT_PERIOD_TYPE_YEAR,
123+
'results' => ['2000'],
120124
],
121125
[
122126
'from' => '2000-01-15 10:00:00',
123127
'to' => '2000-01-16 11:00:00',
124-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_DAY,
125-
'results' => ['2000-01-15', '2000-01-16']
128+
'period' => Data::REPORT_PERIOD_TYPE_DAY,
129+
'results' => ['2000-01-15', '2000-01-16'],
126130
],
127131
[
128132
'from' => '2000-01-15 10:00:00',
129133
'to' => '2000-02-17 10:00:00',
130-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_MONTH,
131-
'results' => ['2000-01', '2000-02']
134+
'period' => Data::REPORT_PERIOD_TYPE_MONTH,
135+
'results' => ['2000-01', '2000-02'],
132136
],
133137
[
134138
'from' => '2000-01-15 10:00:00',
135139
'to' => '2003-02-15 10:00:00',
136-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR,
137-
'results' => ['2000', '2001', '2002', '2003']
140+
'period' => Data::REPORT_PERIOD_TYPE_YEAR,
141+
'results' => ['2000', '2001', '2002', '2003'],
142+
],
143+
[
144+
'from' => '2000-12-31 10:00:00',
145+
'to' => '2001-01-01 10:00:00',
146+
'period' => Data::REPORT_PERIOD_TYPE_YEAR,
147+
'results' => ['2000', '2001'],
138148
],
139149
[
140150
'from' => '',
141151
'to' => '',
142-
'period' => \Magento\Reports\Helper\Data::REPORT_PERIOD_TYPE_YEAR,
143-
'results' => []
152+
'period' => Data::REPORT_PERIOD_TYPE_YEAR,
153+
'results' => [],
144154
]
145155
];
146156
}

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

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
namespace Magento\Reports\Test\Constraint;
88

99
use Magento\Reports\Test\Page\Adminhtml\SalesReport;
10-
use Magento\Sales\Test\Fixture\OrderInjectable;
11-
use DateTime;
1210

1311
/**
1412
* Assert that message in Sales Reports Pages displays correct date/time.
@@ -27,22 +25,22 @@ class AssertReportStatisticsNoticeMessage extends AbstractAssertSalesReportResul
2725
*
2826
* @param array $salesReport
2927
* @param SalesReport $salesReportPage
30-
* @param DateTime $currentDate
3128
* @return void
3229
*/
3330
public function processAssert(
3431
array $salesReport,
35-
SalesReport $salesReportPage,
36-
DateTime $currentDate
32+
SalesReport $salesReportPage
3733
) {
34+
$timezone = new \DateTimeZone($_ENV['magento_timezone']);
35+
$initialDate = new \DateTime('now', $timezone);
3836
$this->salesReportPage = $salesReportPage;
3937
$this->searchInSalesReportGrid($salesReport);
40-
$date = $this->getLastUpdatedDate();
41-
$currentDateTime = $currentDate->format('M j, Y, g');
42-
$displayedDateTime = date('M j, Y, g', strtotime($date));
43-
\PHPUnit_Framework_Assert::assertEquals(
44-
$currentDateTime,
45-
$displayedDateTime,
38+
$displayedDate = new \DateTime($this->getLastUpdatedDate(), $timezone);
39+
$currentDate = new \DateTime('now', $timezone);
40+
41+
\PHPUnit_Framework_Assert::assertTrue(
42+
$displayedDate->getTimestamp() > $initialDate->getTimestamp()
43+
&& $displayedDate->getTimestamp() < $currentDate->getTimestamp(),
4644
"Message in Sales Reports Page is displayed in an incorrect timezone."
4745
);
4846
}

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
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\SalesOrderReportEntityTest" summary="Sales Order Report" ticketId="MAGETWO-29136">
1010
<variation name="SalesOrderReportEntityTestVariation1" summary="Create sales order report, check report data and date" ticketId="MAGETWO-45399">
11-
<data name="issue" xsi:type="string">MAGETWO-97404: 2019-01-02: Tests fail Magento\Reports\Test\TestCase\SalesOrderReportEntityTest</data>
1211
<data name="order/dataset" xsi:type="string">default</data>
1312
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
1413
<data name="salesReport/report_type" xsi:type="string">Order Created</data>
@@ -23,7 +22,6 @@
2322
<constraint name="Magento\Reports\Test\Constraint\AssertReportStatisticsNoticeMessage" />
2423
</variation>
2524
<variation name="SalesOrderReportEntityTestVariation2">
26-
<data name="tag" xsi:type="string">stable:no</data>
2725
<data name="order/dataset" xsi:type="string">default</data>
2826
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
2927
<data name="salesReport/report_type" xsi:type="string">Order Created</data>
@@ -37,7 +35,6 @@
3735
<constraint name="Magento\Reports\Test\Constraint\AssertSalesReportTotalResult" />
3836
</variation>
3937
<variation name="SalesOrderReportEntityTestVariation3">
40-
<data name="tag" xsi:type="string">stable:no</data>
4138
<data name="order/dataset" xsi:type="string">default</data>
4239
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
4340
<data name="salesReport/report_type" xsi:type="string">Order Updated</data>
@@ -51,5 +48,19 @@
5148
<constraint name="Magento\Reports\Test\Constraint\AssertSalesReportIntervalResult" />
5249
<constraint name="Magento\Reports\Test\Constraint\AssertSalesReportTotalResult" />
5350
</variation>
51+
<variation name="SalesOrderReportEntityTestVariation4">
52+
<data name="order/dataset" xsi:type="string">default</data>
53+
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
54+
<data name="salesReport/report_type" xsi:type="string">Order Created</data>
55+
<data name="salesReport/period_type" xsi:type="string">Year</data>
56+
<data name="salesReport/from" xsi:type="string">12/31/Y 12:00 a-1 year</data>
57+
<data name="salesReport/to" xsi:type="string">m/d/Y 12:00</data>
58+
<data name="salesReport/show_order_statuses" xsi:type="string">Any</data>
59+
<data name="salesReport/show_empty_rows" xsi:type="string">Yes</data>
60+
<data name="salesReport/show_actual_columns" xsi:type="string">No</data>
61+
<constraint name="Magento\Reports\Test\Constraint\AssertSalesReportIntervalResult" />
62+
<constraint name="Magento\Reports\Test\Constraint\AssertSalesReportTotalResult" />
63+
<constraint name="Magento\Reports\Test\Constraint\AssertReportStatisticsNoticeMessage" />
64+
</variation>
5465
</testCase>
5566
</config>

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
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\SalesRefundsReportEntityTest" summary="Sales Refunds Report" ticketId="MAGETWO-29348">
1010
<variation name="SalesRefundsReportEntityTestVariation1">
11-
<data name="issue" xsi:type="string">MAGETWO-97404: 2019-01-02: Tests fail Magento\Reports\Test\TestCase\SalesOrderReportEntityTest</data>
1211
<data name="description" xsi:type="string">assert refunds year report</data>
1312
<data name="order/dataset" xsi:type="string">default</data>
1413
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
@@ -21,7 +20,6 @@
2120
<constraint name="Magento\Reports\Test\Constraint\AssertRefundReportIntervalResult" />
2221
</variation>
2322
<variation name="SalesRefundsReportEntityTestVariation2">
24-
<data name="tag" xsi:type="string">stable:no</data>
2523
<data name="description" xsi:type="string">assert refunds month report</data>
2624
<data name="order/dataset" xsi:type="string">default</data>
2725
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>
@@ -34,7 +32,6 @@
3432
<constraint name="Magento\Reports\Test\Constraint\AssertRefundReportIntervalResult" />
3533
</variation>
3634
<variation name="SalesRefundsReportEntityTestVariation3">
37-
<data name="tag" xsi:type="string">stable:no</data>
3835
<data name="description" xsi:type="string">assert refund Daily report</data>
3936
<data name="order/dataset" xsi:type="string">default</data>
4037
<data name="order/data/price/dataset" xsi:type="string">full_invoice</data>

dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Creditmemo/Totals.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ class Totals extends \Magento\Sales\Test\Block\Adminhtml\Order\Totals
5555
*/
5656
private $updateTotalsSelector = '.update-totals-button';
5757

58+
/**
59+
* Loader css selector.
60+
*
61+
* @var string
62+
*/
63+
private $loader = '[data-role="loader"]';
64+
5865
/**
5966
* Submit invoice.
6067
*
@@ -126,6 +133,22 @@ public function clickUpdateTotals()
126133
$button = $this->_rootElement->find($this->updateTotalsSelector);
127134
if (!$button->isDisabled()) {
128135
$button->click();
136+
$this->waitLoader();
129137
}
130138
}
139+
140+
/**
141+
* Wait loader to disappear.
142+
*
143+
* @return void
144+
*/
145+
private function waitLoader()
146+
{
147+
$this->browser->waitUntil(
148+
function () {
149+
$element = $this->browser->find($this->loader);
150+
return $element->isVisible() == false ? true : null;
151+
}
152+
);
153+
}
131154
}

dev/tests/functional/tests/app/Magento/Shipping/Test/TestCase/SalesShippingReportEntityTest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
99
<testCase name="Magento\Shipping\Test\TestCase\SalesShippingReportEntityTest" summary="Sales Shipping Report" ticketId="MAGETWO-40914">
1010
<variation name="SalesShippingReportEntityTestVariation1">
11-
<data name="issue" xsi:type="string">MAGETWO-97404: 2019-01-02: Tests fail Magento\Reports\Test\TestCase\SalesOrderReportEntityTest</data>
1211
<data name="order/dataset" xsi:type="string">default</data>
1312
<data name="order/data/price/dataset" xsi:type="string">full_shipment</data>
1413
<data name="shippingReport/report_type" xsi:type="string">Order Created</data>

dev/tests/functional/tests/app/Magento/Vault/Test/Block/StoredPayments.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@ class StoredPayments extends Block
2525
*/
2626
private $deleteStoredPayment = '.delete';
2727

28+
/**
29+
* Content in popup modal window.
30+
*
31+
* @var string
32+
*/
33+
private $popupModalContent = '.modal-content';
34+
2835
/**
2936
* Delete saved credit card.
3037
*
@@ -33,8 +40,10 @@ class StoredPayments extends Block
3340
public function deleteCreditCard(ElementInterface $creditCard)
3441
{
3542
$creditCard->click();
43+
$this->waitForElementVisible($this->popupModalContent);
3644
$this->browser->selectWindow();
3745
$this->browser->find($this->deleteButton, Locator::SELECTOR_XPATH)->click();
46+
$this->waitForElementNotVisible($this->popupModalContent);
3847
$this->browser->selectWindow();
3948
}
4049

0 commit comments

Comments
 (0)