‪TYPO3CMS  11.5
UserSessionTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
21 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
22 
23 class ‪UserSessionTest extends UnitTestCase
24 {
28  public function ‪createFromRecordTest(): void
29  {
30  $record = [
31  'ses_id' => '12345abcdf',
32  'ses_data' => serialize(['some' => 'data', 'backuserid' => 1]),
33  'ses_userid' => 0,
34  'ses_iplock' => '[DISABLED]',
35  'ses_tstamp' => 1607041477,
36  'ses_permanent' => 1,
37  ];
38 
39  $session = ‪UserSession::createFromRecord($record['ses_id'], $record, true);
40 
41  self::assertEquals($record['ses_id'], $session->getIdentifier());
42  self::assertNull($session->getUserId());
43  self::assertTrue($session->isAnonymous());
44  self::assertEquals($record['ses_tstamp'], $session->getLastUpdated());
45  self::assertEquals($record['ses_iplock'], $session->getIpLock());
46  self::assertTrue($session->isNew());
47  self::assertTrue($session->isPermanent());
48  self::assertTrue($session->needsUpdate());
49  self::assertEquals($record, $session->toArray());
50 
51  $session->set('new', 'value');
52 
53  self::assertTrue($session->hasData());
54  self::assertEquals(1, $session->get('backuserid'));
55  self::assertEquals(['some' => 'data', 'backuserid' => 1, 'new' => 'value'], $session->getData());
56 
57  $session->overrideData(['override' => 'data']);
58 
59  self::assertTrue($session->dataWasUpdated());
60  self::assertEquals(['override' => 'data'], $session->getData());
61  }
62 
66  public function ‪createNonFixated(): void
67  {
68  $session = ‪UserSession::createNonFixated('fdcba54321');
69 
70  self::assertEquals('fdcba54321', $session->getIdentifier());
71  self::assertEmpty($session->getIpLock());
72  self::assertEquals(‪$GLOBALS['EXEC_TIME'], $session->getLastUpdated());
73  self::assertNull($session->getUserId());
74  self::assertFalse($session->hasData());
75  self::assertFalse($session->isPermanent());
76  self::assertFalse($session->needsUpdate());
77  self::assertFalse($session->dataWasUpdated());
78  self::assertTrue($session->isNew());
79  self::assertTrue($session->isAnonymous());
80  self::assertEquals(
81  [
82  'ses_id' => 'fdcba54321',
83  'ses_data' => 'a:0:{}',
84  'ses_userid' => 0,
85  'ses_iplock' => '',
86  'ses_tstamp' => ‪$GLOBALS['EXEC_TIME'],
87  ],
88  $session->toArray()
89  );
90  }
91 }
‪TYPO3\CMS\Core\Tests\Unit\Session\UserSessionTest\createNonFixated
‪createNonFixated()
Definition: UserSessionTest.php:66
‪TYPO3\CMS\Core\Tests\Unit\Session
‪TYPO3\CMS\Core\Session\UserSession\createFromRecord
‪static UserSession createFromRecord(string $id, array $record, bool $markAsNew=false)
Definition: UserSession.php:224
‪TYPO3\CMS\Core\Session\UserSession
Definition: UserSession.php:39
‪TYPO3\CMS\Core\Session\UserSession\createNonFixated
‪static UserSession createNonFixated(string $identifier)
Definition: UserSession.php:247
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Tests\Unit\Session\UserSessionTest\createFromRecordTest
‪createFromRecordTest()
Definition: UserSessionTest.php:28
‪TYPO3\CMS\Core\Tests\Unit\Session\UserSessionTest
Definition: UserSessionTest.php:24