Skip to content

Commit 41b7991

Browse files
authored
ENGCOM-7147: Fix issue 27162 sort order link incorrect compare #27340
2 parents f5d8131 + b7a311c commit 41b7991

File tree

14 files changed

+60
-36
lines changed

14 files changed

+60
-36
lines changed

app/code/Magento/Customer/Block/Account/Navigation.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
namespace Magento\Customer\Block\Account;
99

10-
use \Magento\Framework\View\Element\Html\Links;
11-
use \Magento\Customer\Block\Account\SortLinkInterface;
10+
use Magento\Framework\View\Element\Html\Links;
11+
use Magento\Customer\Block\Account\SortLinkInterface;
1212

1313
/**
1414
* Class for sorting links in navigation panels.
@@ -19,7 +19,7 @@
1919
class Navigation extends Links
2020
{
2121
/**
22-
* {@inheritdoc}
22+
* @inheritdoc
2323
* @since 100.2.0
2424
*/
2525
public function getLinks()
@@ -47,6 +47,6 @@ public function getLinks()
4747
*/
4848
private function compare(SortLinkInterface $firstLink, SortLinkInterface $secondLink): int
4949
{
50-
return $secondLink->getSortOrder() <=> $firstLink->getSortOrder();
50+
return $firstLink->getSortOrder() <=> $secondLink->getSortOrder();
5151
}
5252
}

app/code/Magento/Customer/Test/Unit/Block/Account/NavigationTest.php

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818

