ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Test\Access\test\AccessFileUploadAnswerTest Class Reference
+ Inheritance diagram for ILIAS\Test\Access\test\AccessFileUploadAnswerTest:
+ Collaboration diagram for ILIAS\Test\Access\test\AccessFileUploadAnswerTest:

Public Member Functions

 testConstruct ()
 
 testNoUploadPath ()
 
 testFalseWithZeroAsTestId ()
 
 testFalseWithInvalidTestId ()
 
 testCantRead ()
 
 testAnonymousWithoutAccessCode ()
 
 testAnonymousWithInvalidAccessCode ()
 
 testAnonymousWithValidAccessCode ()
 
 testUserWhichCanAccessTheTestResults ()
 

Detailed Description

Definition at line 31 of file AccessFileUploadAnswerTest.php.

Member Function Documentation

◆ testAnonymousWithInvalidAccessCode()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testAnonymousWithInvalidAccessCode ( )

Definition at line 152 of file AccessFileUploadAnswerTest.php.

152 : void
153 {
154 $called = false;
155
156 $statement = $this->getMockBuilder(ilDBStatement::class)->disableOriginalConstructor()->getMock();
157
158 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
159 $database->expects(self::once())->method('queryF')->willReturnCallback(function (string $query, array $types, array $values) use ($statement): ilDBStatement {
160 $this->assertEquals([8389, 'file.mp3', 'Random access code.', 8], $values);
161
162 return $statement;
163 });
164 $database->expects(self::once())->method('numRows')->with($statement)->willReturn(0);
165
166 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
167 $user->expects(self::once())->method('getId')->willReturn(8389);
168 $user->expects(self::once())->method('isAnonymous')->willReturn(true);
169
170 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
171 $readable->expects(self::once())->method('references')->with([678])->willReturn(true);
172
173 $object_id_of_test_id = function (int $test) use (&$called): int {
174 $this->assertEquals(8, $test);
175 $called = true;
176 return 934;
177 };
178
179 $references_of = function (int $object_id): array {
180 $this->assertEquals(934, $object_id);
181 return [678];
182 };
183
184 $session = function (string $key): ?array {
185 $this->assertEquals(ilTestSession::ACCESS_CODE_SESSION_INDEX, $key);
186
187 return [8 => 'Random access code.'];
188 };
189
190 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id, $references_of, $session);
191
192 $this->assertFalse($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
193 $this->assertTrue($called);
194 }
Interface ilDBStatement.

References ilTestSession\ACCESS_CODE_SESSION_INDEX.

◆ testAnonymousWithoutAccessCode()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testAnonymousWithoutAccessCode ( )

Definition at line 115 of file AccessFileUploadAnswerTest.php.

115 : void
116 {
117 $called = false;
118
119 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
120 $user->expects(self::never())->method('getId');
121 $user->expects(self::once())->method('isAnonymous')->willReturn(true);
122
123 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
124
125 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
126 $readable->expects(self::once())->method('references')->with([678])->willReturn(true);
127
128
129 $object_id_of_test_id = function (int $test) use (&$called): int {
130 $this->assertEquals(8, $test);
131 $called = true;
132 return 934;
133 };
134
135 $references_of = function (int $object_id): array {
136 $this->assertEquals(934, $object_id);
137 return [678];
138 };
139
140 $session = function (string $key): ?array {
141 $this->assertEquals(ilTestSession::ACCESS_CODE_SESSION_INDEX, $key);
142
143 return null;
144 };
145
146 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id, $references_of, $session);
147
148 $this->assertFalse($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
149 $this->assertTrue($called);
150 }

References ilTestSession\ACCESS_CODE_SESSION_INDEX.

◆ testAnonymousWithValidAccessCode()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testAnonymousWithValidAccessCode ( )

Definition at line 196 of file AccessFileUploadAnswerTest.php.

196 : void
197 {
198 $called = false;
199
200 $statement = $this->getMockBuilder(ilDBStatement::class)->disableOriginalConstructor()->getMock();
201
202 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
203 $database->expects(self::once())->method('queryF')->willReturnCallback(function (string $query, array $types, array $values) use ($statement): ilDBStatement {
204 $this->assertEquals([8389, 'file.mp3', 'Random access code.', 8], $values);
205
206 return $statement;
207 });
208 $database->expects(self::once())->method('numRows')->with($statement)->willReturn(1);
209
210 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
211 $user->expects(self::once())->method('getId')->willReturn(8389);
212 $user->expects(self::once())->method('isAnonymous')->willReturn(true);
213
214 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
215 $readable->expects(self::once())->method('references')->with([678])->willReturn(true);
216
217 $object_id_of_test_id = function (int $test) use (&$called): int {
218 $this->assertEquals(8, $test);
219 $called = true;
220 return 934;
221 };
222
223 $references_of = function (int $object_id): array {
224 $this->assertEquals(934, $object_id);
225 return [678];
226 };
227
228 $session = function (string $key): ?array {
229 $this->assertEquals(ilTestSession::ACCESS_CODE_SESSION_INDEX, $key);
230
231 return [8 => 'Random access code.'];
232 };
233
234 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id, $references_of, $session);
235
236 $this->assertTrue($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
237 $this->assertTrue($called);
238 }

