![]() 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/Newsletter/Controller/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Newsletter\Controller; use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\Customer\Model\AccountConfirmation; use Magento\Framework\App\Config\MutableScopeConfigInterface; use Magento\Framework\App\RequestInterface; use Magento\Framework\Data\Form\FormKey; use Magento\Newsletter\Model\ResourceModel\Subscriber as SubscriberLoader; use Magento\Newsletter\Model\Subscriber; use Magento\Store\Model\ScopeInterface; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\AbstractController; /** * Test Subscriber */ class SubscriberTest extends AbstractController { /** * Check that Customer still subscribed for newsletters emails after registration. * * @magentoDbIsolation enabled */ public function testCreatePosWithSubscribeEmailAction() { $this->markTestSkipped('Skip until failed. MAGETWO-96420'); $config = Bootstrap::getObjectManager()->get(MutableScopeConfigInterface::class); $accountConfirmationRequired = $config->getValue( AccountConfirmation::XML_PATH_IS_CONFIRM, ScopeInterface::SCOPE_WEBSITES ); $config->setValue(AccountConfirmation::XML_PATH_IS_CONFIRM, 1, ScopeInterface::SCOPE_WEBSITES); $subscriber = Bootstrap::getObjectManager()->create(Subscriber::class); $customerEmail = '[email protected]'; // Subscribe by email $subscriber->subscribe($customerEmail); $subscriber->loadByEmail($customerEmail); $subscriber->confirm($subscriber->getSubscriberConfirmCode()); // Create customer $this->fillRequestWithAccountDataAndFormKey($customerEmail); $this->dispatch('customer/account/createPost'); $this->dispatch('customer/account/confirm'); $customerRepository = Bootstrap::getObjectManager()->get(CustomerRepositoryInterface::class); /** @var \Magento\Customer\Api\Data\CustomerInterface $customer */ $customer = $customerRepository->get($customerEmail); $subscriberResource = Bootstrap::getObjectManager() ->create(SubscriberLoader::class); // check customer subscribed to newsletter $this->assertTrue($subscriberResource->loadByCustomerData($customer)['subscriber_status'] === "1"); $config->setValue( AccountConfirmation::XML_PATH_IS_CONFIRM, $accountConfirmationRequired, ScopeInterface::SCOPE_WEBSITES ); } /** * Customer Data. * * @param string $email * @return void */ private function fillRequestWithAccountDataAndFormKey($email) { Bootstrap::getObjectManager()->get(RequestInterface::class) ->setMethod('POST') ->setParam('firstname', 'firstname1') ->setParam('lastname', 'lastname1') ->setParam('company', '') ->setParam('email', $email) ->setParam('password', '_Password1') ->setParam('password_confirmation', '_Password1') ->setParam('telephone', '5123334444') ->setParam('street', ['1234 fake street', '']) ->setParam('city', 'Austin') ->setParam('region_id', 57) ->setParam('region', '') ->setParam('postcode', '78701') ->setParam('country_id', 'US') ->setParam('default_billing', '1') ->setParam('default_shipping', '1') ->setParam('is_subscribed', '0') ->setPostValue('create_address', true) ->setParam('form_key', Bootstrap::getObjectManager()->get(FormKey::class)->getFormKey()); } }