Skip to content

Commit fbbd5ae

Browse files
authored
Merge branch '2.4-develop' into performance-storage-polyfill
2 parents e8b245e + 7f2272d commit fbbd5ae

File tree

236 files changed

+4706
-17249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

236 files changed

+4706
-17249
lines changed

app/code/Magento/AdvancedSearch/Model/Client/ClientResolver.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
*/
66
namespace Magento\AdvancedSearch\Model\Client;
77

8-
use \Magento\Framework\ObjectManagerInterface;
8+
use Magento\Framework\ObjectManagerInterface;
99
use Magento\Framework\Search\EngineResolverInterface;
10+
use Magento\Framework\App\Config\ScopeConfigInterface;
1011

1112
/**
1213
* @api
@@ -46,7 +47,7 @@ class ClientResolver
4647
private $clientOptionsPool;
4748

4849
/**
49-
* @var EngineResolver
50+
* @var EngineResolverInterface
5051
*/
5152
private $engineResolver;
5253

app/code/Magento/AdvancedSearch/Model/Indexer/Fulltext/Plugin/CustomerGroup.php

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
use Magento\Framework\Model\AbstractModel;
1313
use Magento\Catalog\Model\ResourceModel\Attribute;
1414
use Magento\AdvancedSearch\Model\Client\ClientOptionsInterface;
15-
use Magento\Framework\Search\EngineResolverInterface;
16-
use Magento\Search\Model\EngineResolver;
1715

1816
class CustomerGroup extends AbstractPlugin
1917
{
@@ -22,24 +20,16 @@ class CustomerGroup extends AbstractPlugin
2220
*/
2321
protected $clientOptions;
2422

25-
/**
26-
* @var EngineResolverInterface
27-
*/
28-
protected $engineResolver;
29-
3023
/**
3124
* @param IndexerRegistry $indexerRegistry
3225
* @param ClientOptionsInterface $clientOptions
33-
* @param EngineResolverInterface $engineResolver
3426
*/
3527
public function __construct(
3628
IndexerRegistry $indexerRegistry,
37-
ClientOptionsInterface $clientOptions,
38-
EngineResolverInterface $engineResolver
29+
ClientOptionsInterface $clientOptions
3930
) {
4031
parent::__construct($indexerRegistry);
4132
$this->clientOptions = $clientOptions;
42-
$this->engineResolver = $engineResolver;
4333
}
4434

4535
/**
@@ -56,9 +46,7 @@ public function aroundSave(
5646
\Closure $proceed,
5747
AbstractModel $group
5848
) {
59-
$needInvalidation =
60-
($this->engineResolver->getCurrentSearchEngine() != EngineResolver::CATALOG_SEARCH_MYSQL_ENGINE)
61-
&& ($group->isObjectNew() || $group->dataHasChangedFor('tax_class_id'));
49+
$needInvalidation = $group->isObjectNew() || $group->dataHasChangedFor('tax_class_id');
6250
$result = $proceed($group);
6351
if ($needInvalidation) {
6452
$this->indexerRegistry->get(Fulltext::INDEXER_ID)->invalidate();

app/code/Magento/AdvancedSearch/Test/Unit/Model/Indexer/Fulltext/Plugin/CustomerGroupTest.php

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
use Magento\Customer\Model\ResourceModel\Group as CustomerGroupResourceModel;
1515
use Magento\Framework\Indexer\IndexerInterface;
1616
use Magento\Framework\Indexer\IndexerRegistry;
17-
use Magento\Framework\Search\EngineResolverInterface;
1817
use PHPUnit\Framework\TestCase;
18+
use PHPUnit\Framework\MockObject\MockObject;
1919

2020
/**
2121
* @covers \Magento\AdvancedSearch\Model\Indexer\Fulltext\Plugin\CustomerGroup
@@ -35,7 +35,7 @@ class CustomerGroupTest extends TestCase
3535
private $indexerMock;
3636

3737
/**
38-
* @var Group|MockObject
38+
* @var CustomerGroupResourceModel|MockObject
3939
*/
4040
private $subjectMock;
4141

@@ -49,11 +49,6 @@ class CustomerGroupTest extends TestCase
4949
*/
5050
private $indexerRegistryMock;
5151

52-
/**
53-
* @var EngineResolverInterface|MockObject
54-
*/
55-
private $engineResolverMock;
56-
5752
protected function setUp(): void
5853
{
5954
$this->subjectMock = $this->createMock(CustomerGroupResourceModel::class);
@@ -73,35 +68,24 @@ protected function setUp(): void
7368
IndexerRegistry::class,
7469
['get']
7570
);
76-
$this->engineResolverMock = $this->createPartialMock(
77-
EngineResolverInterface::class,
78-
['getCurrentSearchEngine']
79-
);
8071
$this->model = new CustomerGroupPlugin(
8172
$this->indexerRegistryMock,
82-
$this->customerOptionsMock,
83-
$this->engineResolverMock
73+
$this->customerOptionsMock
8474
);
8575
}
8676

