ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilTermsOfServiceRequestTargetAdjustmentCaseTest.php
Go to the documentation of this file.
1<?php declare(strict_types=1);
2
3/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5use Psr\Http\Message\ServerRequestInterface;
6
12{
17 {
18 $ctrl = $this
19 ->getMockBuilder(ilCtrl::class)
20 ->disableOriginalConstructor()
21 ->setMethods(['redirectToURL', 'getCmdClass', 'getCmd'])
22 ->getMock();
23
24 $ctrl
25 ->expects($this->any())
26 ->method('getCmdClass')
27 ->willReturn('ilDashboardGUI');
28
29 $ctrl
30 ->expects($this->any())
31 ->method('getCmd')
32 ->willReturn('');
33
34 $ctrl
35 ->expects($this->once())
36 ->method('redirectToURL');
37
38 $user = $this
39 ->getMockBuilder(ilObjUser::class)
40 ->disableOriginalConstructor()
41 ->setMethods(['hasToAcceptTermsOfService', 'checkTimeLimit', 'hasToAcceptTermsOfServiceInSession'])
42 ->getMock();
43
44 $user
45 ->expects($this->atLeast(1))
46 ->method('hasToAcceptTermsOfService')
47 ->willReturn(true);
48
49 $user
50 ->expects($this->atLeast(1))
51 ->method('checkTimeLimit')
52 ->willReturn(true);
53
54 $user
55 ->expects($this->atLeast(1))
56 ->method('hasToAcceptTermsOfServiceInSession')
57 ->willReturn(true);
58
59 $request = $this
60 ->getMockBuilder(ServerRequestInterface::class)
61 ->disableOriginalConstructor()
62 ->getMock();
63
64 $requestInterceptor = new ilTermsOfServiceRequestTargetAdjustmentCase($user, $ctrl, $request);
65
66 $this->assertTrue($requestInterceptor->shouldAdjustRequest());
67 $this->assertTrue($requestInterceptor->shouldStoreRequestTarget());
68 $requestInterceptor->adjust();
69 }
70
75 {
76 $ctrl = $this
77 ->getMockBuilder(ilCtrl::class)
78 ->disableOriginalConstructor()
79 ->setMethods(['getCmdClass', 'getCmd'])
80 ->getMock();
81
82 $ctrl
83 ->expects($this->atLeast(1))
84 ->method('getCmdClass')
85 ->willReturn('ilstartupgui');
86
87 $ctrl
88 ->expects($this->atLeast(1))
89 ->method('getCmd')
90 ->willReturn('getacceptance');
91
92 $user = $this
93 ->getMockBuilder(ilObjUser::class)
94 ->disableOriginalConstructor()
95 ->setMethods(['hasToAcceptTermsOfService', 'checkTimeLimit', 'hasToAcceptTermsOfServiceInSession'])
96 ->getMock();
97
98 $user
99 ->expects($this->any())
100 ->method('hasToAcceptTermsOfService')
101 ->willReturn(true);
102
103 $user
104 ->expects($this->any())
105 ->method('checkTimeLimit')
106 ->willReturn(true);
107
108 $user
109 ->expects($this->any())
110 ->method('hasToAcceptTermsOfServiceInSession')
111 ->willReturn(true);
112
113 $request = $this
114 ->getMockBuilder(ServerRequestInterface::class)
115 ->disableOriginalConstructor()
116 ->getMock();
117
118 $requestInterceptor = new ilTermsOfServiceRequestTargetAdjustmentCase($user, $ctrl, $request);
119
120 $this->assertFalse($requestInterceptor->shouldAdjustRequest());
121 }
122
127 public function userProvider() : array
128 {
129 $user1 = $this
130 ->getMockBuilder(ilObjUser::class)
131 ->disableOriginalConstructor()
132 ->setMethods(['hasToAcceptTermsOfService', 'checkTimeLimit', 'hasToAcceptTermsOfServiceInSession'])
133 ->getMock();
134
135 $user1
136 ->expects($this->any())
137 ->method('hasToAcceptTermsOfService')
138 ->willReturn(false);
139
140 $user1
141 ->expects($this->any())
142 ->method('checkTimeLimit')
143 ->willReturn(true);
144
145 $user1
146 ->expects($this->any())
147 ->method('hasToAcceptTermsOfServiceInSession')
148 ->willReturn(true);
149
150 $user2 = $this
151 ->getMockBuilder(ilObjUser::class)
152 ->disableOriginalConstructor()
153 ->setMethods(['hasToAcceptTermsOfService', 'checkTimeLimit', 'hasToAcceptTermsOfServiceInSession'])
154 ->getMock();
155
156 $user2
157 ->expects($this->any())
158 ->method('hasToAcceptTermsOfService')
159 ->willReturn(true);
160
161 $user2
162 ->expects($this->any())
163 ->method('checkTimeLimit')
164 ->willReturn(false);
165
166 $user2
167 ->expects($this->any())
168 ->method('hasToAcceptTermsOfServiceInSession')
169 ->willReturn(true);
170
171 $user3 = $this
172 ->getMockBuilder(ilObjUser::class)
173 ->disableOriginalConstructor()
174 ->setMethods(['hasToAcceptTermsOfService', 'checkTimeLimit', 'hasToAcceptTermsOfServiceInSession'])
175 ->getMock();
176
177 $user3
178 ->expects($this->any())
179 ->method('hasToAcceptTermsOfService')
180 ->willReturn(true);
181
182 $user3
183 ->expects($this->any())
184 ->method('checkTimeLimit')
185 ->willReturn(true);
186
187 $user3
188 ->expects($this->any())
189 ->method('hasToAcceptTermsOfServiceInSession')
190 ->willReturn(false);
191
192 return [
193 'User 1' => [$user1],
194 'User 2' => [$user2],
195 'User 3' => [$user3],
196 ];
197 }
198
205 {
206 $ctrl = $this
207 ->getMockBuilder(ilCtrl::class)
208 ->disableOriginalConstructor()
209 ->setMethods(['getCmdClass', 'getCmd'])
210 ->getMock();
211
212 $ctrl
213 ->expects($this->any())
214 ->method('getCmdClass')
215 ->willReturn('ilDashboardGUI');
216
217 $ctrl
218 ->expects($this->any())
219 ->method('getCmd')
220 ->willReturn('');
221
222 $request = $this
223 ->getMockBuilder(ServerRequestInterface::class)
224 ->disableOriginalConstructor()
225 ->getMock();
226
227 $requestInterceptor = new ilTermsOfServiceRequestTargetAdjustmentCase($user, $ctrl, $request);
228
229 $this->assertFalse($requestInterceptor->shouldAdjustRequest());
230 }
231}
An exception for terminatinating execution or to throw for unit testing.
Class ilTermsOfServiceBaseTest.
testUserShouldNotBeForcedToAcceptTermsOfServiceWhenAlreadyDone(ilObjUser $user)
@dataProvider userProvider