UserTest::testIsloggedInTrue()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 11
rs 9.4285
cc 1
eloc 6
nc 1
nop 0
1
<?php
2
3
namespace OpCacheGUITest\Unit\Auth;
4
5
use OpCacheGUI\Auth\User;
6
use OpCacheGUI\Auth\Whitelist;
7
use OpCacheGUI\Storage\Session;
8
use PHPUnit\Framework\TestCase;
9
10
class UserTest extends TestCase
11
{
12
    /**
13
     * @covers OpCacheGUI\Auth\User::__construct
14
     * @covers OpCacheGUI\Auth\User::isLoggedIn
15
     */
16
    public function testIsloggedInTrue()
17
    {
18
        $session = $this->createMock(Session::class);
19
        $session->method('isKeyValid')->willReturn(true);
20
21
        $whitelist = $this->createMock(Whitelist::class);
22
23
        $user = new User($session, 'user', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
24
25
        $this->assertTrue($user->isLoggedIn());
26
    }
27
28
    /**
29
     * @covers OpCacheGUI\Auth\User::__construct
30
     * @covers OpCacheGUI\Auth\User::isLoggedIn
31
     */
32
    public function testIsloggedInFalse()
33
    {
34
        $session = $this->createMock(Session::class);
35
        $session->method('isKeyValid')->willReturn(false);
36
37
        $whitelist = $this->createMock(Whitelist::class);
38
39
        $user = new User($session, 'user', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
40
41
        $this->assertFalse($user->isLoggedIn());
42
    }
43
44
    /**
45
     * @covers OpCacheGUI\Auth\User::__construct
46
     * @covers OpCacheGUI\Auth\User::requiresLogin
47
     */
48
    public function testRequiresLoginLoginNotEnabledInConfig()
49
    {
50
        $whitelist = $this->createMock(Whitelist::class);
51
52
        $user = new User($this->createMock(Session::class), '', '', $whitelist);
53
54
        $this->assertFalse($user->requiresLogin());
55
    }
56
57
    /**
58
     * @covers OpCacheGUI\Auth\User::__construct
59
     * @covers OpCacheGUI\Auth\User::isLoggedIn
60
     * @covers OpCacheGUI\Auth\User::requiresLogin
61
     */
62
    public function testRequiresLoginRequiredButNotLoggedIn()
63
    {
64
        $session = $this->createMock(Session::class);
65
        $session->method('isKeyValid')->willReturn(false);
66
67
        $whitelist = $this->createMock(Whitelist::class);
68
69
        $user = new User($session, 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
70
71
        $this->assertTrue($user->requiresLogin());
72
    }
73
74
    /**
75
     * @covers OpCacheGUI\Auth\User::__construct
76
     * @covers OpCacheGUI\Auth\User::isLoggedIn
77
     * @covers OpCacheGUI\Auth\User::requiresLogin
78
     */
79
    public function testRequiresLoginRequiredAndLoggedIn()
80
    {
81
        $session = $this->createMock(Session::class);
82
        $session->method('isKeyValid')->willReturn(true);
83
84
        $whitelist = $this->createMock(Whitelist::class);
85
86
        $user = new User($session, 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
87
88
        $this->assertFalse($user->requiresLogin());
89
    }
90
91
    /**
92
     * @covers OpCacheGUI\Auth\User::__construct
93
     * @covers OpCacheGUI\Auth\User::login
94
     */
95
    public function testLoginFailedIncorrectPassword()
96
    {
97
        $whitelist = $this->createMock(Whitelist::class);
98
        $whitelist->method('isAllowed')->will($this->returnValue(true));
99
100
        $user = new User($this->createMock(Session::class), 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
101
102
        $this->assertFalse($user->login('foo', 'nothashedbar', '127.0.0.1'));
103
    }
104
105
    /**
106
     * @covers OpCacheGUI\Auth\User::__construct
107
     * @covers OpCacheGUI\Auth\User::login
108
     */
109
    public function testLoginFailedIncorrectUsername()
110
    {
111
        $whitelist = $this->createMock(Whitelist::class);
112
        $whitelist->method('isAllowed')->will($this->returnValue(true));
113
114
        $user = new User($this->createMock(Session::class), 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
115
116
        $this->assertFalse($user->login('incorrect', 'bar', '127.0.0.1'));
117
    }
118
119
    /**
120
     * @covers OpCacheGUI\Auth\User::__construct
121
     * @covers OpCacheGUI\Auth\User::login
122
     */
123
    public function testLoginFailedIncorrectPasswordAndUsername()
124
    {
125
        $whitelist = $this->createMock(Whitelist::class);
126
        $whitelist->method('isAllowed')->will($this->returnValue(true));
127
128
        $user = new User($this->createMock(Session::class), 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
129
130
        $this->assertFalse($user->login('incorrect', 'incorrect', '127.0.0.1'));
131
    }
132
133
    /**
134
     * @covers OpCacheGUI\Auth\User::__construct
135
     * @covers OpCacheGUI\Auth\User::login
136
     */
137
    public function testLoginFailedIpNotWhitelisted()
138
    {
139
        $whitelist = $this->createMock(Whitelist::class);
140
        $whitelist->method('isAllowed')->will($this->returnValue(false));
141
142
        $user = new User($this->createMock(Session::class), 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
143
144
        $this->assertFalse($user->login('foo', 'bar', '127.0.0.1'));
145
    }
146
147
    /**
148
     * @covers OpCacheGUI\Auth\User::__construct
149
     * @covers OpCacheGUI\Auth\User::login
150
     */
151
    public function testLoginSuccess()
152
    {
153
        $whitelist = $this->createMock(Whitelist::class);
154
        $whitelist->method('isAllowed')->will($this->returnValue(true));
155
156
        $user = new User($this->createMock(Session::class), 'foo', '$2y$14$Gh5y/MR130J3V1xhH5eGWOvpTMgLu9Er82o3ZNrhxMuyZm6Sdx96q', $whitelist);
157
158
        $this->assertTrue($user->login('foo', 'bar', '127.0.0.1'));
159
    }
160
}
161