8777
/**
88-
* @param string $searchEngine
8978
* @param bool $isObjectNew
9079
* @param bool $isTaxClassIdChanged
9180
* @param int $invalidateCounter
9281
* @return void
9382
* @dataProvider aroundSaveDataProvider
9483
*/
9584
public function testAroundSave(
96-
string $searchEngine,
9785
bool $isObjectNew,
9886
bool $isTaxClassIdChanged,
9987
int $invalidateCounter
10088
): void {
101-
$this->engineResolverMock->expects($this->once())
102-
->method('getCurrentSearchEngine')
103-
->willReturn($searchEngine);
104-
10589
$groupMock = $this->createPartialMock(
10690
CustomerGroupModel::class,
10791
['dataHasChangedFor', 'isObjectNew', '__wakeup']
@@ -137,14 +121,10 @@ public function testAroundSave(
137121
public function aroundSaveDataProvider(): array
138122
{
139123
return [
140-
['mysql', false, false, 0],
141-
['mysql', false, true, 0],
142-
['mysql', true, false, 0],
143-
['mysql', true, true, 0],
144-
['custom', false, false, 0],
145-
['custom', false, true, 1],
146-
['custom', true, false, 1],
147-
['custom', true, true, 1],
124+
[false, false, 0],
125+
[false, true, 1],
126+
[true, false, 1],
127+
[true, true, 1],
148128
];
149129
}
150130
}

app/code/Magento/Backend/etc/adminhtml/system.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@
341341
</group>
342342
<group id="upload_configuration" translate="label" type="text" sortOrder="1000" showInDefault="1" showInWebsite="1" showInStore="1">
343343
<label>Images Upload Configuration</label>
344-
<field id="enable_resize" translate="label" type="select" sortOrder="200" showInDefault="1" canRestore="1">
344+
<field id="enable_resize" translate="label comment" type="select" sortOrder="200" showInDefault="1" canRestore="1">
345345
<label>Enable Frontend Resize</label>
346346
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
347347
<comment>Resize performed via javascript before file upload.</comment>
@@ -459,9 +459,7 @@
459459
<label>Add Store Code to Urls</label>
460460
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
461461
<backend_model>Magento\Config\Model\Config\Backend\Store</backend_model>
462-
<comment>
463-
<![CDATA[<strong style="color:red">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).]]>
464-
</comment>
462+
<comment><![CDATA[<strong style="color:red">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).]]></comment>
465463
</field>
466464
<field id="redirect_to_base" translate="label comment" type="select" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1" canRestore="1">
467465
<label>Auto-redirect to Base URL</label>

app/code/Magento/Backend/i18n/en_US.csv

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,9 @@ Security,Security
403403
Web,Web
404404
"Url Options","Url Options"
405405
"Add Store Code to Urls","Add Store Code to Urls"
406-
"
407-
<strong style=""color:red"">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).
408-
","
409-
<strong style=""color:red"">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).
410-
"
406+
"<strong style=""color:red"">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.).","<strong style=""color:red"">Warning!</strong> When using Store Code in URLs, in some cases system may not work properly if URLs without Store Codes are specified in the third-party services (e.g. PayPal etc.)."
407+
"Enable Frontend Resize","Enable Frontend Resize"
408+
"Resize performed via javascript before file upload.","Resize performed via javascript before file upload."
411409
"Auto-redirect to Base URL","Auto-redirect to Base URL"
412410
"Search Engine Optimization","Search Engine Optimization"
413411
"Use Web Server Rewrites","Use Web Server Rewrites"

app/code/Magento/Bundle/Test/Mftf/Test/StorefrontAdvanceCatalogSearchBundleBySkuWithHyphenTest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<group value="Bundle"/>
2020
<group value="SearchEngineElasticsearch"/>
2121
<skip>
22-
<issueId value="MC-21228"/>
22+
<issueId value="MC-34217"/>
2323
</skip>
2424
</annotations>
2525
<before>

