Skip to content
This repository was archived by the owner on Apr 29, 2019. It is now read-only.

Commit 5c4c20d

Browse files
author
Stanislav Idolov
committed
ENGCOM-1060: [Backport 2.3] Added Visibility and Status filter to category product grid #12577
1 parent 4061015 commit 5c4c20d

File tree

1 file changed

+23
-27
lines changed

1 file changed

+23
-27
lines changed

dev/tests/functional/tests/app/Magento/Catalog/Test/Constraint/AssertCategoryProductsGridFilter.php

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

7+
declare(strict_types=1);
8+
79
namespace Magento\Catalog\Test\Constraint;
810

911
use Magento\Catalog\Test\Fixture\Category;
@@ -51,48 +53,42 @@ public function processAssert(
5153
* @param array $categoryProducts
5254
* @param CatalogCategoryEdit $catalogCategoryEdit
5355
* @param string $filterField
56+
* @return void
5457
*/
5558
private function testGridFilter(array $categoryProducts, CatalogCategoryEdit $catalogCategoryEdit, $filterField)
5659
{
57-
$productsByFilter = [];
60+
$expectedProducts = [];
5861
foreach ($categoryProducts as $product) {
59-
$filterValue = $product->getData($filterField);
60-
if (!isset($productsByFilter[$filterValue])) {
61-
$productsByFilter[$filterValue] = [];
62-
}
63-
$productsByFilter[$filterValue][] = $product;
62+
$expectedProducts[$product->getData('name')] = [
63+
'filter' => $filterField,
64+
'value' => $product->getData($filterField)
65+
];
6466
}
6567

68+
$actualProducts = [];
69+
/** @var \Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm $productsFieldset */
6670
$productsFieldset = $catalogCategoryEdit->getEditForm()->getSection('category_products');
67-
foreach ($productsByFilter as $filterValue => $products) {
68-
$productsFieldset->getProductGrid()->search([
69-
'in_category' => 'Yes',
70-
$filterField => $filterValue,
71-
]);
72-
73-
$expectedRows = [];
74-
foreach ($products as $product) {
75-
$expectedRows[] = $product->getName();
76-
}
77-
$gridRows = $productsFieldset->getProductGrid()->getRowsData(['name']);
78-
$actualRows = array_column($gridRows, 'name');
79-
sort($expectedRows);
80-
sort($actualRows);
81-
82-
\PHPUnit_Framework_Assert::assertEquals(
83-
$expectedRows,
84-
$actualRows,
85-
"Category products grid filter '$filterField' does not work correctly"
86-
);
71+
$gridRows = $productsFieldset->getProductGrid()->getRowsData(['name', $filterField]);
72+
foreach ($gridRows as $row) {
73+
$actualProducts[$row['name']] = [
74+
'filter' => $filterField,
75+
'value' => $row[$filterField]
76+
];
8777
}
78+
79+
\PHPUnit\Framework\Assert::assertEquals(
80+
$expectedProducts,
81+
$actualProducts,
82+
"Category products grid filter '$filterField' does not work correctly"
83+
);
8884
}
8985

9086
/**
9187
* Returns a string representation of the object.
9288
*
9389
* @return string
9490
*/
95-
public function toString()
91+
public function toString() : string
9692
{
9793
return 'Category products grid filter works correctly';
9894
}

0 commit comments

Comments
 (0)