Skip to content

Commit 0c6a51b

Browse files
committed
Merge remote-tracking branch 'origin/imported-magento-magento2-32107' into 2.4-develop-pr126
2 parents 60435c2 + 9809a3d commit 0c6a51b

File tree

4 files changed

+153
-51
lines changed

4 files changed

+153
-51
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AssertAdminPaymentMethodRadioButtonExistsOnCreateOrderPageActionGroup">
11+
<annotations>
12+
<description>Checks the provided payment method radio button presents on the Admin Create Order page.</description>
13+
</annotations>
14+
<arguments>
15+
<argument name="paymentMethodName" type="string" defaultValue="Check / Money order"/>
16+
</arguments>
17+
18+
<conditionalClick selector="{{AdminOrderFormPaymentSection.linkPaymentOptions}}" dependentSelector="{{AdminOrderFormPaymentSection.linkPaymentOptions}}" visible="true" stepKey="clickGetAvailablePaymentMethods"/>
19+
<waitForElementVisible selector="{{AdminOrderFormPaymentSection.paymentBlock}}" stepKey="waitForPaymentOptions"/>
20+
<seeElement selector="{{AdminOrderFormPaymentSection.paymentLabelWithRadioButton(paymentMethodName)}}" stepKey="seeLabelWithRadioButton"/>
21+
</actionGroup>
22+
</actionGroups>

app/code/Magento/Sales/Test/Mftf/Section/AdminOrderFormPaymentSection.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
<element name="purchaseOrderOption" type="radio" selector="#p_method_purchaseorder" timeout="30"/>
3030
<element name="purchaseOrderNumber" type="input" selector="#po_number"/>
3131
<element name="freePaymentLabel" type="text" selector="#order-billing_method_form label[for='p_method_free']"/>
32+
<element name="paymentLabelWithRadioButton" type="text" selector="#order-billing_method_form .admin__field-option input[title='{{paymentMethodName}}'] + label" parameterized="true"/>
3233
</section>
3334
</sections>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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="AdminCheckingPaymentMethodRadioButtonPresentAfterReloadOrderPageTest">
11+
<annotations>
12+
<features value="Sales"/>
13+
<stories value="Create order in Admin"/>
14+
<title value="Checking payment method radio button is presented after reloading the order page"/>
15+
<description value="Checking payment method radio button is presented after reloading the order page"/>
16+
<severity value="AVERAGE"/>
17+
<testCaseId value="MC-40878"/>
18+
<useCaseId value="MC-40013"/>
19+
<group value="sales"/>
20+
</annotations>
21+
<before>
22+
<!-- Enable Check/Money order payment method -->
23+
<magentoCLI command="config:set {{EnablePaymentCheckMOConfigData.path}} {{EnablePaymentCheckMOConfigData.value}}" stepKey="enableCheckMoneyOrderPayment"/>
24+
<!-- Enable Bank Transfer Payment method -->
25+
<magentoCLI command="config:set {{EnablePaymentBankTransferConfigData.path}} {{EnablePaymentBankTransferConfigData.value}}" stepKey="enableBankTransferPayment"/>
26+
<!-- Create simple product -->
27+
<createData entity="SimpleProduct2" stepKey="createProduct"/>
28+
<!-- Create customer -->
29+
<createData entity="Simple_US_Customer" stepKey="createCustomer"/>
30+
<!-- Login to Admin page -->
31+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
32+
</before>
33+
<after>
34+
<!-- Disable Bank Transfer Payment method -->
35+
<magentoCLI command="config:set {{DisablePaymentBankTransferConfigData.path}} {{DisablePaymentBankTransferConfigData.value}}" stepKey="disableBankTransferPayment"/>
36+
<!-- Delete entities -->
37+
<deleteData createDataKey="createProduct" stepKey="deleteProduct"/>
38+
<deleteData createDataKey="createCustomer" stepKey="deleteCustomer"/>
39+
<!-- Logout from Admin page -->
40+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdmin"/>
41+
</after>
42+
43+
<!-- Create new order -->
44+
<actionGroup ref="NavigateToNewOrderPageExistingCustomerActionGroup" stepKey="navigateToNewOrderWithExistingCustomer">
45+
<argument name="customer" value="$createCustomer$"/>
46+
</actionGroup>
47+
48+
<!-- Add Simple product to order -->
49+
<actionGroup ref="AddSimpleProductToOrderActionGroup" stepKey="addSimpleProductToTheOrder">
50+
<argument name="product" value="$createProduct$"/>
51+
</actionGroup>
52+
53+
<!-- Assert label with radio button presents on the page -->
54+
<actionGroup ref="AssertAdminPaymentMethodRadioButtonExistsOnCreateOrderPageActionGroup" stepKey="assertCheckMORadioButtonIsPresent"/>
55+
<actionGroup ref="AssertAdminPaymentMethodRadioButtonExistsOnCreateOrderPageActionGroup" stepKey="assertBankTransferRadioButtonIsPresent">
56+
<argument name="paymentMethodName" value="Bank Transfer Payment"/>
57+
</actionGroup>
58+
59+
<actionGroup ref="ReloadPageActionGroup" stepKey="reloadPage"/>
60+
61+
<!-- Assert label with radio button presents after reload the page -->
62+
<actionGroup ref="AssertAdminPaymentMethodRadioButtonExistsOnCreateOrderPageActionGroup" stepKey="assertCheckMORadioButtonIsPresentAfterReload"/>
63+
<actionGroup ref="AssertAdminPaymentMethodRadioButtonExistsOnCreateOrderPageActionGroup" stepKey="assertBankTransferRadioButtonIsPresentAfterReload">
64+
<argument name="paymentMethodName" value="Bank Transfer Payment"/>
65+
</actionGroup>
66+
</test>
67+
</tests>