app/code/Magento/Catalog/Test/Mftf/Data/ProductData.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535
<requiredEntity type="product_extension_attribute">EavStockItem</requiredEntity>
3636
<requiredEntity type="custom_attribute_array">CustomAttributeCategoryIds</requiredEntity>
3737
</entity>
38+
<entity name="ApiSimpleProductWithNoSpace" type="product" extends="ApiSimpleProduct">
39+
<data key="name">TestFooBar</data>
40+
<data key="sku" unique="suffix">foobar</data>
41+
</entity>
3842
<entity name="ApiSimpleProductWithSpecCharInName" type="product" extends="ApiSimpleProduct">
3943
<data key="name">Pursuit Lumaflex&#38;trade; Tone Band</data>
4044
<data key="sku" unique="suffix">x&#38;trade;</data>
@@ -68,6 +72,9 @@
6872
<requiredEntity type="product_extension_attribute">EavStockItem</requiredEntity>
6973
<requiredEntity type="custom_attribute_array">CustomAttributeCategoryIds</requiredEntity>
7074
</entity>
75+
<entity name="ProductForPartialSearch" extends="SimpleProduct" type="product">
76+
<data key="sku">partialTestSku</data>
77+
</entity>
7178
<entity name="ProductWithSpecialSymbols" extends="SimpleProduct" type="product">
7279
<data key="name">SimpleProduct -+~/\\&lt;&gt;\’“:*\$#@()!,.?`=%&amp;^</data>
7380
</entity>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<group value="Catalog"/>
2020
<group value="SearchEngineElasticsearch"/>
2121
<skip>
22-
<issueId value="MC-21228"/>
22+
<issueId value="MC-34217"/>
2323
</skip>
2424
</annotations>
2525
<before>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<group value="Catalog"/>
2020
<group value="SearchEngineElasticsearch"/>
2121
<skip>
22-
<issueId value="MC-21228"/>
22+
<issueId value="MC-34217"/>
2323
</skip>
2424
</annotations>
2525
<before>

app/code/Magento/CatalogCmsGraphQl/Model/Resolver/Category/Block.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Framework\Exception\LocalizedException;
1212
use Magento\Framework\Exception\NoSuchEntityException;
1313
use Magento\Framework\GraphQl\Config\Element\Field;
14+
use Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException;
1415
use Magento\Framework\GraphQl\Query\ResolverInterface;
1516
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
1617
use Magento\CmsGraphQl\Model\Resolver\DataProvider\Block as BlockProvider;
@@ -48,18 +49,19 @@ public function resolve(
4849
}
4950
/** @var Category $category */
5051
$category = $value['model'];
51-
$blockId = $category->getLandingPage();
52+
$blockId = (int)$category->getLandingPage();
53+
$storeId = (int)$context->getExtensionAttributes()->getStore()->getId();
5254

5355
if (empty($blockId)) {
5456
return null;
5557
}
5658

5759
try {
58-
$block = $this->blockProvider->getData($blockId);
60+
$blockData = $this->blockProvider->getBlockById($blockId, $storeId);
5961
} catch (NoSuchEntityException $e) {
60-
return null;
62+
return new GraphQlNoSuchEntityException(__($e->getMessage()), $e);
6163
}
6264

63-
return $block;
65+
return $blockData;
6466
}
6567
}

app/code/Magento/CatalogGraphQl/Model/Category/CategoryFilter.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Magento\Framework\Exception\InputException;
1414
use Magento\Framework\GraphQl\Exception\GraphQlInputException;
1515
use Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplier\Filter;
16-
use Magento\Framework\Search\Adapter\Mysql\Query\Builder\Match;
1716
use Magento\Search\Model\Query;
1817
use Magento\Store\Api\Data\StoreInterface;
1918
use Magento\Store\Model\ScopeInterface;
@@ -24,6 +23,11 @@
2423
*/
2524
class CategoryFilter
2625
{
26+
/**
27+
* @var string
28+
*/
29+
private const SPECIAL_CHARACTERS = '-+~/\\<>\'":*$#@()!,.?`=%&^';
30+
2731
/**
2832
* @var ScopeConfigInterface
2933
*/
@@ -120,7 +124,7 @@ private function formatMatchFilters(array $filters, StoreInterface $store): arra
120124
foreach ($filters as $filter => $condition) {
121125
$conditionType = current(array_keys($condition));
122126
if ($conditionType === 'match') {
123-
$searchValue = trim(str_replace(Match::SPECIAL_CHARACTERS, '', $condition[$conditionType]));
127+
$searchValue = trim(str_replace(self::SPECIAL_CHARACTERS, '', $condition[$conditionType]));
124128
$matchLength = strlen($searchValue);
125129
if ($matchLength < $minQueryLength) {
126130
throw new InputException(__('Invalid match filter. Minimum length is %1.', $minQueryLength));

app/code/Magento/CatalogGraphQl/Model/Search/Adapter/Mysql/Query/Builder/Match.php

Lines changed: 0 additions & 78 deletions
This file was deleted.

app/code/Magento/CatalogGraphQl/etc/graphql/di.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@
9191
</argument>
9292
</arguments>
9393
</virtualType>
94-
<preference for="Magento\Framework\Search\Adapter\Mysql\Query\Builder\Match"
95-
type="Magento\CatalogGraphQl\Model\Search\Adapter\Mysql\Query\Builder\Match" />
9694
<type name="Magento\StoreGraphQl\Model\Resolver\Store\StoreConfigDataProvider">
9795
<arguments>
9896
<argument name="extendedConfigData" xsi:type="array">

0 commit comments

Comments
 (0)