3 use \PHPUnit\Framework\TestCase;
4 use \Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
6 require_once
'ilObjDummyDAV.php';
30 protected function setUp() : void
33 $this->mocked_obj = \Mockery::mock(
'ilContainer');
34 $this->mocked_obj->shouldReceive([
'getRefId' => $this->ref_id]);
36 $this->mocked_repo_helper = \Mockery::mock(
'ilWebDAVRepositoryHelper');
38 $this->mocked_dav_helper = \Mockery::mock(
'ilWebDAVObjDAVHelper');
40 $this->container_dav = $this->
setUpContainerDAV($this->mocked_obj, $this->mocked_repo_helper, $this->mocked_dav_helper);
52 public function getChildCollectionType()
66 $number_of_children = 5;
67 $number_of_davable_children = $number_of_children;
69 $children_ref_ids = array();
70 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
71 $children_ref_ids[] =
$i;
72 $children_titles[] =
"abc" .
$i;
75 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
76 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
77 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturn(
true);
78 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
79 $this->mocked_dav_helper->shouldReceive(
'createDAVObjectForRefId')->andReturn(
new ilObjDummyDAV());
82 $dav_children = $this->container_dav->getChildren();
85 $this->assertTrue(count($dav_children) == $number_of_children);
99 $number_of_children = 5;
100 $number_of_davable_children = 0;
102 $children_ref_ids = array();
103 $children_titles = array();
104 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
105 $children_ref_ids[] =
$i;
106 $children_titles[] =
"abc" .
$i;
109 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
110 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
false);
111 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
112 $this->mocked_repo_helper->shouldReceive(
'getObjectTypeFromRefId')->andReturnValues($children_ref_ids);
113 $this->mocked_dav_helper->shouldReceive(
'isDAVableObjType')->andReturn(
false);
116 $dav_children = $this->container_dav->getChildren();
119 $this->assertTrue(count($dav_children) == $number_of_davable_children);
129 $number_of_children = 5;
130 $number_of_davable_children = 0;
132 $children_ref_ids = array();
133 $children_titles = array();
134 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
135 $children_ref_ids[] =
$i;
136 $children_titles[] =
"abc" .
$i;
139 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
140 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
141 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
142 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
143 if ($permission ==
'visible' || $permission ==
'read') {
151 $dav_children = $this->container_dav->getChildren();
154 $this->assertTrue(count($dav_children) == $number_of_davable_children);
164 $number_of_children = 5;
165 $number_of_davable_children = 0;
167 $children_ref_ids = array();
168 $children_titles = array();
169 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
170 $children_ref_ids[] =
$i;
171 $children_titles[] =
"abc" .
$i;
174 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
175 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
176 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
177 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
178 if ($permission ==
'visible') {
180 } elseif ($permission ==
'read') {
188 $dav_children = $this->container_dav->getChildren();
191 $this->assertTrue(count($dav_children) == $number_of_davable_children);
201 $number_of_children = 5;
202 $number_of_davable_children = 0;
204 $children_ref_ids = array();
205 $children_titles = array();
206 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
207 $children_ref_ids[] =
$i;
208 $children_titles[] =
"abc" .
$i;
211 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
212 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
213 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
214 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
215 if ($permission ==
'visible') {
217 } elseif ($permission ==
'read') {
225 $dav_children = $this->container_dav->getChildren();
228 $this->assertTrue(count($dav_children) == $number_of_davable_children);
238 $number_of_children = 5;
239 $number_of_davable_children = 3;
241 $children_ref_ids = array();
242 $children_titles = array();
243 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
244 $children_ref_ids[] =
$i;
245 $children_titles[] =
"abc" .
$i;
248 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
249 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true,
true,
true,
false,
false);
250 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturnValues($children_titles);
251 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturn(
true);
252 $this->mocked_repo_helper->shouldReceive(
'getObjectTypeFromRefId')->andReturn(
false);
253 $this->mocked_dav_helper->shouldReceive(
'isDAVableObjType')->andReturn(
false);
254 $this->mocked_dav_helper->shouldReceive(
'createDAVObjectForRefId')->andReturn(
new ilObjDummyDAV());
257 $dav_children = $this->container_dav->getChildren();
260 $this->mocked_dav_helper->shouldHaveReceived(
'isDAVableObject')->times(5);
261 $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->times(6);
262 $this->assertTrue(count($dav_children) == $number_of_davable_children);
272 $number_of_children = 5;
274 $children_ref_ids = array();
275 $children_titles = array();
276 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
277 $children_ref_ids[] =
$i;
278 $children_titles[] =
"abc" .
$i;
281 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
282 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
false);
285 $child_exists = $this->container_dav->childExists(
'dummy');
288 $this->assertTrue(!$child_exists);
298 $number_of_children = 5;
299 $searched_title =
'dummy';
301 $children_ref_ids = array();
302 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
303 $children_ref_ids[] =
$i;
306 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
307 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
308 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
't1',
't2', $searched_title,
't4',
't5');
309 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
310 if ($permission ==
'visible' || $permission ==
'read') {
318 $child_exists = $this->container_dav->childExists($searched_title);
321 $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->once();
322 $this->assertTrue(!$child_exists);
332 $number_of_children = 5;
333 $searched_title =
'dummy';
335 $children_ref_ids = array();
336 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
337 $children_ref_ids[] =
$i;
340 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
341 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
342 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
't1',
't2', $searched_title,
't4',
't5');
343 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
344 if ($permission ==
'visible') {
346 } elseif ($permission ==
'read') {
354 $child_exists = $this->container_dav->childExists($searched_title);
357 $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->twice();
358 $this->assertTrue(!$child_exists);
368 $number_of_children = 5;
369 $searched_title =
'dummy';
371 $children_ref_ids = array();
372 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
373 $children_ref_ids[] =
$i;
376 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
377 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
378 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
't1',
't2', $searched_title,
't4',
't5');
379 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturnUsing(
function ($permission, $ref) {
380 if ($permission ==
'visible') {
382 } elseif ($permission ==
'read') {
390 $child_exists = $this->container_dav->childExists($searched_title);
393 $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->once();
394 $this->assertTrue(!$child_exists);
404 $number_of_children = 5;
405 $searched_title =
'dummy';
407 $children_ref_ids = array();
408 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
409 $children_ref_ids[] =
$i;
412 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
413 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
414 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
'1',
'2', $searched_title,
'4',
'5');
415 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturn(
true);
418 $child_exists = $this->container_dav->childExists($searched_title);
421 $this->assertTrue($child_exists
422 && $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->twice());
432 $number_of_children = 5;
433 $searched_title =
'dummy';
436 $children_ref_ids = array();
437 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
438 $children_ref_ids[] =
$i;
441 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
442 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
443 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
'1',
'2', $searched_title,
'4',
'5');
444 $this->mocked_repo_helper->shouldReceive(
'checkAccess')->andReturn(
true);
445 $this->mocked_dav_helper->shouldReceive(
'createDAVObjectForRefId')->andReturn($dummy_obj_dav);
448 $returned_child = $this->container_dav->getChild($searched_title);
451 $this->mocked_repo_helper->shouldHaveReceived(
'checkAccess')->twice();
452 $this->assertTrue($returned_child === $dummy_obj_dav);
462 $number_of_children = 5;
463 $searched_title =
'dummy';
464 $exception_thrown =
false;
466 $children_ref_ids = array();
467 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
468 $children_ref_ids[] =
$i;
471 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
472 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
false);
476 $this->container_dav->getChild($searched_title);
478 $exception_thrown =
true;
482 $this->assertTrue($exception_thrown);
492 $number_of_children = 5;
493 $searched_title =
'dummy';
495 $children_ref_ids = array();
496 for (
$i = 101;
$i < $number_of_children + 101;
$i++) {
497 $children_ref_ids[] =
$i;
500 $this->mocked_repo_helper->shouldReceive(
'getChildrenOfRefId')->andReturn($children_ref_ids);
501 $this->mocked_dav_helper->shouldReceive(
'isDAVableObject')->andReturn(
true);
502 $this->mocked_repo_helper->shouldReceive(
'getObjectTitleFromRefId')->andReturn(
'1',
'2',
'3',
'4',
'5');
506 $this->container_dav->getChild($searched_title);
508 $exception_thrown =
true;
512 $this->assertTrue($exception_thrown);
522 $file_title =
'some_file.txt';
524 $this->mocked_repo_helper->shouldReceive(
'checkCreateAccessForType')->andReturn(
false);
528 $this->container_dav->createFile($file_title);
530 if ($e->getMessage() ==
'No write access') {
531 $exception_thrown =
true;
536 $this->assertTrue($exception_thrown);
546 $file_title =
'some_file.exe';
547 $exception_thrown =
false;
549 $this->mocked_repo_helper->shouldReceive(
'checkCreateAccessForType')->andReturn(
true);
550 $this->mocked_dav_helper->shouldReceive(
'isValidFileNameWithValidFileExtension')->andReturn(
false);
554 $this->container_dav->createFile($file_title);
556 if ($e->getMessage() ==
'Invalid file name or file extension') {
557 $exception_thrown =
true;
562 $this->assertTrue($exception_thrown);
ChildExists_ChildExistsButIsNotDAVable_returnFalse()
GetChildren_NoVisibleNoReadPermissionToObjects_ReturnEmptyArray()
GetChild_ChildExistsAndIsDavable_ReturnChild()
ChildExists_ChildExists_returnTrue()
GetChild_ChildExistsButIsNotDavable_ThrowNotFound()
GetChildren_NoVisibleWithReadPermissionToObjects_ReturnEmptyArray()
GetChildren_NoDavableObjects_ReturnEmptyArray()
Important parameters: isDAVableObject = true checkAccess = false -> we test the behavior for no acces...
GetChildren_OnlyDavableObjects_ReturnAllChildren()
ChildExists_ChildExistsButUserHasNoVisibleAndNoReadPermission_returnFalse()
GetChildren_WithVisibleNoReadPermissionToObjects_ReturnEmptyArray()
GetChildren_MixedWithNonDavableObjects_ReturnOnlyDavableObjects()
CreateFile_InvalidFileExtension_ThrowForbidden()
ChildExists_ChildExistsButUserHasOnlyVisiblePermission_returnFalse()
CreateFile_NoCreateAccess_ThrowForbidden()
This is just a dummy class for unit testing.
GetChild_ChildDoesNotExist_ThrowNotFound()
setUpContainerDAV($mocked_obj, $mocked_repo_helper, $mocked_dav_helper)
Setup instance for ilObjectDAV.
ChildExists_ChildExistsButUserHasOnlyReadPermission_returnFalse()