/** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Catalog/_files/product_simple.php * @dataProvider customerFunctionDataProvider * * @param bool isCustomerIdUsed */ public function testSend($isCustomerIdUsed) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); $this->_emailModel = $this->_objectManager->create('Magento\\ProductAlert\\Model\\Email'); /** @var \Magento\Store\Model\Website $website */ $website = $this->_objectManager->create('Magento\\Store\\Model\\Website'); $website->load(1); $this->_emailModel->setWebsite($website); /** @var \Magento\Customer\Api\Data\CustomerInterface $customer */ $customerRepository = $this->_objectManager->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); $customer = $customerRepository->getById(1); if ($isCustomerIdUsed) { $this->_emailModel->setCustomerId(1); } else { $this->_emailModel->setCustomerData($customer); } /** @var \Magento\Catalog\Model\Product $product */ $product = $this->_objectManager->create('Magento\\Catalog\\Model\\Product'); $product->load(1); $this->_emailModel->addPriceProduct($product); $this->_emailModel->send(); /** @var \Magento\TestFramework\Mail\Template\TransportBuilderMock $transportBuilder */ $transportBuilder = $this->_objectManager->get('Magento\\TestFramework\\Mail\\Template\\TransportBuilderMock'); $this->assertContains('John Smith,', $transportBuilder->getSentMessage()->getBodyHtml()->getRawContent()); }
protected function setUp() { /** @var $storeManager \Magento\Framework\StoreManagerInterface */ $storeManager = self::$_objectManager->get('Magento\\Framework\\StoreManagerInterface'); $this->_store = $storeManager->getStore(); $this->_model = self::$_objectManager->create('Magento\\Catalog\\Model\\Category'); }
protected function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); /** @var $sessionManager \Magento\Framework\Session\SessionManager */ $sessionManager = $this->_objectManager->get('Magento\\Framework\\Session\\SessionManager'); if ($sessionManager->isSessionExists()) { $sessionManager->writeClose(); } $this->_model = $this->_objectManager->create('Magento\\Framework\\Session\\Config', array('saveMethod' => 'files', 'cacheLimiter' => $this->_cacheLimiter)); }
/** * Retrieve quote by given reserved order ID * * @param string $reservedOrderId * @return \Magento\Quote\Model\Quote * @throws \InvalidArgumentException */ protected function getCart($reservedOrderId) { /** @var $cart \Magento\Quote\Model\Quote */ $cart = $this->objectManager->get('Magento\\Quote\\Model\\Quote'); $cart->load($reservedOrderId, 'reserved_order_id'); if (!$cart->getId()) { throw new \InvalidArgumentException('There is no quote with provided reserved order ID.'); } return $cart; }
/** * @magentoAppIsolation enabled * @magentoDataFixture Magento/Tax/_files/tax_classes.php */ public function testCheckClassCanBeDeletedProductClassUsedInTaxRule() { /** @var $registry \Magento\Framework\Registry */ $registry = $this->_objectManager->get('Magento\\Framework\\Registry'); /** @var $taxRule \Magento\Tax\Model\Calculation\Rule */ $taxRule = $registry->registry('_fixture/Magento_Tax_Model_Calculation_Rule'); $productClasses = $taxRule->getProductTaxClasses(); /** @var $model \Magento\Tax\Model\ClassModel */ $model = $this->_objectManager->create('Magento\\Tax\\Model\\ClassModel')->load($productClasses[0]); $this->setExpectedException('Magento\\Framework\\Exception\\CouldNotDeleteException', 'You cannot delete this tax class because it is used in' . ' Tax Rules. You have to delete the rules it is used in first.'); $model->delete(); }
protected function setUp() { $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->productRepository = $this->objectManager->create('Magento\\Catalog\\Api\\ProductRepositoryInterface'); try { $this->product = $this->productRepository->get('simple'); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { $this->product = $this->productRepository->get('simple_dropdown_option'); } $this->objectManager->get('Magento\\Framework\\Registry')->unregister('current_product'); $this->objectManager->get('Magento\\Framework\\Registry')->register('current_product', $this->product); $this->block = $this->objectManager->get('Magento\\Framework\\View\\LayoutInterface')->createBlock('Magento\\Catalog\\Block\\Product\\View\\Options'); }
protected function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); /** @var $sessionManager \Magento\Framework\Session\SessionManager */ $sessionManager = $this->_objectManager->create('Magento\\Framework\\Session\\SessionManager'); if ($sessionManager->isSessionExists()) { $sessionManager->writeClose(); } $this->deploymentConfigMock = $this->getMock('Magento\\Framework\\App\\DeploymentConfig', [], [], '', false); $this->deploymentConfigMock->expects($this->at(0))->method('get')->with(Config::PARAM_SESSION_SAVE_PATH)->will($this->returnValue(null)); $this->deploymentConfigMock->expects($this->at(1))->method('get')->with(Config::PARAM_SESSION_CACHE_LIMITER)->will($this->returnValue($this->_cacheLimiter)); $this->_model = $this->_objectManager->create('Magento\\Framework\\Session\\Config', ['deploymentConfig' => $this->deploymentConfigMock]); $this->defaultSavePath = $this->_objectManager->get('Magento\\Framework\\Filesystem\\DirectoryList')->getPath(DirectoryList::SESSION); }
protected function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_model = $this->_objectManager->get('Magento\\Framework\\Session\\SaveHandler\\DbTable'); /** @var $resource \Magento\Framework\App\Resource */ $resource = $this->_objectManager->get('Magento\\Framework\\App\\Resource'); $this->_connection = $resource->getConnection('core_write'); $this->_sessionTable = $resource->getTableName('session'); // session stores serialized objects with protected properties // we need to test this case to ensure that DB adapter successfully processes "\0" symbols in serialized data foreach ($this->_sourceData as $key => $data) { $this->_sessionData[$key] = new \Magento\Framework\Object($data); } }
public function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $xmlFiles = $this->getXmlConfigFiles(); if (!empty($xmlFiles)) { $this->_fileResolverMock = $this->getMockBuilder('Magento\\Framework\\App\\Arguments\\FileResolver\\Primary')->disableOriginalConstructor()->getMock(); /* Enable Validation regardles of MAGE_MODE */ $validateStateMock = $this->getMockBuilder('Magento\\Framework\\Config\\ValidationStateInterface')->disableOriginalConstructor()->getMock(); $validateStateMock->expects($this->any())->method('isValidated')->will($this->returnValue(true)); $this->_reader = $this->_objectManager->create($this->_getReaderClassName(), ['configFiles' => $xmlFiles, 'fileResolver' => $this->_fileResolverMock, 'validationState' => $validateStateMock]); /** @var \Magento\Framework\Filesystem $filesystem */ $filesystem = $this->_objectManager->get('Magento\\Framework\\Filesystem'); $this->_schemaFile = $filesystem->getDirectoryRead($this->getDirectoryConstant())->getAbsolutePath($this->_getXsdPath()); } }
/** * @magentoApiDataFixture Magento/Customer/_files/customer.php * @magentoApiDataFixture Magento/Sales/_files/quote.php * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent_generalusers.php */ public function testSetMyCouponSuccess() { $this->_markTestAsRestOnly(); // get customer ID token /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ $customerTokenService = $this->objectManager->create('Magento\\Integration\\Api\\CustomerTokenServiceInterface'); $token = $customerTokenService->createCustomerAccessToken('*****@*****.**', 'password'); /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test01', 'reserved_order_id'); $cartId = $quote->getId(); /** @var \Magento\SalesRule\Model\Rule $salesRule */ $salesRule = $this->objectManager->create('Magento\\SalesRule\\Model\\Rule'); $salesRuleId = $this->objectManager->get('Magento\\Framework\\Registry')->registry('Magento/Checkout/_file/discount_10percent_generalusers'); $salesRule->load($salesRuleId); $couponCode = $salesRule->getPrimaryCoupon()->getCode(); /* Since this isn't a full quote fixture, need to assign it to the right customer */ $cartManagementService = $this->objectManager->create('Magento\\Quote\\Api\\CartManagementInterface'); $cartManagementService->assignCustomer($cartId, 1, 1); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . 'mine/coupons/' . $couponCode, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT, 'token' => $token]]; $requestData = ["couponCode" => $couponCode]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); $quoteWithCoupon = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quoteWithCoupon->load('test01', 'reserved_order_id'); $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode); }
/** * @magentoDataFixture Magento/Newsletter/_files/subscribers.php */ public function testSaveActionExistingCustomerUnsubscribeNewsletter() { $customerId = 1; /** @var \Magento\Newsletter\Model\Subscriber $subscriber */ $subscriber = $this->objectManager->get('Magento\\Newsletter\\Model\\SubscriberFactory')->create(); $this->assertEmpty($subscriber->getId()); $subscriber->loadByCustomerId($customerId); $this->assertNotEmpty($subscriber->getId()); $this->assertEquals(1, $subscriber->getStatus()); $post = ['customer' => ['entity_id' => $customerId], 'subscription' => 'false']; $this->getRequest()->setPostValue($post); $this->getRequest()->setParam('id', 1); $this->dispatch('backend/customer/index/save'); /** @var \Magento\Newsletter\Model\Subscriber $subscriber */ $subscriber = $this->objectManager->get('Magento\\Newsletter\\Model\\SubscriberFactory')->create(); $this->assertEmpty($subscriber->getId()); $subscriber->loadByCustomerId($customerId); $this->assertNotEmpty($subscriber->getId()); $this->assertEquals(3, $subscriber->getStatus()); /** * Check that success message is set */ $this->assertSessionMessages($this->equalTo(['You saved the customer.']), \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS); $this->assertRedirect($this->stringStartsWith($this->_baseControllerUrl . 'index/key/')); }
/** * @magentoDataFixture Magento/Store/_files/core_fixturestore.php * @magentoComponentsDir Magento/Email/Model/_files/design * @magentoAppIsolation enabled * @magentoDbIsolation enabled * @dataProvider inlinecssDirectiveThrowsExceptionWhenMissingParameterDataProvider * * @param string $templateText */ public function testInlinecssDirectiveThrowsExceptionWhenMissingParameter($templateText) { /** @var \Magento\Theme\Model\Theme\Registration $registration */ $registration = $this->objectManager->get('Magento\\Theme\\Model\\Theme\\Registration'); $registration->register(); $this->setUpDesignParams(); $this->model->filter($templateText); }
/** * @covers \Magento\Catalog\Model\Product\Gallery\ReadHandler::execute */ public function testExecute() { /** @var \Magento\Catalog\Model\Product $product */ $product = $this->objectManager->create('Magento\\Catalog\\Model\\Product'); /** * @var $entityMetadata \Magento\Framework\Model\Entity\EntityMetadata */ $entityMetadata = $this->objectManager->get(MetadataPool::class)->getMetadata(ProductInterface::class); $productRepository = $this->objectManager->get(\Magento\Catalog\Api\ProductRepositoryInterface::class); $linkFieldId = $productRepository->get('simple')->getData($entityMetadata->getLinkField()); $product->setData($entityMetadata->getLinkField(), $linkFieldId); $this->readHandler->execute('Magento\\Catalog\\Api\\Data\\ProductInterface', $product); $data = $product->getData(); $this->assertArrayHasKey('media_gallery', $data); $this->assertArrayHasKey('images', $data['media_gallery']); $this->assertEquals('Image Alt Text', $data['media_gallery']['images'][0]['label']); }
/** * Delete quote by given reserved order ID * * @param string $reservedOrderId * @return void */ protected function deleteCart($reservedOrderId) { try { /** @var $cart \Magento\Quote\Model\Quote */ $cart = $this->objectManager->get('Magento\\Quote\\Model\\Quote'); $cart->load($reservedOrderId, 'reserved_order_id'); if (!$cart->getId()) { throw new \InvalidArgumentException('There is no quote with provided reserved order ID.'); } $cart->delete(); /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ $quoteIdMask = $this->objectManager->create('Magento\\Quote\\Model\\QuoteIdMask'); $quoteIdMask->delete($cart->getId()); } catch (\InvalidArgumentException $e) { // Do nothing if cart fixture was not used } }
/** * @magentoDataFixture Magento/Store/_files/store.php * @magentoDataFixture Magento/Tax/_files/tax_classes.php */ public function testGetTitles() { /** @var \Magento\Tax\Model\Calculation\Rate $rate */ $rate = $this->_objectManager->create('Magento\\Tax\\Model\\Calculation\\Rate'); $rate->load(1); /** @var \Magento\Store\Model\Store $store */ $store = $this->_objectManager->get('Magento\\Store\\Model\\Store'); $store->load('test', 'code'); $title = 'title'; $rate->saveTitles([$store->getId() => $title]); $coreRegistry = $this->_objectManager->create('Magento\\Framework\\Registry'); $coreRegistry->register(RegistryConstants::CURRENT_TAX_RATE_ID, 1); /** @var \Magento\Tax\Block\Adminhtml\Rate\Title $block */ $block = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Tax\\Block\\Adminhtml\\Rate\\Title', ['coreRegistry' => $coreRegistry]); $titles = $block->getTitles(); $this->assertArrayHasKey($store->getId(), $titles, 'Store was not created'); $this->assertEquals($title, $titles[$store->getId()], 'Invalid Tax Title'); }
public function testGetCategory() { $this->assertEmpty($this->_model->getCategory()); $this->objectManager->get('Magento\\Framework\\Registry')->register('current_category', new \Magento\Framework\DataObject(['id' => 3])); // fixture try { $category = $this->_model->getCategory(); $this->assertInstanceOf('Magento\\Catalog\\Model\\Category', $category); $this->assertEquals(3, $category->getId()); $this->objectManager->get('Magento\\Framework\\Registry')->unregister('current_category'); } catch (\Exception $e) { $this->objectManager->get('Magento\\Framework\\Registry')->unregister('current_category'); throw $e; } $categoryTwo = new \StdClass(); $this->_model->setCategory($categoryTwo); $this->assertSame($categoryTwo, $this->_model->getCategory()); }
/** * Initializes context. * * Every scenario gets its own context instance. * You can also pass arbitrary arguments to the * context constructor through behat.yml. */ public function __construct($apiTimeout, $maxSuggestions) { $this->objectManager = TestBootstrap::getObjectManager(); $this->customerRepository = $this->objectManager->create('\\Magento\\Customer\\Api\\CustomerRepositoryInterface'); $this->customerFactory = $this->objectManager->create('\\Magento\\Customer\\Api\\Data\\CustomerInterfaceFactory'); $this->addressFactory = $this->objectManager->create('\\Magento\\Customer\\Api\\Data\\AddressInterfaceFactory'); $this->addressRepository = $this->objectManager->create('\\Magento\\Customer\\Api\\AddressRepositoryInterface'); $this->customerRegionFactory = $this->objectManager->create('\\Magento\\Customer\\Api\\Data\\RegionInterfaceFactory'); $this->directoryRegionFactory = $this->objectManager->create('\\Magento\\Directory\\Model\\RegionFactory'); $this->addressSession = $this->objectManager->create('\\EbayEnterprise\\Address\\Model\\Session'); $this->addressConverter = $this->objectManager->create('\\EbayEnterprise\\Address\\Helper\\Converter'); $this->maxSuggestions = $maxSuggestions; $scopeConfig = $this->objectManager->get('\\Magento\\Framework\\App\\Config\\MutableScopeConfigInterface'); $scopeConfig->setValue('ebay_enterprise/general/store_id', $_ENV['STORE_ID'], ScopeConfigInterface::SCOPE_TYPE_DEFAULT); $scopeConfig->setValue('ebay_enterprise/web_services/hostname', $_ENV['API_HOSTNAME'], ScopeConfigInterface::SCOPE_TYPE_DEFAULT); $scopeConfig->setValue('ebay_enterprise/web_services/api_key', $_ENV['API_KEY'], ScopeConfigInterface::SCOPE_TYPE_DEFAULT); $scopeConfig->setValue('ebay_enterprise/web_services/api_timeout', $apiTimeout, ScopeConfigInterface::SCOPE_TYPE_DEFAULT); $scopeConfig->setValue('ebay_enterprise/address_validation/max_suggestions', $maxSuggestions, ScopeConfigInterface::SCOPE_TYPE_DEFAULT); }
/** * @magentoDataFixture Magento/Customer/_files/customer.php * @magentoDataFixture Magento/Catalog/_files/product_simple.php */ public function testSend() { $this->_objectManager->configure(['Magento\\ProductAlert\\Model\\Email' => ['arguments' => ['transportBuilder' => ['instance' => 'Magento\\TestFramework\\Mail\\Template\\TransportBuilderMock']]], 'preferences' => ['Magento\\Framework\\Mail\\TransportInterface' => 'Magento\\TestFramework\\Mail\\TransportInterfaceMock']]); \Magento\TestFramework\Helper\Bootstrap::getInstance()->loadArea(\Magento\Framework\App\Area::AREA_FRONTEND); $this->_emailModel = $this->_objectManager->create('Magento\\ProductAlert\\Model\\Email'); /** @var \Magento\Store\Model\Website $website */ $website = $this->_objectManager->create('Magento\\Store\\Model\\Website'); $website->load(1); $this->_emailModel->setWebsite($website); /** @var \Magento\Customer\Service\V1\Data\Customer $customer */ $customer = $this->_customerAccountService->getCustomer(1); $this->_emailModel->setCustomerData($customer); /** @var \Magento\Catalog\Model\Product $product */ $product = $this->_objectManager->create('Magento\\Catalog\\Model\\Product'); $product->load(1); $this->_emailModel->addPriceProduct($product); $this->_emailModel->send(); /** @var \Magento\TestFramework\Mail\Template\TransportBuilderMock $transportBuilder */ $transportBuilder = $this->_objectManager->get('Magento\\TestFramework\\Mail\\Template\\TransportBuilderMock'); $this->assertStringMatchesFormat('%AHello ' . $this->_customerViewHelper->getCustomerName($customer) . '%A', $transportBuilder->getSentMessage()->getBodyHtml()->getContent()); }
/** * Test CSS minification * * @param string $requestedUri * @param callable $assertionCallback * @throws \Magento\Framework\Exception\LocalizedException */ protected function _testCssMinification($requestedUri, $assertionCallback) { /** @var \Magento\Framework\App\Request\Http $request */ $request = $this->objectManager->get(\Magento\Framework\App\Request\Http::class); $request->setRequestUri($requestedUri); $request->setParam('resource', $requestedUri); $response = $this->getMockBuilder(\Magento\Framework\App\Response\FileInterface::class)->setMethods(['setFilePath'])->getMockForAbstractClass(); $response->expects($this->any())->method('setFilePath')->will($this->returnCallback($assertionCallback)); /** @var \Magento\Framework\App\StaticResource $staticResourceApp */ $staticResourceApp = $this->objectManager->create(\Magento\Framework\App\StaticResource::class, ['response' => $response]); $staticResourceApp->launch(); }
/** * Assert that actual session messages meet expectations: * Usage examples: * $this->assertSessionMessages($this->isEmpty(), \Magento\Framework\Message\MessageInterface::TYPE_ERROR); * $this->assertSessionMessages($this->equalTo(array('Entity has been saved.')), * \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS); * * @param \PHPUnit_Framework_Constraint $constraint Constraint to compare actual messages against * @param string|null $messageType Message type filter, * one of the constants \Magento\Framework\Message\MessageInterface::* * @param string $messageManagerClass Class of the session model that manages messages */ public function assertSessionMessages(\PHPUnit_Framework_Constraint $constraint, $messageType = null, $messageManagerClass = 'Magento\\Framework\\Message\\Manager') { $this->_assertSessionErrors = false; /** @var $messageManager \Magento\Framework\Message\ManagerInterface */ $messageManager = $this->_objectManager->get($messageManagerClass); /** @var $messages \Magento\Framework\Message\AbstractMessage[] */ if ($messageType === null) { $messages = $messageManager->getMessages()->getItems(); } else { $messages = $messageManager->getMessages()->getItemsByType($messageType); } $actualMessages = []; foreach ($messages as $message) { $actualMessages[] = $message->getText(); } $this->assertThat($actualMessages, $constraint, 'Session messages do not meet expectations' . var_export($actualMessages, true)); }
/** * @magentoApiDataFixture Magento/Sales/_files/quote.php * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent.php */ public function testSetCouponSuccess() { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quote->load('test01', 'reserved_order_id'); $cartId = $this->getQuoteMaskedId($quote->getId()); $salesRule = $this->objectManager->create('Magento\\SalesRule\\Model\\Rule'); $salesRuleId = $this->objectManager->get('Magento\\Framework\\Registry')->registry('Magento/Checkout/_file/discount_10percent'); $salesRule->load($salesRuleId); $couponCode = $salesRule->getPrimaryCoupon()->getCode(); $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons/' . $couponCode, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Set']]; $requestData = ["cartId" => $cartId, "couponCode" => $couponCode]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); $quoteWithCoupon = $this->objectManager->create('Magento\\Quote\\Model\\Quote'); $quoteWithCoupon->load('test01', 'reserved_order_id'); $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode); }
/** * Return messages stored in cookies by type * * @param string|null $messageType * @return array */ protected function getCookieMessages($messageType = null) { /** @var $cookieManager CookieManagerInterface */ $cookieManager = $this->_objectManager->get(CookieManagerInterface::class); try { $messages = \Zend_Json::decode($cookieManager->getCookie(MessagePlugin::MESSAGES_COOKIES_NAME, \Zend_Json::encode([]))); if (!is_array($messages)) { $messages = []; } } catch (\Zend_Json_Exception $e) { $messages = []; } $actualMessages = []; foreach ($messages as $message) { if ($messageType === null || $message['type'] == $messageType) { $actualMessages[] = $message['text']; } } return $actualMessages; }
public function setUp() { $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->_customerSession = $this->_objectManager->get('Magento\\Customer\\Model\\Session'); $this->_block = $this->_objectManager->create('Magento\\Wishlist\\Block\\Share\\Wishlist'); }
/** * Clear config cache */ protected function resetConfig() { $this->objectManager->get('Magento\\Framework\\App\\Config\\ReinitableConfigInterface')->reinit(); }
/** * Clear config cache */ protected function _resetConfig() { $this->_objectManager->get('Magento\\Framework\\App\\Config\\ReinitableConfigInterface')->reinit(); $this->_objectManager->create('Magento\\Framework\\StoreManagerInterface')->reinitStores(); }
/** * @magentoAppIsolation enabled */ public function testGetUnsubscribeUrl() { $url = $this->_objectManager->get('Magento\\Newsletter\\Helper\\Data')->getUnsubscribeUrl($this->_subscriber); $this->assertTrue(strpos($url, 'newsletter/subscriber/unsubscribe') > 0); $this->assertFalse(strpos($url, 'admin')); }