Skip to content

Commit f05da75

Browse files
committed
Merge remote-tracking branches 'local/ACP2E-1105', 'local/ACP2E-1199', 'local/ACP2E-1277' and 'local/ACP2E-961' into PR_combine
5 parents b4f87e9 + 3f3ba70 + 9273c13 + 256ec82 + 4660440 commit f05da75

File tree

26 files changed

+574
-26
lines changed

26 files changed

+574
-26
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
11+
<actionGroup name="GuestCheckoutFillingShippingWithMultipleStreetLinesSectionActionGroup">
12+
<annotations>
13+
<description>Fills in the provided Customer/Address (Including Region) details on the Storefront Checkout page under the 'Shipping Address' section. Selects the provided Shipping Method. Clicks on Next. Validates that the URL is present and correct.</description>
14+
</annotations>
15+
<arguments>
16+
<argument name="customerVar" defaultValue="CustomerEntityOne"/>
17+
<argument name="customerAddressVar" defaultValue="CustomerAddressSimple"/>
18+
<!--First available shipping method will be selected if value is not passed for shippingMethod-->
19+
<argument name="shippingMethod" defaultValue="" type="string"/>
20+
</arguments>
21+
22+
<waitForElementVisible selector="{{CheckoutShippingSection.email}}" stepKey="waitForEmailField"/>
23+
<fillField selector="{{CheckoutShippingSection.email}}" userInput="{{customerVar.email}}" stepKey="enterEmail"/>
24+
<fillField selector="{{CheckoutShippingSection.firstName}}" userInput="{{customerVar.firstname}}" stepKey="enterFirstName"/>
25+
<fillField selector="{{CheckoutShippingSection.lastName}}" userInput="{{customerVar.lastname}}" stepKey="enterLastName"/>
26+
<fillField selector="{{CheckoutShippingSection.street}}" userInput="{{customerAddressVar.street[0]}}" stepKey="enterStreet1"/>
27+
<fillField selector="{{CheckoutShippingSection.street4}}" userInput="{{customerAddressVar.street[3]}}" stepKey="enterStreet4"/>
28+
<fillField selector="{{CheckoutShippingSection.city}}" userInput="{{customerAddressVar.city}}" stepKey="enterCity"/>
29+
<selectOption selector="{{CheckoutShippingSection.region}}" userInput="{{customerAddressVar.state}}" stepKey="selectRegion"/>
30+
<fillField selector="{{CheckoutShippingSection.postcode}}" userInput="{{customerAddressVar.postcode}}" stepKey="enterPostcode"/>
31+
<fillField selector="{{CheckoutShippingSection.telephone}}" userInput="{{customerAddressVar.telephone}}" stepKey="enterTelephone"/>
32+
<waitForPageLoad stepKey="waitForLoadingMask"/>
33+
<waitForElementClickable selector="{{CheckoutShippingMethodsSection.checkShippingMethodByName('shippingMethod')}}" stepKey="waitForShippingMethod"/>
34+
<click selector="{{CheckoutShippingMethodsSection.checkShippingMethodByName('shippingMethod')}}" stepKey="selectShippingMethod"/>
35+
<waitForPageLoad stepKey="waitForShippingLoading"/>
36+
<waitForElementVisible selector="{{CheckoutShippingSection.next}}" time="30" stepKey="waitForNextButton"/>
37+
<click selector="{{CheckoutShippingSection.next}}" stepKey="clickNext"/>
38+
<waitForPageLoad stepKey="waitForPaymentLoading"/>
39+
<waitForElementVisible selector="{{CheckoutPaymentSection.paymentSectionTitle}}" time="30" stepKey="waitForPaymentSectionLoaded"/>
40+
<seeInCurrentUrl url="{{CheckoutPage.url}}/#payment" stepKey="assertCheckoutPaymentUrl"/>
41+
</actionGroup>
42+
</actionGroups>

app/code/Magento/Checkout/Test/Mftf/Section/CheckoutPaymentSection.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<element name="guestFirstName" type="input" selector=".payment-method._active .billing-address-form input[name='firstname']"/>
2323
<element name="guestLastName" type="input" selector=".payment-method._active .billing-address-form input[name*='lastname']"/>
2424
<element name="guestStreet" type="input" selector=".payment-method._active .billing-address-form input[name*='street[0]']"/>
25+
<element name="guestStreet2" type="input" selector=".payment-method._active .billing-address-form input[name*='street[1]']"/>
26+
<element name="guestStreet3" type="input" selector=".payment-method._active .billing-address-form input[name*='street[2]']"/>
27+
<element name="guestStreet4" type="input" selector=".payment-method._active .billing-address-form input[name*='street[3]']"/>
2528
<element name="guestCity" type="input" selector=".payment-method._active .billing-address-form input[name*='city']"/>
2629
<element name="guestCountry" type="select" selector=".payment-method._active .billing-address-form select[name*='country_id']"/>
2730
<element name="guestRegion" type="select" selector=".payment-method._active .billing-address-form select[name*='region_id']"/>

