]>
Commit | Line | Data |
---|---|---|
ebd650c0 V |
1 | <?php |
2 | namespace Shaarli; | |
3 | ||
4 | use \PHPUnit\Framework\TestCase; | |
5 | ||
6 | /** | |
7 | * Fake ConfigManager | |
8 | */ | |
9 | class FakeConfigManager | |
10 | { | |
11 | public static function get($key) | |
12 | { | |
13 | return $key; | |
14 | } | |
15 | } | |
16 | ||
17 | ||
18 | /** | |
19 | * Test coverage for SessionManager | |
20 | */ | |
21 | class SessionManagerTest extends TestCase | |
22 | { | |
23 | /** | |
24 | * Generate a session token | |
25 | */ | |
26 | public function testGenerateToken() | |
27 | { | |
28 | $session = []; | |
29 | $conf = new FakeConfigManager(); | |
30 | $sessionManager = new SessionManager($session, $conf); | |
31 | ||
32 | $token = $sessionManager->generateToken(); | |
33 | ||
34 | $this->assertEquals(1, $session['tokens'][$token]); | |
35 | $this->assertEquals(40, strlen($token)); | |
36 | } | |
37 | ||
38 | /** | |
39 | * Generate and check a session token | |
40 | */ | |
41 | public function testGenerateAndCheckToken() | |
42 | { | |
43 | $session = []; | |
44 | $conf = new FakeConfigManager(); | |
45 | $sessionManager = new SessionManager($session, $conf); | |
46 | ||
47 | $token = $sessionManager->generateToken(); | |
48 | ||
49 | // ensure a token has been generated | |
50 | $this->assertEquals(1, $session['tokens'][$token]); | |
51 | $this->assertEquals(40, strlen($token)); | |
52 | ||
53 | // check and destroy the token | |
54 | $this->assertTrue($sessionManager->checkToken($token)); | |
55 | $this->assertFalse(isset($session['tokens'][$token])); | |
56 | ||
57 | // ensure the token has been destroyed | |
58 | $this->assertFalse($sessionManager->checkToken($token)); | |
59 | } | |
60 | ||
61 | /** | |
62 | * Check an invalid session token | |
63 | */ | |
64 | public function testCheckInvalidToken() | |
65 | { | |
66 | $session = []; | |
67 | $conf = new FakeConfigManager(); | |
68 | $sessionManager = new SessionManager($session, $conf); | |
69 | ||
70 | $this->assertFalse($sessionManager->checkToken('4dccc3a45ad9d03e5542b90c37d8db6d10f2b38b')); | |
71 | } | |
72 | } |