magento2-docker/dev/tests/integration/testsuite/Magento/Persistent/Model/SessionTest.php

103 lines
2.9 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Persistent\Model;
class SessionTest extends \PHPUnit\Framework\TestCase
{
/**
* Session model
*
* @var \Magento\Persistent\Model\Session
*/
protected $session;
/**
* Object manager
*
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $objectManager;
/**
* The existing cookies
*
* @var array
*/
protected $existingCookies;
protected function setUp(): void
{
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
$this->session = $this->objectManager->create(
\Magento\Persistent\Model\Session::class
);
$this->existingCookies = $_COOKIE;
}
protected function tearDown(): void
{
$_COOKIE = $this->existingCookies;
}
public function testSetPersistentCookie()
{
$this->assertArrayNotHasKey(Session::COOKIE_NAME, $_COOKIE);
$key = 'sessionKey';
$this->session->setKey($key);
$this->session->setPersistentCookie(1000, '/');
$this->assertEquals($key, $_COOKIE[Session::COOKIE_NAME]);
}
public function testRemovePersistendCookie()
{
$_COOKIE[Session::COOKIE_NAME] = 'cookieValue';
$this->session->removePersistentCookie();
$this->assertArrayNotHasKey(Session::COOKIE_NAME, $_COOKIE);
}
/**
* @param int $duration
* @param string $cookieValue
* @dataProvider renewPersistentCookieDataProvider
*/
public function testRenewPersistentCookie($duration, $cookieValue = 'cookieValue')
{
$_COOKIE[Session::COOKIE_NAME] = $cookieValue;
$this->session->renewPersistentCookie($duration, '/');
$this->assertEquals($cookieValue, $_COOKIE[Session::COOKIE_NAME]);
}
public function renewPersistentCookieDataProvider()
{
return [
'no duration' => [null],
'no cookie' => [1000, null],
'all' => [1000],
];
}
/**
* @magentoDataFixture Magento/Customer/_files/customer.php
*/
public function testLoadByCookieKey()
{
/** @var \Magento\Persistent\Model\Session $preSession */
$preSession = $this->objectManager->get(\Magento\Persistent\Model\SessionFactory::class)
->create()
->loadByCookieKey();
$this->assertNull($preSession->getCustomerId());
$this->session->setCustomerId(1)->save();
$this->session->setPersistentCookie(1000, '/');
/** @var \Magento\Persistent\Model\Session $postSession */
$postSession = $this->objectManager->get(\Magento\Persistent\Model\SessionFactory::class)
->create()
->loadByCookieKey();
$this->assertEquals(1, $postSession->getCustomerId());
}
}