Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
30 / 30
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
1 / 1
phpbb_session_test_case
100.00% covered (success)
100.00%
30 / 30
100.00% covered (success)
100.00%
4 / 4
4
100.00% covered (success)
100.00%
1 / 1
 setUp
100.00% covered (success)
100.00%
15 / 15
100.00% covered (success)
100.00%
1 / 1
1
 check_user_session_data
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
1
 check_expired_sessions_recent
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 check_sessions_equals
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3*
4* This file is part of the phpBB Forum Software package.
5*
6* @copyright (c) phpBB Limited <https://www.phpbb.com>
7* @license GNU General Public License, version 2 (GPL-2.0)
8*
9* For full copyright and license information, please see
10* the docs/CREDITS.txt file.
11*
12*/
13
14require_once __DIR__ . '/../session/testable_factory.php';
15require_once __DIR__ . '/../session/testable_facade.php';
16
17abstract class phpbb_session_test_case extends phpbb_database_test_case
18{
19    /** @var phpbb_session_testable_factory */
20    protected $session_factory;
21
22    /** @var phpbb_session_testable_facade */
23    protected $session_facade;
24
25    /** @var \phpbb\db\driver\driver_interface */
26    protected $db;
27
28    protected function setUp(): void
29    {
30        parent::setUp();
31
32        global $symfony_request, $phpbb_path_helper, $phpbb_root_path, $phpEx;
33        $symfony_request = new \phpbb\symfony_request(
34            new phpbb_mock_request()
35        );
36        $phpbb_path_helper = new \phpbb\path_helper(
37            $symfony_request,
38            $this->createMock('\phpbb\request\request'),
39            $phpbb_root_path,
40            $phpEx
41        );
42
43        $this->session_factory = new phpbb_session_testable_factory;
44        $this->db = $this->new_dbal();
45        $this->session_facade =
46            new phpbb_session_testable_facade($this->db, $this->session_factory);
47    }
48
49    protected function check_user_session_data($expected_session_data, $message)
50    {
51        $sql= 'SELECT username_clean, user_lastvisit, user_lastpage
52            FROM ' . USERS_TABLE . '
53            ORDER BY user_id';
54
55        $this->assertSqlResultEquals($expected_session_data, $sql, $message);
56    }
57
58    protected function check_expired_sessions_recent($expected_sessions, $message)
59    {
60        global $config;
61        $time_now = time();
62        $sql = 'SELECT session_user_id, MAX(session_time) AS recent_time
63            FROM ' . SESSIONS_TABLE . '
64            WHERE session_time < ' . ($time_now - (int) $config['session_length']) . '
65                AND session_user_id <> ' . ANONYMOUS . '
66            GROUP BY session_user_id ORDER BY session_user_id ASC';
67
68        $this->assertSqlResultEquals($expected_sessions, $sql, $message);
69    }
70
71    protected function check_sessions_equals($expected_sessions, $message)
72    {
73        $sql = 'SELECT session_id, session_user_id
74                FROM phpbb_sessions
75                ORDER BY session_user_id, session_id';
76
77        $this->assertSqlResultEquals($expected_sessions, $sql, $message);
78    }
79}