app/code/Magento/Sales/view/adminhtml/templates/order/create/billing/method/form.phtml

Lines changed: 63 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,68 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
7+
use Magento\Framework\Escaper;
8+
use Magento\Framework\View\Helper\SecureHtmlRenderer;
9+
use Magento\Sales\Block\Adminhtml\Order\Create\Billing\Method\Form as BillingMethodForm;
10+
11+
/**
12+
* @var BillingMethodForm $block
13+
* @var Escaper $escaper
14+
* @var SecureHtmlRenderer $secureRenderer
15+
*/
816
?>
917
<?php if ($block->hasMethods()): ?>
10-
<div id="order-billing_method_form">
11-
<dl class="admin__payment-methods control">
12-
<?php
13-
$_methods = $block->getMethods();
14-
$_methodsCount = count($_methods);
15-
$_counter = 0;
16-
$currentSelectedMethod = $block->getSelectedMethodCode();
17-
?>
18-
<?php foreach ($_methods as $_method):
19-
$_code = $_method->getCode();
20-
$_counter++;
21-
?>
22-
<dt class="admin__field-option">
23-
<?php if ($_methodsCount > 1): ?>
24-
<input id="p_method_<?= $block->escapeHtmlAttr($_code); ?>"
25-
value="<?= $block->escapeHtmlAttr($_code); ?>"
26-
type="radio" name="payment[method]"
27-
title="<?= $block->escapeHtmlAttr($_method->getTitle()); ?>"
28-
<?php if ($currentSelectedMethod == $_code): ?>
29-
checked="checked"
18+
<div id="order-billing_method_form">
19+
<dl class="admin__payment-methods control">
20+
<?php
21+
$_methods = $block->getMethods();
22+
$_methodsCount = count($_methods);
23+
$_counter = 0;
24+
$currentSelectedMethod = $block->getSelectedMethodCode();
25+
?>
26+
<?php foreach ($_methods as $_method):
27+
$_code = $_method->getCode();
28+
$_counter++;
29+
?>
30+
<dt class="admin__field-option">
31+
<?php if ($_methodsCount > 1): ?>
32+
<input id="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>"
33+
value="<?= $escaper->escapeHtmlAttr($_code); ?>"
34+
type="radio" name="payment[method]"
35+
title="<?= $escaper->escapeHtmlAttr($_method->getTitle()); ?>"
36+
<?php if ($currentSelectedMethod == $_code): ?>
37+
checked="checked"
38+
<?php endif; ?>
39+
data-validate="{'validate-one-required-by-name':true}"
40+
class="admin__control-radio"/>
41+
<?php else: ?>
42+
<span class="no-display">
43+
<input id="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>"
44+
value="<?= $escaper->escapeHtmlAttr($_code); ?>"
45+
type="radio"
46+
name="payment[method]" class="admin__control-radio"
47+
checked="checked"/>
48+
</span>
3049
<?php endif; ?>
31-
data-validate="{'validate-one-required-by-name':true}"
32-
class="admin__control-radio"/>
33-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
34-
'onclick',
35-
"payment.switchMethod('" . $block->escapeJs($_code) . "')",
36-
'input#p_method_' . $block->escapeJs($_code)
37-
) ?>
38-
<?php else:?>
39-
<span class="no-display">
40-
<input id="p_method_<?= $block->escapeHtmlAttr($_code); ?>"
41-
value="<?= $block->escapeHtmlAttr($_code); ?>"
42-
type="radio"
43-
name="payment[method]" class="admin__control-radio"
44-
checked="checked"/>
45-
</span>
46-
<?php endif;?>
4750