app/code/Magento/Checkout/Test/Mftf/Section/CheckoutShippingSection.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
<element name="company" type="input" selector="input[name=company]"/>
2424
<element name="street" type="input" selector="input[name='street[0]']"/>
2525
<element name="street2" type="input" selector="input[name='street[1]']"/>
26+
<element name="street3" type="input" selector="input[name='street[2]']"/>
27+
<element name="street4" type="input" selector="input[name='street[3]']"/>
2628
<element name="city" type="input" selector="input[name=city]"/>
2729
<element name="region" type="select" selector="select[name=region_id]"/>
2830
<element name="postcode" type="input" selector="input[name=postcode]"/>

app/code/Magento/Checkout/Test/Mftf/Test/OnePageCheckoutCancelEditingBillingAddress.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
<createData entity="SimpleProduct2" stepKey="createSimpleProduct">
2424
<field key="price">160</field>
2525
</createData>
26+
<!-- Flat Rate Shipping method default setup -->
27+
<createData entity="FlatRateShippingMethodDefault" stepKey="setDefaultFlatRateShippingMethod"/>
2628
</before>
2729
<after>
2830
<!-- Delete created product -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="StorefrontGuestCheckoutAddNewAddressTest">
11+
<annotations>
12+
<features value="Checkout"/>
13+
<stories value="Checkout via Guest Checkout"/>
14+
<title value="Guest Checkout - guest should be able to add new shipping / billing address with blank lines through checkout process."/>
15+
<description value="Should be able to place an order as a Guest while adding a new shipping / billing address by keeping the added blank lines."/>
16+
<severity value="AVERAGE"/>
17+
<useCaseId value="ACP2E-1105"/>
18+
<testCaseId value="AC-6439"/>
19+
<group value="checkout"/>
20+
</annotations>
21+
<before>
22+
<createData entity="_defaultCategory" stepKey="createCategory"/>
23+
<createData entity="ApiSimpleProduct" stepKey="createProduct">
24+
<requiredEntity createDataKey="createCategory"/>
25+
</createData>
26+
<magentoCLI command="config:set customer/address/street_lines 4" stepKey="setStreetLineNo"/>
27+
<magentoCLI command="cache:clean config" stepKey="cacheCleanBefore"/>
28+
</before>
29+
<after>
30+
<actionGroup ref="AdminLogoutActionGroup" stepKey="adminLogout"/>
31+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
32+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
33+
<magentoCLI command="config:set customer/address/street_lines 2" stepKey="resetStreetLineNo"/>
34+
<magentoCLI command="cache:clean config" stepKey="cacheCleanAfter"/>
35+
</after>
36+
37+
<amOnPage url="{{StorefrontCategoryPage.url($$createCategory.custom_attributes[url_key]$$)}}" stepKey="onCategoryPage"/>
38+
<waitForPageLoad stepKey="waitForPageLoad1"/>
39+
<actionGroup ref="StorefrontHoverProductOnCategoryPageActionGroup" stepKey="hoverProduct"/>
40+
<actionGroup ref="StorefrontClickAddToCartButtonActionGroup" stepKey="addToCart"/>
41+
<waitForElementVisible selector="{{StorefrontCategoryMainSection.SuccessMsg}}" time="30" stepKey="waitForProductAdded"/>
42+
<see selector="{{StorefrontCategoryMainSection.SuccessMsg}}" userInput="You added $$createProduct.name$$ to your shopping cart." stepKey="seeAddedToCartMessage"/>
43+
<see selector="{{StorefrontMinicartSection.quantity}}" userInput="1" stepKey="seeCartQuantity"/>
44+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="guestGoToCheckoutFromMinicart"/>
45+
<actionGroup ref="GuestCheckoutFillingShippingWithMultipleStreetLinesSectionActionGroup" stepKey="guestCheckoutFillingShippingSection">
46+
<argument name="customerVar" value="CustomerEntityOne"/>
47+
<argument name="customerAddressVar" value="US_Address_Empty_Street_Lines"/>
48+
</actionGroup>
49+
<actionGroup ref="CheckoutSelectCheckMoneyOrderPaymentActionGroup" stepKey="guestSelectCheckMoneyOrderPayment"/>
50+
<actionGroup ref="CheckBillingAddressInCheckoutActionGroup" stepKey="guestSeeAddress">
51+
<argument name="customerVar" value="CustomerEntityOne"/>
52+
<argument name="customerAddressVar" value="US_Address_Empty_Street_Lines"/>
53+
</actionGroup>
54+
<actionGroup ref="CheckoutPlaceOrderActionGroup" stepKey="guestPlaceorder">
55+
<argument name="orderNumberMessage" value="CONST.successGuestCheckoutOrderNumberMessage"/>
56+
<argument name="emailYouMessage" value="CONST.successCheckoutEmailYouMessage"/>
57+
</actionGroup>
58+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber}}" stepKey="grabOrderNumber"/>
59+
60+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin1"/>
61+
62+
<amOnPage url="{{AdminOrdersPage.url}}" stepKey="onOrdersPage"/>
63+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappearOnOrdersPage"/>
64+
<actionGroup ref="ClearFiltersAdminDataGridActionGroup" stepKey="clearGridFilter"/>
65+
<fillField selector="{{AdminOrdersGridSection.search}}" userInput="{$grabOrderNumber}" stepKey="fillOrderNum"/>
66+
<click selector="{{AdminOrdersGridSection.submitSearch}}" stepKey="submitSearchOrderNum"/>
67+
<waitForLoadingMaskToDisappear stepKey="waitForLoadingMaskToDisappearOnSearch"/>
68+
<actionGroup ref="AdminOrderGridClickFirstRowActionGroup" stepKey="clickOrderRow"/>
69+
<see selector="{{AdminOrderDetailsInformationSection.orderStatus}}" userInput="Pending" stepKey="seeAdminOrderStatus"/>
70+
<see selector="{{AdminOrderDetailsInformationSection.accountInformation}}" userInput="{{CustomerEntityOne.fullname}}" stepKey="seeAdminOrderGuest"/>
71+
<see selector="{{AdminOrderDetailsInformationSection.accountInformation}}" userInput="{{CustomerEntityOne.email}}" stepKey="seeAdminOrderEmail"/>
72+
<see selector="{{AdminOrderDetailsInformationSection.shippingAddress}}" userInput="{{US_Address_Empty_Street_Lines.street[0]}}" stepKey="seeAdminOrderShippingAddress1"/>
73+
<see selector="{{AdminOrderDetailsInformationSection.shippingAddress}}" userInput="{{US_Address_Empty_Street_Lines.street[3]}}" stepKey="seeAdminOrderShippingAddress4"/>
74+
<see selector="{{AdminOrderDetailsInformationSection.itemsOrdered}}" userInput="$$createProduct.name$$" stepKey="seeAdminOrderProduct"/>
75+
<click selector="{{AdminShipmentAddressInformationSection.shippingAddressEdit}}" stepKey="goToShippingAddress"/>
76+
<waitForPageLoad stepKey="waitForPageToLoad"/>
77+
<seeInField selector="{{AdminOrderEditShippingAddressSection.StreetLine1}}" userInput="{{US_Address_Empty_Street_Lines.street[0]}}" stepKey="seeAdminOrderEditShippingAddress1" />
78+
<seeInField selector="{{AdminOrderEditShippingAddressSection.StreetLine4}}" userInput="{{US_Address_Empty_Street_Lines.street[3]}}" stepKey="seeAdminOrderEditShippingAddress4" />
79+
</test>
80+
</tests>

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
@@ -40,7 +40,7 @@ define([
4040
regionCode: addressData.region ? addressData.region['region_code'] : null,
4141
region: addressData.region ? addressData.region.region : null,
4242
customerId: addressData['customer_id'] || addressData.customerId,
43-
street: addressData.street ? _.compact(addressData.street) : addressData.street,
43+
street: addressData.street,
4444
company: addressData.company,
4545
telephone: addressData.telephone,
4646
fax: addressData.fax,

app/code/Magento/Checkout/view/frontend/web/template/billing-address/details.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<if args="currentBillingAddress().company">
1212
<text args="currentBillingAddress().company"></text><br>
1313
</if>
14-
<text args="_.values(currentBillingAddress().street).join(', ')"></text><br>
14+
<text args="_.values(_.compact(currentBillingAddress().street)).join(', ')"></text><br>
1515
<text args="currentBillingAddress().city "></text>, <span text="currentBillingAddress().region"></span>
1616
<text args="currentBillingAddress().postcode"></text><br>
1717
<text args="getCountryName(currentBillingAddress().countryId)"></text><br>

app/code/Magento/Checkout/view/frontend/web/template/shipping-address/address-renderer/default.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<if args="address().company">
1111
<text args="address().company"></text><br>
1212
</if>
13-
<text args="_.values(address().street).join(', ')"></text><br>
13+
<text args="_.values(_.compact(address().street)).join(', ')"></text><br>
1414
<text args="address().city "></text>, <span text="address().region"></span> <text args="address().postcode"></text><br>
1515
<text args="getCountryName(address().countryId)"></text><br>
1616
<a if="address().telephone" attr="'href': 'tel:' + address().telephone" text="address().telephone"></a><br>

app/code/Magento/Checkout/view/frontend/web/template/shipping-information/address-renderer/default.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<if args="address().company">
1111
<text args="address().company"></text><br>
1212
</if>
13-
<text args="_.values(address().street).join(', ')"></text><br>
13+
<text args="_.values(_.compact(address().street)).join(', ')"></text><br>
1414
<text args="address().city "></text>, <span text="address().region"></span> <text args="address().postcode"></text><br>
1515
<text args="getCountryName(address().countryId)"></text><br>
1616
<a if="address().telephone" attr="'href': 'tel:' + address().telephone" text="address().telephone"></a><br>

app/code/Magento/Customer/Controller/Adminhtml/Index/Save.php

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
use Magento\Framework\View\Result\PageFactory;
4747
use Magento\Newsletter\Model\SubscriberFactory;
4848
use Magento\Newsletter\Model\SubscriptionManagerInterface;
49+
use Magento\Store\Model\StoreManagerInterface;
4950

5051
/**
5152
* Save customer action.
@@ -69,6 +70,11 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Index implements HttpP
6970
*/
7071
private $addressRegistry;
7172

73+
/**
74+
* @var StoreManagerInterface
75+
*/
76+
private $storeManager;
77+
7278
/**
7379
* Constructor
7480
*
@@ -99,6 +105,7 @@ class Save extends \Magento\Customer\Controller\Adminhtml\Index implements HttpP
99105
* @param JsonFactory $resultJsonFactory
100106
* @param SubscriptionManagerInterface $subscriptionManager
101107
* @param AddressRegistry|null $addressRegistry
108+
* @param StoreManagerInterface|null $storeManager
102109
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
103110
*/
104111
public function __construct(
@@ -128,7 +135,8 @@ public function __construct(
128135
ForwardFactory $resultForwardFactory,
129136
JsonFactory $resultJsonFactory,
130137
SubscriptionManagerInterface $subscriptionManager,
131-
AddressRegistry $addressRegistry = null
138+
AddressRegistry $addressRegistry = null,
139+
?StoreManagerInterface $storeManager = null
132140
) {
133141
parent::__construct(
134142
$context,
@@ -159,6 +167,7 @@ public function __construct(
159167
);
160168
$this->subscriptionManager = $subscriptionManager;
161169
$this->addressRegistry = $addressRegistry ?: ObjectManager::getInstance()->get(AddressRegistry::class);
170+
$this->storeManager = $storeManager ?? ObjectManager::getInstance()->get(StoreManagerInterface::class);
162171
}
163172

164173
/**
@@ -249,6 +258,7 @@ protected function _extractData(
249258
* @param array $extractedCustomerData
250259
* @return array
251260
* @deprecated 102.0.1 must be removed because addresses are save separately for now
261+
* @see \Magento\Customer\Controller\Adminhtml\Address\Save
252262
*/
253263
protected function saveDefaultFlags(array $addressIdList, array &$extractedCustomerData)
254264
{
@@ -291,6 +301,7 @@ protected function saveDefaultFlags(array $addressIdList, array &$extractedCusto
291301
* @param array $extractedCustomerData
292302
* @return array
293303
* @deprecated 102.0.1 addresses are saved separately for now
304+
* @see \Magento\Customer\Controller\Adminhtml\Address\Save
294305
*/
295306
protected function _extractCustomerAddressData(array &$extractedCustomerData)
296307
{
@@ -359,6 +370,13 @@ public function execute()
359370
}
360371
}
361372

373+
$storeId = $customer->getStoreId();
374+
if (empty($storeId)) {
375+
$website = $this->storeManager->getWebsite($customer->getWebsiteId());
376+
$storeId = current($website->getStoreIds());
377+
}
378+
$this->storeManager->setCurrentStore($storeId);
379+
362380
// Save customer
363381
if ($customerId) {
364382
$this->_customerRepository->save($customer);
@@ -465,6 +483,7 @@ private function updateSubscriptions(CustomerInterface $customer): void
465483
*
466484
* @return EmailNotificationInterface
467485
* @deprecated 100.1.0
486+
* @see no alternative
468487
*/
469488
private function getEmailNotification()
470489
{

0 commit comments

Comments
 (0)