![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Checkout/ViewModel/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Checkout\ViewModel; use Magento\Framework\App\Config\MutableScopeConfigInterface; use Magento\Framework\ObjectManagerInterface; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\TestFramework\Helper\Bootstrap; use PHPUnit\Framework\TestCase; /** * Test for clear shopping cart config * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class CartTest extends TestCase { /** * @var ObjectManagerInterface */ private $objectManager; /** * @var Cart */ private $cart; /** * @var MutableScopeConfigInterface */ private $mutableScopeConfig; /** * @var StoreManagerInterface */ private $storeManager; /** * @inheritDoc */ protected function setUp(): void { $objectManager = $this->objectManager = Bootstrap::getObjectManager(); $this->cart = $objectManager->get(Cart::class); $this->mutableScopeConfig = $objectManager->get(MutableScopeConfigInterface::class); $this->storeManager = $objectManager->get(StoreManagerInterface::class); } /** * @magentoAppArea frontend * @magentoDataFixture Magento/Store/_files/second_website_with_two_stores.php * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testConfigClearShoppingCartEnabledWithWebsiteScopes() { // Assert not active by default $this->assertFalse($this->cart->isClearShoppingCartEnabled()); // Enable Clear Shopping Cart in default website scope $this->setClearShoppingCartEnabled( true, ScopeInterface::SCOPE_WEBSITE ); // Assert now active in default website scope $this->assertTrue($this->cart->isClearShoppingCartEnabled()); $defaultStore = $this->storeManager->getStore(); $defaultWebsite = $defaultStore->getWebsite(); $defaultWebsiteCode = $defaultWebsite->getCode(); $secondStore = $this->storeManager->getStore('fixture_second_store'); $secondWebsite = $secondStore->getWebsite(); $secondWebsiteCode = $secondWebsite->getCode(); // Change current store context to that of second website $this->storeManager->setCurrentStore($secondStore); // Assert not active by default in second website $this->assertFalse($this->cart->isClearShoppingCartEnabled()); // Enable Clear Shopping Cart in second website scope $this->setClearShoppingCartEnabled( true, ScopeInterface::SCOPE_WEBSITE, $secondWebsiteCode ); // Assert now active in second website scope $this->assertTrue($this->cart->isClearShoppingCartEnabled()); // Disable Clear Shopping Cart in default website scope $this->setClearShoppingCartEnabled( false, ScopeInterface::SCOPE_WEBSITE, $defaultWebsiteCode ); // Assert still active in second website $this->assertTrue($this->cart->isClearShoppingCartEnabled()); } /** * Set clear shopping cart enabled. * * @param bool $isActive * @param string $scope * @param string|null $scopeCode */ private function setClearShoppingCartEnabled(bool $isActive, string $scope, $scopeCode = null) { $this->mutableScopeConfig->setValue( 'checkout/cart/enable_clear_shopping_cart', $isActive ? '1' : '0', $scope, $scopeCode ); } }