48-
<label class="admin__field-label" for="p_method_<?= $block->escapeHtmlAttr($_code); ?>">
49-
<?= $block->escapeHtml($_method->getTitle()) ?>
50-
</label>
51-
</dt>
52-
<dd class="admin__payment-method-wrapper">
53-
<?= $block->getChildHtml('payment.method.' . $_code) ?>
54-
</dd>
55-
<?php endforeach; ?>
56-
</dl>
57-
</div>
51+
<label class="admin__field-label" for="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>">
52+
<?= $escaper->escapeHtml($_method->getTitle()) ?>
53+
</label>
54+
55+
<?php if ($_methodsCount > 1): ?>
56+
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
57+
'onclick',
58+
"payment.switchMethod('" . $escaper->escapeJs($_code) . "')",
59+
'input#p_method_' . $escaper->escapeJs($_code)
60+
) ?>
61+
<?php endif; ?>
62+
</dt>
63+
<dd class="admin__payment-method-wrapper">
64+
<?= $block->getChildHtml('payment.method.' . $_code) ?>
65+
</dd>
66+
<?php endforeach; ?>
67+
</dl>
68+
</div>
5869
<?php $scriptString = <<<script
5970
require([
6071
'mage/apply/main',
@@ -65,11 +76,11 @@
6576
script;
6677
if ($_methodsCount !== 1):
6778
$scriptString .= <<<script
68-
order.setPaymentMethod('{$block->escapeJs($currentSelectedMethod)}');
79+
order.setPaymentMethod('{$escaper->escapeJs($currentSelectedMethod)}');
6980
script;
7081
else:
7182
$scriptString .= <<<script
72-
payment.switchMethod('{$block->escapeJs($currentSelectedMethod)}');
83+
payment.switchMethod('{$escaper->escapeJs($currentSelectedMethod)}');
7384
script;
7485
endif;
7586
$scriptString .= <<<script
@@ -78,7 +89,8 @@ script;
7889
7990
script;
8091
?>
81-
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
92+
<?= /* @noEscape */
93+
$secureRenderer->renderTag('script', [], $scriptString, false) ?>
8294
<?php else: ?>
83-
<div class="admin__message-empty"><?= $block->escapeHtml(__('No Payment Methods')); ?></div>
95+
<div class="admin__message-empty"><?= $escaper->escapeHtml(__('No Payment Methods')); ?></div>
8496
<?php endif; ?>

0 commit comments

Comments
 (0)