Skip to content

Commit 3d35dd7

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-57405' into 2.1.8-develop-pr24
2 parents 4835b5f + a56a946 commit 3d35dd7

File tree

6 files changed

+113
-1
lines changed

6 files changed

+113
-1
lines changed

app/code/Magento/Checkout/view/frontend/web/js/model/new-customer-address.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ define([], function () {
3030
company: addressData.company,
3131
telephone: addressData.telephone,
3232
fax: addressData.fax,
33-
postcode: addressData.postcode ? addressData.postcode : window.checkoutConfig.defaultPostcode,
33+
postcode: addressData.postcode ? addressData.postcode : window.checkoutConfig.defaultPostcode || undefined,
3434
city: addressData.city,
3535
firstname: addressData.firstname,
3636
lastname: addressData.lastname,

dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,14 @@ public function clickPopupNewAddressButton()
157157
{
158158
$this->_rootElement->find($this->popupSelector)->click();
159159
}
160+
161+
/**
162+
* Returns form's required elements.
163+
*
164+
* @return \Magento\Mtf\Client\ElementInterface[]
165+
*/
166+
public function getRequiredFields()
167+
{
168+
return $this->_rootElement->getElements("div .field._required");
169+
}
160170
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Checkout\Test\Constraint;
8+
9+
use Magento\Checkout\Test\Page\CheckoutOnepage;
10+
use Magento\Mtf\Constraint\AbstractConstraint;
11+
12+
/**
13+
* Class AssertShippingAddressJsValidationMessagesIsAbsent
14+
* Assert js validation messages are absent for required fields.
15+
*/
16+
class AssertShippingAddressJsValidationMessagesIsAbsent extends AbstractConstraint
17+
{
18+
/**
19+
* Assert js validation messages are absent for required fields.
20+
*
21+
* @param CheckoutOnepage $checkoutOnepage
22+
* @return void
23+
*/
24+
public function processAssert(CheckoutOnepage $checkoutOnepage)
25+
{
26+
$requiredFields = $checkoutOnepage->getShippingBlock()->getRequiredFields();
27+
28+
/** @var \Magento\Mtf\Client\ElementInterface $field */
29+
foreach ($requiredFields as $field) {
30+
$errorContainer = $field->find("div .field-error");
31+
\PHPUnit_Framework_Assert::assertFalse(
32+
$errorContainer->isVisible(),
33+
'Js validation error messages must be absent for required fields after checkout start.'
34+
);
35+
}
36+
}
37+
38+
/**
39+
* Returns string representation of successful assertion.
40+
*
41+
* @return string
42+
*/
43+
public function toString()
44+
{
45+
return 'Js validation messages are absent for required fields.';
46+
}
47+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Checkout\Test\TestCase;
8+
9+
use Magento\Mtf\TestCase\Scenario;
10+
11+
/**
12+
* Steps:
13+
* 1. Go to Frontend as guest.
14+
* 2. Add simple product to shopping cart
15+
* 3. Go to shopping cart page
16+
* 4. Proceed to checkout
17+
* 5. Perform assertions.
18+
*
19+
* @group One_Page_Checkout
20+
* @ZephyrId MAGETWO-64190
21+
*/
22+
class OnePageCheckoutJsValidationTest extends Scenario
23+
{
24+
/**
25+
* Runs one page checkout js validation test.
26+
*
27+
* @return void
28+
*/
29+
public function test()
30+
{
31+
$this->executeScenario();
32+
}
33+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2013-2017 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/etc/variations.xsd">
9+
<testCase name="Magento\Checkout\Test\TestCase\OnePageCheckoutJsValidationTest" summary="JS validation verification for Checkout flow" ticketId="MAGETWO-64190">
10+
<variation name="OnePageCheckoutJsValidationTestVariation1" summary="JS validation is not applied for empty required checkout fields if customer did not fill them">
11+
<data name="products/0" xsi:type="string">catalogProductSimple::default</data>
12+
<data name="checkoutMethod" xsi:type="string">guest</data>
13+
<constraint name="Magento\Checkout\Test\Constraint\AssertShippingAddressJsValidationMessagesIsAbsent" />
14+
</variation>
15+
</testCase>
16+
</config>

dev/tests/functional/tests/app/Magento/Checkout/Test/etc/testcase.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,10 @@
2828
<step name="addProductsToTheCart" module="Magento_Checkout" next="removeProductsFromTheCart" />
2929
<step name="removeProductsFromTheCart" module="Magento_Checkout" />
3030
</scenario>
31+
<scenario name="OnePageCheckoutJsValidationTest" firstStep="setupConfiguration">
32+
<step name="setupConfiguration" module="Magento_Config" next="createProducts" />
33+
<step name="createProducts" module="Magento_Catalog" next="addProductsToTheCart" />
34+
<step name="addProductsToTheCart" module="Magento_Checkout" next="ProceedToCheckout" />
35+
<step name="ProceedToCheckout" module="Magento_Checkout" />
36+
</scenario>
3137
</config>

0 commit comments

Comments
 (0)