diff options
author | VirtualTam <virtualtam@flibidi.net> | 2017-11-08 20:24:49 +0100 |
---|---|---|
committer | VirtualTam <virtualtam@flibidi.net> | 2017-11-08 20:26:03 +0100 |
commit | dd883aaf0999e9dc783a1a19bfeeab181c949d55 (patch) | |
tree | 8cd606b71d846c65cf1b8ad4b577c86c0171987e | |
parent | b14d34d2c7b7a7360adcc823472a43f64b579e1c (diff) | |
download | Shaarli-dd883aaf0999e9dc783a1a19bfeeab181c949d55.tar.gz Shaarli-dd883aaf0999e9dc783a1a19bfeeab181c949d55.tar.zst Shaarli-dd883aaf0999e9dc783a1a19bfeeab181c949d55.zip |
Improve SessionManager constructor and tests
Relates to https://github.com/shaarli/Shaarli/pull/1005
Changed:
- pass a copy of the ConfigManager instance instead of a reference
- move FakeConfigManager to a dedicated file
- update tests
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
-rw-r--r-- | application/SessionManager.php | 6 | ||||
-rw-r--r-- | tests/SessionManagerTest.php | 31 | ||||
-rw-r--r-- | tests/utils/FakeConfigManager.php | 12 |
3 files changed, 25 insertions, 24 deletions
diff --git a/application/SessionManager.php b/application/SessionManager.php index 3aa4ddfc..71f0b38d 100644 --- a/application/SessionManager.php +++ b/application/SessionManager.php | |||
@@ -12,12 +12,12 @@ class SessionManager | |||
12 | * Constructor | 12 | * Constructor |
13 | * | 13 | * |
14 | * @param array $session The $_SESSION array (reference) | 14 | * @param array $session The $_SESSION array (reference) |
15 | * @param ConfigManager $conf ConfigManager instance (reference) | 15 | * @param ConfigManager $conf ConfigManager instance |
16 | */ | 16 | */ |
17 | public function __construct(& $session, & $conf) | 17 | public function __construct(& $session, $conf) |
18 | { | 18 | { |
19 | $this->session = &$session; | 19 | $this->session = &$session; |
20 | $this->conf = &$conf; | 20 | $this->conf = $conf; |
21 | } | 21 | } |
22 | 22 | ||
23 | /** | 23 | /** |
diff --git a/tests/SessionManagerTest.php b/tests/SessionManagerTest.php index a92c3ccc..aa75962a 100644 --- a/tests/SessionManagerTest.php +++ b/tests/SessionManagerTest.php | |||
@@ -1,4 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | require_once 'tests/utils/FakeConfigManager.php'; | ||
3 | |||
2 | // Initialize reference data _before_ PHPUnit starts a session | 4 | // Initialize reference data _before_ PHPUnit starts a session |
3 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; | 5 | require_once 'tests/utils/ReferenceSessionIdHashes.php'; |
4 | ReferenceSessionIdHashes::genAllHashes(); | 6 | ReferenceSessionIdHashes::genAllHashes(); |
@@ -8,18 +10,6 @@ use \PHPUnit\Framework\TestCase; | |||
8 | 10 | ||
9 | 11 | ||
10 | /** | 12 | /** |
11 | * Fake ConfigManager | ||
12 | */ | ||
13 | class FakeConfigManager | ||
14 | { | ||
15 | public static function get($key) | ||
16 | { | ||
17 | return $key; | ||
18 | } | ||
19 | } | ||
20 | |||
21 | |||
22 | /** | ||
23 | * Test coverage for SessionManager | 13 | * Test coverage for SessionManager |
24 | */ | 14 | */ |
25 | class SessionManagerTest extends TestCase | 15 | class SessionManagerTest extends TestCase |
@@ -27,12 +17,16 @@ class SessionManagerTest extends TestCase | |||
27 | // Session ID hashes | 17 | // Session ID hashes |
28 | protected static $sidHashes = null; | 18 | protected static $sidHashes = null; |
29 | 19 | ||
20 | // Fake ConfigManager | ||
21 | protected static $conf = null; | ||
22 | |||
30 | /** | 23 | /** |
31 | * Assign reference data | 24 | * Assign reference data |
32 | */ | 25 | */ |
33 | public static function setUpBeforeClass() | 26 | public static function setUpBeforeClass() |
34 | { | 27 | { |
35 | self::$sidHashes = ReferenceSessionIdHashes::getHashes(); | 28 | self::$sidHashes = ReferenceSessionIdHashes::getHashes(); |
29 | self::$conf = new FakeConfigManager(); | ||
36 | } | 30 | } |
37 | 31 | ||
38 | /** | 32 | /** |
@@ -41,8 +35,7 @@ class SessionManagerTest extends TestCase | |||
41 | public function testGenerateToken() | 35 | public function testGenerateToken() |
42 | { | 36 | { |
43 | $session = []; | 37 | $session = []; |
44 | $conf = new FakeConfigManager(); | 38 | $sessionManager = new SessionManager($session, self::$conf); |
45 | $sessionManager = new SessionManager($session, $conf); | ||
46 | 39 | ||
47 | $token = $sessionManager->generateToken(); | 40 | $token = $sessionManager->generateToken(); |
48 | 41 | ||
@@ -61,9 +54,7 @@ class SessionManagerTest extends TestCase | |||
61 | $token => 1, | 54 | $token => 1, |
62 | ], | 55 | ], |
63 | ]; | 56 | ]; |
64 | $conf = new FakeConfigManager(); | 57 | $sessionManager = new SessionManager($session, self::$conf); |
65 | $sessionManager = new SessionManager($session, $conf); | ||
66 | |||
67 | 58 | ||
68 | // check and destroy the token | 59 | // check and destroy the token |
69 | $this->assertTrue($sessionManager->checkToken($token)); | 60 | $this->assertTrue($sessionManager->checkToken($token)); |
@@ -79,8 +70,7 @@ class SessionManagerTest extends TestCase | |||
79 | public function testGenerateAndCheckToken() | 70 | public function testGenerateAndCheckToken() |
80 | { | 71 | { |
81 | $session = []; | 72 | $session = []; |
82 | $conf = new FakeConfigManager(); | 73 | $sessionManager = new SessionManager($session, self::$conf); |
83 | $sessionManager = new SessionManager($session, $conf); | ||
84 | 74 | ||
85 | $token = $sessionManager->generateToken(); | 75 | $token = $sessionManager->generateToken(); |
86 | 76 | ||
@@ -102,8 +92,7 @@ class SessionManagerTest extends TestCase | |||
102 | public function testCheckInvalidToken() | 92 | public function testCheckInvalidToken() |
103 | { | 93 | { |
104 | $session = []; | 94 | $session = []; |
105 | $conf = new FakeConfigManager(); | 95 | $sessionManager = new SessionManager($session, self::$conf); |
106 | $sessionManager = new SessionManager($session, $conf); | ||
107 | 96 | ||
108 | $this->assertFalse($sessionManager->checkToken('4dccc3a45ad9d03e5542b90c37d8db6d10f2b38b')); | 97 | $this->assertFalse($sessionManager->checkToken('4dccc3a45ad9d03e5542b90c37d8db6d10f2b38b')); |
109 | } | 98 | } |
diff --git a/tests/utils/FakeConfigManager.php b/tests/utils/FakeConfigManager.php new file mode 100644 index 00000000..f29760cb --- /dev/null +++ b/tests/utils/FakeConfigManager.php | |||
@@ -0,0 +1,12 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Fake ConfigManager | ||
5 | */ | ||
6 | class FakeConfigManager | ||
7 | { | ||
8 | public static function get($key) | ||
9 | { | ||
10 | return $key; | ||
11 | } | ||
12 | } | ||