Skip to content

Commit c235ba6

Browse files
committed
MC-21542: Category query does not handle disabled children properly
- add test
1 parent aba9ac6 commit c235ba6

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

dev/tests/integration/testsuite/Magento/Catalog/_files/categories_disabled.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,27 @@
88

99
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
1010

11+
// Adding 4th level ensures an edge case for which 3 levels of categories would not be enough
12+
$category = $objectManager->create(\Magento\Catalog\Model\Category::class);
13+
$category->isObjectNew(true);
14+
$category->setId(59)
15+
->setName('Category 1.1.1.1')
16+
->setParentId(5)
17+
->setPath('1/2/3/4/5/59')
18+
->setLevel(5)
19+
->setAvailableSortBy('name')
20+
->setDefaultSortBy('name')
21+
->setIsActive(true)
22+
->setPosition(1)
23+
->setCustomUseParentSettings(0)
24+
->setCustomDesign('Magento/blank')
25+
->setDescription('This is the description for Category 1.1.1.1')
26+
->save();
27+
1128
/** @var $category \Magento\Catalog\Model\Category */
1229
$category = $objectManager->create(\Magento\Catalog\Model\Category::class);
1330

31+
// Category 1.1.1
1432
$category->load(4);
1533
$category->setIsActive(false);
1634
$category->save();

dev/tests/integration/testsuite/Magento/Catalog/_files/categories_disabled_rollback.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,20 @@
55
*/
66

77
include __DIR__ . '/categories_rollback.php';
8+
9+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
10+
/** @var \Magento\Framework\Registry $registry */
11+
$registry = $objectManager->get(\Magento\Framework\Registry::class);
12+
13+
$registry->unregister('isSecureArea');
14+
$registry->register('isSecureArea', true);
15+
16+
/** @var Magento\Catalog\Model\ResourceModel\Category\Collection $collection */
17+
$collection = $objectManager->create(\Magento\Catalog\Model\ResourceModel\Category\Collection::class);
18+
foreach ($collection->addAttributeToFilter('level', ['in' => [59]]) as $category) {
19+
/** @var \Magento\Catalog\Model\Category $category */
20+
$category->delete();
21+
}
22+
23+
$registry->unregister('isSecureArea');
24+
$registry->register('isSecureArea', false);

0 commit comments

Comments
 (0)