1919
class NavigationTest extends TestCase
2020
{
21+
/**
22+
* Stub name top links
23+
*/
24+
private const STUB_TOP_LINKS_NAME_IN_LAYOUT = 'top.links';
25+
2126
/**
2227
* @var ObjectManagerHelper
2328
*/
@@ -62,7 +67,7 @@ protected function setUp(): void
6267
*
6368
* @return void
6469
*/
65-
public function testGetLinksWithCustomerAndWishList()
70+
public function testGetLinksWithCustomerAndWishList(): void
6671
{
6772
$wishListLinkMock = $this->getMockBuilder(WishListLink::class)
6873
->disableOriginalConstructor()
@@ -76,30 +81,30 @@ public function testGetLinksWithCustomerAndWishList()
7681

7782
$wishListLinkMock->expects($this->any())
7883
->method('getSortOrder')
79-
->willReturn(100);
84+
->willReturn(30);
8085

8186
$customerAccountLinkMock->expects($this->any())
8287
->method('getSortOrder')
83-
->willReturn(20);
88+
->willReturn(0);
8489

85-
$nameInLayout = 'top.links';
90+
$topLinksNameInLayout = self::STUB_TOP_LINKS_NAME_IN_LAYOUT;
8691

8792
$blockChildren = [
88-
'wishListLink' => $wishListLinkMock,
89-
'customerAccountLink' => $customerAccountLinkMock
93+
'customerAccountLink' => $customerAccountLinkMock,
94+
'wishListLink' => $wishListLinkMock
9095
];
9196

92-
$this->navigation->setNameInLayout($nameInLayout);
97+
$this->navigation->setNameInLayout($topLinksNameInLayout);
9398
$this->layoutMock->expects($this->any())
9499
->method('getChildBlocks')
95-
->with($nameInLayout)
100+
->with($topLinksNameInLayout)
96101
->willReturn($blockChildren);
97102

98103
/* Assertion */
99104
$this->assertEquals(
100105
[
101-
0 => $wishListLinkMock,
102-
1 => $customerAccountLinkMock
106+
0 => $customerAccountLinkMock,
107+
1 => $wishListLinkMock
103108
],
104109
$this->navigation->getLinks()
105110
);

app/code/Magento/Customer/view/frontend/layout/customer_account.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,31 @@
2424
<arguments>
2525
<argument name="label" xsi:type="string" translate="true">My Account</argument>
2626
<argument name="path" xsi:type="string">customer/account</argument>
27-
<argument name="sortOrder" xsi:type="number">250</argument>
27+
<argument name="sortOrder" xsi:type="number">1</argument>
2828
</arguments>
2929
</block>
3030
<block class="Magento\Customer\Block\Account\Delimiter" name="customer-account-navigation-delimiter-1" template="Magento_Customer::account/navigation-delimiter.phtml">
3131
<arguments>
32-
<argument name="sortOrder" xsi:type="number">200</argument>
32+
<argument name="sortOrder" xsi:type="number">40</argument>
3333
</arguments>
3434
</block>
3535
<block class="Magento\Customer\Block\Account\SortLinkInterface" name="customer-account-navigation-address-link">
3636
<arguments>
3737
<argument name="label" xsi:type="string" translate="true">Address Book</argument>
3838
<argument name="path" xsi:type="string">customer/address</argument>
39-
<argument name="sortOrder" xsi:type="number">190</argument>
39+
<argument name="sortOrder" xsi:type="number">50</argument>
4040
</arguments>
4141
</block>
4242
<block class="Magento\Customer\Block\Account\SortLinkInterface" name="customer-account-navigation-account-edit-link">
4343
<arguments>
4444
<argument name="label" xsi:type="string" translate="true">Account Information</argument>
4545
<argument name="path" xsi:type="string">customer/account/edit</argument>
46-
<argument name="sortOrder" xsi:type="number">180</argument>
46+
<argument name="sortOrder" xsi:type="number">60</argument>
4747
</arguments>
4848
</block>
4949
<block class="Magento\Customer\Block\Account\Delimiter" name="customer-account-navigation-delimiter-2" template="Magento_Customer::account/navigation-delimiter.phtml">
5050
<arguments>
51-
<argument name="sortOrder" xsi:type="number">130</argument>
51+
<argument name="sortOrder" xsi:type="number">90</argument>
5252
</arguments>
5353
</block>
5454
</block>

app/code/Magento/Customer/view/frontend/layout/default.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
99
<body>
1010
<referenceBlock name="top.links">
11-
<block class="Magento\Customer\Block\Account\Link" name="my-account-link">
11+
<block class="Magento\Customer\Block\Account\Link" name="my-account-link" template="Magento_Customer::account/link/my-account.phtml">
1212
<arguments>
1313
<argument name="label" xsi:type="string" translate="true">My Account</argument>
14-
<argument name="sortOrder" xsi:type="number">110</argument>
14+
<argument name="sortOrder" xsi:type="number">1</argument>
1515
</arguments>
1616
</block>
1717
<block class="Magento\Customer\Block\Account\RegisterLink" name="register-link">
@@ -20,7 +20,11 @@
2020
</arguments>
2121
</block>
2222
<block class="Magento\Customer\Block\Account\AuthorizationLink" name="authorization-link"
23-
template="Magento_Customer::account/link/authorization.phtml"/>
23+
template="Magento_Customer::account/link/authorization.phtml">
24+
<arguments>
25+
<argument name="sortOrder" xsi:type="number">30</argument>
26+
</arguments>
27+
</block>
2428
</referenceBlock>
2529
<referenceContainer name="content">
2630
<block class="Magento\Customer\Block\Account\AuthenticationPopup" name="authentication-popup" as="authentication-popup" template="Magento_Customer::account/authentication-popup.phtml">

app/code/Magento/Customer/view/frontend/templates/account/link/authorization.phtml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var \Magento\Customer\Block\Account\AuthorizationLink $block */
8-
7+
/**
8+
* @var \Magento\Customer\Block\Account\AuthorizationLink $block
9+
* @var \Magento\Framework\Escaper $escaper
10+
*/
911
$dataPostParam = '';
1012
if ($block->isLoggedIn()) {
1113
$dataPostParam = sprintf(" data-post='%s'", $block->getPostParams());
1214
}
1315
?>
14-
<li class="authorization-link" data-label="<?= $block->escapeHtml(__('or')) ?>">
15-
<a <?= /* @noEscape */ $block->getLinkAttributes() ?><?= /* @noEscape */ $dataPostParam ?>>
16-
<?= $block->escapeHtml($block->getLabel()) ?>
17-
</a>
16+
<li class="link authorization-link" data-label="<?= $escaper->escapeHtml(__('or')) ?>">
17+
<a <?= /* @noEscape */ $block->getLinkAttributes() ?>
18+
<?= /* @noEscape */ $dataPostParam ?>><?= $escaper->escapeHtml($block->getLabel()) ?></a>
1819
</li>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/**
8+
* @var \Magento\Customer\Block\Account\Link $block
9+
* @var \Magento\Framework\Escaper $escaper
10+
*/
11+
?>
12+
<li class="link my-account-link">
13+
<a <?= /* @noEscape */ $block->getLinkAttributes() ?>><?= $escaper->escapeHtml($block->getLabel()) ?></a>
14+
</li>

app/code/Magento/Downloadable/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<arguments>
1313
<argument name="path" xsi:type="string">downloadable/customer/products</argument>
1414
<argument name="label" xsi:type="string" translate="true">My Downloadable Products</argument>
15-
<argument name="sortOrder" xsi:type="number">217</argument>
15+
<argument name="sortOrder" xsi:type="number">20</argument>
1616
</arguments>
1717
</block>
1818
</referenceBlock>

app/code/Magento/Newsletter/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<arguments>
1313
<argument name="path" xsi:type="string">newsletter/manage</argument>
1414
<argument name="label" xsi:type="string" translate="true">Newsletter Subscriptions</argument>
15-
<argument name="sortOrder" xsi:type="number">40</argument>
15+
<argument name="sortOrder" xsi:type="number">110</argument>
1616
</arguments>
1717
</block>
1818
</referenceBlock>

app/code/Magento/Paypal/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<arguments>
1717
<argument name="path" xsi:type="string">paypal/billing_agreement</argument>
1818
<argument name="label" xsi:type="string" translate="true">Billing Agreements</argument>
19-
<argument name="sortOrder" xsi:type="number">140</argument>
19+
<argument name="sortOrder" xsi:type="number">80</argument>
2020
</arguments>
2121
</block>
2222
</referenceBlock>

app/code/Magento/Review/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<arguments>
1313
<argument name="path" xsi:type="string">review/customer</argument>
1414
<argument name="label" xsi:type="string" translate="true">My Product Reviews</argument>
15-
<argument name="sortOrder" xsi:type="number">50</argument>
15+
<argument name="sortOrder" xsi:type="number">100</argument>
1616
</arguments>
1717
</block>
1818
</referenceBlock>

app/code/Magento/Sales/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<arguments>
1313
<argument name="path" xsi:type="string">sales/order/history</argument>
1414
<argument name="label" xsi:type="string" translate="true">My Orders</argument>
15-
<argument name="sortOrder" xsi:type="number">230</argument>
15+
<argument name="sortOrder" xsi:type="number">10</argument>
1616
</arguments>
1717
</block>
1818
</referenceBlock>

app/code/Magento/Vault/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<arguments>
1616
<argument name="path" xsi:type="string">vault/cards/listaction</argument>
1717
<argument name="label" xsi:type="string" translate="true">Stored Payment Methods</argument>
18-
<argument name="sortOrder" xsi:type="number">160</argument>
18+
<argument name="sortOrder" xsi:type="number">70</argument>
1919
</arguments>
2020
</block>
2121
</referenceBlock>

app/code/Magento/Wishlist/view/frontend/layout/customer_account.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<arguments>
1313
<argument name="path" xsi:type="string">wishlist</argument>
1414
<argument name="label" xsi:type="string" translate="true">My Wish List</argument>
15-
<argument name="sortOrder" xsi:type="number">210</argument>
15+
<argument name="sortOrder" xsi:type="number">30</argument>
1616
</arguments>
1717
</block>
1818
</referenceBlock>

app/code/Magento/Wishlist/view/frontend/layout/default.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<referenceBlock name="top.links">
1414
<block class="Magento\Wishlist\Block\Link" name="wish-list-link" after="my-account-link">
1515
<arguments>
16-
<argument name="sortOrder" xsi:type="number">60</argument>
16+
<argument name="sortOrder" xsi:type="number">30</argument>
1717
</arguments>
1818
</block>
1919
</referenceBlock>

0 commit comments

Comments
 (0)