ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilObjContainerDAVTest.php
Go to the documentation of this file.
1<?php
11{
13 protected $ref_id;
14
16 protected $mocked_obj;
17
20
23
25 protected $container_dav;
26
30 protected function setUp()
31 {
32 require_once('./Services/WebDAV/classes/dav/class.ilObjContainerDAV.php');
33 require_once('./Services/WebDAV/classes/class.ilWebDAVRepositoryHelper.php');
34 require_once('./Services/WebDAV/classes/class.ilWebDAVObjDAVHelper.php');
35 require_once('./Services/WebDAV/test/dav/ilObjDummyDAV.php');
36
37 $this->ref_id = 100;
38 $this->mocked_obj = \Mockery::mock('ilContainer');
39 $this->mocked_obj->shouldReceive(['getRefId' => $this->ref_id]);
40
41 $this->mocked_repo_helper = \Mockery::mock('ilWebDAVRepositoryHelper');
42
43 $this->mocked_dav_helper = \Mockery::mock('ilWebDAVObjDAVHelper');
44
45 $this->container_dav = $this->setUpContainerDAV($this->mocked_obj, $this->mocked_repo_helper, $this->mocked_dav_helper);
46
47 parent::setUp();
48 }
49
54 {
56 // Dummy implementation
57 public function getChildCollectionType()
58 {
59 return null;
60 }
61 };
62 }
63
69 {
70 // Arrange
71 $number_of_children = 5;
72 $number_of_davable_children = $number_of_children;
73
74 $children_ref_ids = array();
75 for ($i = 101; $i < $number_of_children + 101; $i++) {
76 $children_ref_ids[] = $i;
77 }
78
79 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
80 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
81 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(true);
82 $this->mocked_dav_helper->shouldReceive('createDAVObjectForRefId')->andReturn(new ilObjDummyDAV());
83
84 // Act
85 $dav_children = $this->container_dav->getChildren();
86
87 // Assert
88 $this->assertTrue(count($dav_children) == $number_of_children);
89 }
90
100 {
101 // Arrange
102 $number_of_children = 5;
103 $number_of_davable_children = 0;
104
105 $children_ref_ids = array();
106 for ($i = 101; $i < $number_of_children + 101; $i++) {
107 $children_ref_ids[] = $i;
108 }
109
110 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
111 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(false);
112
113 // Act
114 $dav_children = $this->container_dav->getChildren();
115
116 // Assert
117 $this->assertTrue(count($dav_children) == $number_of_davable_children);
118 }
119
125 {
126 // Arrange
127 $number_of_children = 5;
128 $number_of_davable_children = 0;
129
130 $children_ref_ids = array();
131 for ($i = 101; $i < $number_of_children + 101; $i++) {
132 $children_ref_ids[] = $i;
133 }
134
135 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
136 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
137 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(false);
138
139 // Act
140 $dav_children = $this->container_dav->getChildren();
141
142 // Assert
143 $this->assertTrue(count($dav_children) == $number_of_davable_children);
144 }
145
151 {
152 // Arrange
153 $number_of_children = 5;
154 $number_of_davable_children = 1;
155
156 $children_ref_ids = array();
157 for ($i = 101; $i < $number_of_children + 101; $i++) {
158 $children_ref_ids[] = $i;
159 }
160
161 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
162 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true, true, true, false, false);
163 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(false, true, false);
164 $this->mocked_dav_helper->shouldReceive('createDAVObjectForRefId')->andReturn(new ilObjDummyDAV());
165
166 // Act
167 $dav_children = $this->container_dav->getChildren();
168
169 // Assert
170 $this->assertTrue(count($dav_children) == $number_of_davable_children
171 && $this->mocked_dav_helper->shouldHaveReceived('isDAVableObject')->times(5)
172 && $this->mocked_repo_helper->shouldHaveReceived('checkAccess')->times(3));
173 }
174
180 {
181 // Arrange
182 $number_of_children = 5;
183
184 $children_ref_ids = array();
185 for ($i = 101; $i < $number_of_children + 101; $i++) {
186 $children_ref_ids[] = $i;
187 }
188
189 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
190 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(false);
191
192 // Act
193 $child_exists = $this->container_dav->childExists('dummy');
194
195 // Assert
196 $this->assertTrue(!$child_exists);
197 }
198
204 {
205 // Arrange
206 $number_of_children = 5;
207 $searched_title = 'dummy';
208
209 $children_ref_ids = array();
210 for ($i = 101; $i < $number_of_children + 101; $i++) {
211 $children_ref_ids[] = $i;
212 }
213
214 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
215 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
216 $this->mocked_repo_helper->shouldReceive('getObjectTitleFromRefId')->andReturn('1', '2', $searched_title, '4', '5');
217 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(false);
218
219 // Act
220 $child_exists = $this->container_dav->childExists($searched_title);
221
222 // Assert
223 $this->assertTrue(!$child_exists
224 && $this->mocked_repo_helper->shouldHaveReceived('checkAccess')->once());
225 }
226
232 {
233 // Arrange
234 $number_of_children = 5;
235 $searched_title = 'dummy';
236
237 $children_ref_ids = array();
238 for ($i = 101; $i < $number_of_children + 101; $i++) {
239 $children_ref_ids[] = $i;
240 }
241
242 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
243 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
244 $this->mocked_repo_helper->shouldReceive('getObjectTitleFromRefId')->andReturn('1', '2', $searched_title, '4', '5');
245 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(true);
246
247 // Act
248 $child_exists = $this->container_dav->childExists($searched_title);
249
250 // Assert
251 $this->assertTrue($child_exists
252 && $this->mocked_repo_helper->shouldHaveReceived('checkAccess')->once());
253 }
254
260 {
261 // Arrange
262 $number_of_children = 5;
263 $searched_title = 'dummy';
264 $dummy_obj_dav = new ilObjDummyDAV();
265
266 $children_ref_ids = array();
267 for ($i = 101; $i < $number_of_children + 101; $i++) {
268 $children_ref_ids[] = $i;
269 }
270
271 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
272 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
273 $this->mocked_repo_helper->shouldReceive('getObjectTitleFromRefId')->andReturn('1', '2', $searched_title, '4', '5');
274 $this->mocked_repo_helper->shouldReceive('checkAccess')->andReturn(true);
275 $this->mocked_dav_helper->shouldReceive('createDAVObjectForRefId')->andReturn($dummy_obj_dav);
276
277 // Act
278 $returned_child = $this->container_dav->getChild($searched_title);
279
280 // Assert
281 $this->assertTrue($returned_child === $dummy_obj_dav && $this->mocked_repo_helper->shouldHaveReceived('checkAccess')->once());
282 }
283
289 {
290 // Arrange
291 $number_of_children = 5;
292 $searched_title = 'dummy';
293 $exception_thrown = false;
294
295 $children_ref_ids = array();
296 for ($i = 101; $i < $number_of_children + 101; $i++) {
297 $children_ref_ids[] = $i;
298 }
299
300 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
301 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(false);
302
303 // Act
304 try {
305 $this->container_dav->getChild($searched_title);
306 } catch (\Sabre\DAV\Exception\NotFound $e) {
307 $exception_thrown = true;
308 }
309
310 // Assert
311 $this->assertTrue($exception_thrown);
312 }
313
319 {
320 // Arrange
321 $number_of_children = 5;
322 $searched_title = 'dummy';
323 $dummy_obj_dav = new ilObjDummyDAV();
324
325 $children_ref_ids = array();
326 for ($i = 101; $i < $number_of_children + 101; $i++) {
327 $children_ref_ids[] = $i;
328 }
329
330 $this->mocked_repo_helper->shouldReceive('getChildrenOfRefId')->andReturn($children_ref_ids);
331 $this->mocked_dav_helper->shouldReceive('isDAVableObject')->andReturn(true);
332 $this->mocked_repo_helper->shouldReceive('getObjectTitleFromRefId')->andReturn('1', '2', '3', '4', '5');
333
334 // Act
335 try {
336 $this->container_dav->getChild($searched_title);
337 } catch (\Sabre\DAV\Exception\NotFound $e) {
338 $exception_thrown = true;
339 }
340
341 // Assert
342 $this->assertTrue($exception_thrown);
343 }
344
350 {
351 // Arrange
352 $file_title = 'some_file.txt';
353
354 $this->mocked_repo_helper->shouldReceive('checkCreateAccessForType')->andReturn(false);
355
356 // Act
357 try {
358 $this->container_dav->createFile($file_title);
359 } catch (\Sabre\DAV\Exception\Forbidden $e) {
360 if ($e->getMessage() == 'No write access') {
361 $exception_thrown = true;
362 }
363 }
364
365 // Assert
366 $this->assertTrue($exception_thrown);
367 }
368
374 {
375 // Arrange
376 $file_title = 'some_file.exe';
377
378 $this->mocked_repo_helper->shouldReceive('checkCreateAccessForType')->andReturn(true);
379 $this->mocked_dav_helper->shouldReceive('isValidFileNameWithValidFileExtension')->andReturn(false);
380
381 // Act
382 try {
383 $this->container_dav->createFile($file_title);
384 } catch (\Sabre\DAV\Exception\Forbidden $e) {
385 if ($e->getMessage() == 'Invalid file extension') {
386 $exception_thrown = true;
387 }
388 }
389
390 // Assert
391 $this->assertTrue($exception_thrown);
392 }
393}
An exception for terminatinating execution or to throw for unit testing.
setUpContainerDAV($mocked_obj, $mocked_repo_helper, $mocked_dav_helper)
Setup instance for ilObjectDAV.
GetChildren_NoDavableObjects_ReturnEmptyArray()
Important parameters: isDAVableObject = true checkAccess = false -> we test the behavior for no acces...
GetChildren_MixedWithNonDavableObjects_ReturnOnlyDavableObjects()
Class ilObjContainerDAV.
This is just a dummy class for unit testing.
$i
Definition: metadata.php:24