Skip to content

Commit 442e7e7

Browse files
committed
MC-39709: Create automated test for: "Display a hidden product image using layered navigation"
1 parent 421a73f commit 442e7e7

File tree

3 files changed

+51
-8
lines changed

3 files changed

+51
-8
lines changed

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

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,42 @@
66
declare(strict_types=1);
77

88
use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface;
9+
use Magento\Catalog\Api\Data\ProductInterfaceFactory;
910
use Magento\Catalog\Api\ProductRepositoryInterface;
11+
use Magento\Catalog\Model\Product\Attribute\Source\Status;
12+
use Magento\Catalog\Model\Product\Type;
13+
use Magento\Catalog\Model\Product\Visibility;
14+
use Magento\Catalog\Model\ResourceModel\Product as ProductResource;
15+
use Magento\Store\Api\WebsiteRepositoryInterface;
1016
use Magento\Store\Model\Store;
1117
use Magento\TestFramework\Helper\Bootstrap;
1218
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
1319

1420
Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/product_image.php');
15-
Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/product_simple.php');
1621

1722
$objectManager = Bootstrap::getObjectManager();
23+
/** @var ProductResource $productResource */
24+
$productResource = $objectManager->get(ProductResource::class);
25+
/** @var ProductInterfaceFactory $productFactory */
26+
$productFactory = $objectManager->get(ProductInterfaceFactory::class);
27+
/** @var WebsiteRepositoryInterface $websiteRepository */
28+
$websiteRepository = $objectManager->get(WebsiteRepositoryInterface::class);
29+
$baseWebsiteId = (int)$websiteRepository->get('base')->getId();
30+
$product = $productFactory->create();
1831
/** @var ProductRepositoryInterface $productRepository */
19-
$productRepository = $objectManager->get(ProductRepositoryInterface::class);
20-
$productRepository->cleanCache();
21-
$product = $productRepository->get('simple');
22-
$product->setStoreId(Store::DEFAULT_STORE_ID)
32+
$product->setTypeId(Type::TYPE_SIMPLE)
33+
->setAttributeSetId($product->getDefaultAttributeSetId())
34+
->setWebsiteIds([$baseWebsiteId])
35+
->setName('Simple Product2')
36+
->setSku('simple_with_disabled_img')
37+
->setPrice(10)
38+
->setMetaTitle('meta title2')
39+
->setMetaKeyword('meta keyword2')
40+
->setMetaDescription('meta description2')
41+
->setVisibility(Visibility::VISIBILITY_BOTH)
42+
->setStatus(Status::STATUS_ENABLED)
43+
->setStockData(['use_config_manage_stock' => 0])
44+
->setStoreId(Store::DEFAULT_STORE_ID)
2345
->setImage('/m/a/magento_image.jpg')
2446
->setSmallImage('/m/a/magento_image.jpg')
2547
->setThumbnail('/m/a/magento_image.jpg')
@@ -39,4 +61,4 @@
3961
)
4062
->setCanSaveCustomOptions(true);
4163

42-
$productRepository->save($product);
64+
$productResource->save($product);

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,28 @@
55
*/
66
declare(strict_types=1);
77

8+
use Magento\Catalog\Api\ProductRepositoryInterface;
9+
use Magento\Framework\Exception\NoSuchEntityException;
10+
use Magento\Framework\Registry;
11+
use Magento\TestFramework\Helper\Bootstrap;
812
use Magento\TestFramework\Workaround\Override\Fixture\Resolver;
913

10-
Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/product_simple_rollback.php');
14+
$objectManager = Bootstrap::getObjectManager();
15+
/** @var ProductRepositoryInterface $productRepository */
16+
$productRepository = $objectManager->get(ProductRepositoryInterface::class);
17+
/** @var Registry $registry */
18+
$registry = $objectManager->get(Registry::class);
19+
20+
$registry->unregister('isSecureArea');
21+
$registry->register('isSecureArea', true);
22+
23+
try {
24+
$productRepository->deleteById('simple_with_disabled_img');
25+
} catch (NoSuchEntityException $e) {
26+
//already deleted
27+
}
28+
29+
$registry->unregister('isSecureArea');
30+
$registry->register('isSecureArea', false);
31+
1132
Resolver::getInstance()->requireDataFixture('Magento/Catalog/_files/product_image_rollback.php');

dev/tests/integration/testsuite/Magento/Swatches/Helper/DataTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function testGetSwatchAttributesAsArray(): void
6060
*/
6161
public function testGetProductMediaGalleryWithHiddenImage(): void
6262
{
63-
$result = $this->helper->getProductMediaGallery($this->productRepository->get('simple'));
63+
$result = $this->helper->getProductMediaGallery($this->productRepository->get('simple_with_disabled_img'));
6464
$this->assertEmpty($result);
6565
}
6666
}

0 commit comments

Comments
 (0)