SynchronizePersistentOnLogoutObserverTest.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Observer;
  7. /**
  8. * @magentoDataFixture Magento/Customer/_files/customer.php
  9. */
  10. class SynchronizePersistentOnLogoutObserverTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Framework\ObjectManagerInterface
  14. */
  15. protected $_objectManager;
  16. /**
  17. * @var \Magento\Customer\Model\Session
  18. */
  19. protected $_customerSession;
  20. public function setUp()
  21. {
  22. $this->_objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
  23. $this->_customerSession = $this->_objectManager->get(\Magento\Customer\Model\Session::class);
  24. }
  25. /**
  26. * @magentoConfigFixture current_store persistent/options/enabled 1
  27. * @magentoConfigFixture current_store persistent/options/logout_clear 1
  28. * @magentoAppArea frontend
  29. * @magentoAppIsolation enabled
  30. */
  31. public function testSynchronizePersistentOnLogout()
  32. {
  33. $this->_customerSession->loginById(1);
  34. // check that persistent session has been stored for Customer
  35. /** @var \Magento\Persistent\Model\Session $sessionModel */
  36. $sessionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  37. \Magento\Persistent\Model\Session::class
  38. );
  39. $sessionModel->loadByCookieKey();
  40. $this->assertEquals(1, $sessionModel->getCustomerId());
  41. $this->_customerSession->logout();
  42. /** @var \Magento\Persistent\Model\Session $sessionModel */
  43. $sessionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
  44. \Magento\Persistent\Model\Session::class
  45. );
  46. $sessionModel->loadByCookieKey();
  47. $this->assertNull($sessionModel->getCustomerId());
  48. }
  49. }