References ilTestSession\ACCESS_CODE_SESSION_INDEX.

◆ testCantRead()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testCantRead ( )

Definition at line 86 of file AccessFileUploadAnswerTest.php.

86 : void
87 {
88 $called = false;
89
90 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
91 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
92
93 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
94 $readable->expects(self::once())->method('references')->with([678])->willReturn(false);
95
96
97
98 $object_id_of_test_id = function (int $test) use (&$called): int {
99 $this->assertEquals(8, $test);
100 $called = true;
101 return 934;
102 };
103
104 $references_of = function (int $object_id): array {
105 $this->assertEquals(934, $object_id);
106 return [678];
107 };
108
109 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id, $references_of);
110
111 $this->assertFalse($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
112 $this->assertTrue($called);
113 }

◆ testConstruct()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testConstruct ( )

Definition at line 33 of file AccessFileUploadAnswerTest.php.

33 : void
34 {
35 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
36 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
37 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
38 $this->assertInstanceOf(AccessFileUploadAnswer::class, new AccessFileUploadAnswer($user, $database, $readable));
39 }

◆ testFalseWithInvalidTestId()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testFalseWithInvalidTestId ( )

Definition at line 67 of file AccessFileUploadAnswerTest.php.

67 : void
68 {
69 $called = false;
70 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
71 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
72 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
73
74 $object_id_of_test_id = function (int $test) use (&$called): int {
75 $this->assertEquals(8, $test);
76 $called = true;
77 return 0;
78 };
79
80 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id);
81
82 $this->assertFalse($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
83 $this->assertTrue($called);
84 }

◆ testFalseWithZeroAsTestId()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testFalseWithZeroAsTestId ( )

Definition at line 52 of file AccessFileUploadAnswerTest.php.

52 : void
53 {
54 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
55 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
56 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
57
58 $instance = new AccessFileUploadAnswer($user, $database, $readable);
59
60 $object_id_of_test_id = function (): void {
61 $this->assertFalse('Should not be called.');
62 };
63
64 $this->assertFalse($instance->isPermitted('/data/assessment/tst_0/ignored/file.mp3')->value());
65 }

◆ testNoUploadPath()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testNoUploadPath ( )

Definition at line 41 of file AccessFileUploadAnswerTest.php.

41 : void
42 {
43 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
44 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
45 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
46
47 $instance = new AccessFileUploadAnswer($user, $database, $readable);
48
49 $this->assertTrue($instance->isPermitted('/data/some/path/file.pdf')->isError());
50 }

◆ testUserWhichCanAccessTheTestResults()

ILIAS\Test\Access\test\AccessFileUploadAnswerTest::testUserWhichCanAccessTheTestResults ( )

Definition at line 240 of file AccessFileUploadAnswerTest.php.

240 : void
241 {
242 $called = false;
243 $checkResultsAccessCalled = false;
244
245 $statement = $this->getMockBuilder(ilDBStatement::class)->disableOriginalConstructor()->getMock();
246
247 $database = $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
248 $database->expects(self::once())->method('queryF')->willReturnCallback(function (string $query, array $types, array $values) use ($statement): ilDBStatement {
249 $this->assertEquals(['assFileUpload', 8], $values);
250
251 return $statement;
252 });
253 $database->expects(self::once())->method('fetchAssoc')->with($statement)->willReturn([
254 'active_fi' => '11111',
255 'value1' => 'file.mp3'
256 ]);
257
258 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->getMock();
259 $user->method('getId')->willReturn(8389);
260 $user->expects(self::once())->method('isAnonymous')->willReturn(false);
261
262 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
263 $readable->expects(self::once())->method('references')->with([678])->willReturn(true);
264
265 $object_id_of_test_id = function (int $test) use (&$called): int {
266 $this->assertEquals(8, $test);
267 $called = true;
268 return 934;
269 };
270
271 $references_of = function (int $object_id): array {
272 $this->assertEquals(934, $object_id);
273 return [678];
274 };
275
276 $session = function (string $key): ?array {
277 $this->assertEquals(ilTestSession::ACCESS_CODE_SESSION_INDEX, $key);
278
279 return [8 => 'Random access code.'];
280 };
281
282 $checkResultsAccess = function (int $reference, int $test, int $active_id) use (&$checkResultsAccessCalled): bool {
283 $checkResultsAccessCalled = true;
284 $this->assertEquals('678', $reference);
285 $this->assertEquals(8, $test);
286 $this->assertEquals(11111, $active_id);
287
288 return true;
289 };
290
291 $instance = new AccessFileUploadAnswer($user, $database, $readable, $object_id_of_test_id, $references_of, $session, $checkResultsAccess);
292
293 $this->assertTrue($instance->isPermitted('/data/assessment/tst_8/ignored/file.mp3')->value());
294 $this->assertTrue($called);
295 $this->assertTrue($checkResultsAccessCalled);
296 }

References ilTestSession\ACCESS_CODE_SESSION_INDEX.


The documentation for this class was generated from the following file: