19 declare(strict_types=1);
23 protected function setUp(): void
31 return $this->getMockBuilder(ilGroupNameAsMailValidator::class)
32 ->disableOriginalConstructor()
33 ->onlyMethods([
'validate'])
39 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
40 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
41 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->getMock();
42 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
43 $mailing_lists = $this->getMockBuilder(ilMailingLists::class)->disableOriginalConstructor()->getMock();
44 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->getMock();
47 $group_name_validator,
60 $refl =
new ReflectionObject($type);
61 $inner = $refl->getProperty(
'inner');
62 $inner->setAccessible(
true);
64 return $inner->getValue($type);
73 $group_name_validator->method(
'validate')->willReturn(
true);
77 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#il_ml_4711',
''),
false);
85 $group_name_validator->method(
'validate')->willReturn(
true);
89 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#MyGroup',
''),
false);
97 $group_name_validator->method(
'validate')->willReturn(
false);
101 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'phpunit',
''),
false);
103 $this->assertInstanceOf(
'ilMailLoginOrEmailAddressAddressType', $this->
getWrappedAddressType($result));
109 $group_name_validator->method(
'validate')->willReturn(
false);
113 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#member',
''),
false);
121 $group_name_validator->method(
'validate')->willReturn(
false);
125 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#il_grp_admin_98',
''),
false);
133 $group_name_validator->method(
'validate')->willReturn(
false);
137 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#il_grp_member_98',
''),
false);
145 $group_name_validator->method(
'validate')->willReturn(
false);
149 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#il_crs_admin_98',
''),
false);
157 $group_name_validator->method(
'validate')->willReturn(
false);
161 $result = $mail_address_type_factory->getByPrefix(
new ilMailAddress(
'#il_crs_member_98',
''),
false);
168 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
169 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
170 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
172 $address_type_helper->expects($this->once())->method(
'getInstallationHost')->willReturn(
'ilias');
173 $address_type_helper->expects($this->once())->method(
'getUserIdByLogin')->willReturn(4711);
176 $address_type_helper,
182 $usr_ids = $type->resolve();
184 $this->assertCount(1, $usr_ids);
185 $this->assertArrayHasKey(0, $usr_ids);
186 $this->assertSame(4711, $usr_ids[0]);
191 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
192 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
193 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
195 $address_type_helper->expects($this->once())->method(
'getInstallationHost')->willReturn(
'ilias');
196 $address_type_helper->expects($this->once())->method(
'getUserIdByLogin')->willReturn(0);
199 $address_type_helper,
205 $usr_ids = $type->resolve();
207 $this->assertCount(0, $usr_ids);
212 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
213 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
214 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
216 $address_type_helper->expects($this->once())->method(
'getInstallationHost')->willReturn(
'ilias');
217 $address_type_helper->expects($this->once())->method(
'getUserIdByLogin')->willReturn(0);
220 $address_type_helper,
226 $usr_ids = $type->resolve();
228 $this->assertCount(0, $usr_ids);
233 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
234 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
236 $address_type_helper->expects($this->atLeast(3))->method(
'getInstallationHost')->willReturn(
'ilias');
237 $address_type_helper->expects($this->exactly(2))->method(
'getUserIdByLogin')->willReturnOnConsecutiveCalls(
243 $address_type_helper->method(
'receivesInternalMailsOnly')->willReturn(
true);
245 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
246 $rbacsystem->expects($this->exactly(2))->method(
'checkAccessOfUser')->willReturnOnConsecutiveCalls(
252 $address_type_helper,
257 $this->assertTrue($type->validate(666));
258 $this->assertCount(0, $type->getErrors());
260 $this->assertFalse($type->validate(666));
261 $this->assertArrayHasKey(0, $type->getErrors());
262 $this->assertSame(
'user_cant_receive_mail', $type->getErrors()[0]->getLanguageVariable());
265 $address_type_helper,
270 $this->assertTrue($type->validate(666));
271 $this->assertCount(0, $type->getErrors());
276 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
277 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
279 $group = $this->getMockBuilder(ilObjGroup::class)->disableOriginalConstructor()->onlyMethods([
'getGroupMemberIds'])->getMock();
280 $group->expects($this->once())->method(
'getGroupMemberIds')->willReturn([666, 777]);
282 $address_type_helper->expects($this->once())->method(
'getGroupObjIdByTitle')->willReturn(1);
283 $address_type_helper->expects($this->once())->method(
'getAllRefIdsForObjId')->with(1)->willReturn([2]);
284 $address_type_helper->expects($this->once())->method(
'getInstanceByRefId')->with(2)->willReturn($group);
287 $address_type_helper,
292 $usr_ids = $type->resolve();
294 $this->assertCount(2, $usr_ids);
299 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
300 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
302 $group = $this->getMockBuilder(ilObjGroup::class)->disableOriginalConstructor()->onlyMethods([
'getGroupMemberIds'])->getMock();
303 $group->expects($this->never())->method(
'getGroupMemberIds');
305 $address_type_helper->expects($this->once())->method(
'getGroupObjIdByTitle')->willReturn(0);
306 $address_type_helper->expects($this->once())->method(
'getAllRefIdsForObjId')->with(0)->willReturn([]);
307 $address_type_helper->expects($this->never())->method(
'getInstanceByRefId');
310 $address_type_helper,
315 $usr_ids = $type->resolve();
317 $this->assertCount(0, $usr_ids);
322 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
323 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
325 $address_type_helper->expects($this->once())->method(
'doesGroupNameExists')->with(
'PhpUnit')->willReturn(
false);
328 $address_type_helper,
332 $this->assertFalse($type->validate(666));
337 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
338 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
340 $address_type_helper->expects($this->once())->method(
'doesGroupNameExists')->with(
'PhpUnit')->willReturn(
true);
343 $address_type_helper,
347 $this->assertTrue($type->validate(666));
352 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
353 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
355 $list = $this->getMockBuilder(ilMailingList::class)->disableOriginalConstructor()->onlyMethods([
356 'getAssignedEntries',
358 $list->expects($this->exactly(2))->method(
'getAssignedEntries')->willReturnOnConsecutiveCalls(
359 [[
'usr_id' => 1], [
'usr_id' => 2], [
'usr_id' => 3]],
363 $lists = $this->getMockBuilder(ilMailingLists::class)->disableOriginalConstructor()->onlyMethods([
365 'getCurrentMailingList',
367 $lists->expects($this->exactly(3))->method(
'mailingListExists')->with(
'#il_ml_4711')->willReturnOnConsecutiveCalls(
372 $lists->expects($this->exactly(2))->method(
'getCurrentMailingList')->willReturn($list);
375 $address_type_helper,
381 $usr_ids = $type->resolve();
383 $this->assertCount(3, $usr_ids);
385 $usr_ids = $type->resolve();
387 $this->assertCount(0, $usr_ids);
389 $usr_ids = $type->resolve();
391 $this->assertCount(0, $usr_ids);
396 $lists = $this->getMockBuilder(ilMailingLists::class)->disableOriginalConstructor()->onlyMethods([
399 $lists->expects($this->exactly(2))->method(
'mailingListExists')->with(
'#il_ml_4711')->willReturnOnConsecutiveCalls(
403 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
404 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
407 $address_type_helper,
413 $this->assertTrue($type->validate(666));
414 $this->assertCount(0, $type->getErrors());
416 $this->assertFalse($type->validate(666));
417 $this->assertCount(1, $type->getErrors());
418 $this->assertArrayHasKey(0, $type->getErrors());
419 $this->assertSame(
'mail_no_valid_mailing_list', $type->getErrors()[0]->getLanguageVariable());
424 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
425 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
426 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->onlyMethods([
'assignedUsers'])->getMock();
427 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
428 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->onlyMethods([
'searchRoleIdsByAddressString'])->getMock();
430 $role_mailbox_search->expects($this->once())->method(
'searchRoleIdsByAddressString')->willReturn([1, 2, 3]);
431 $rbacreview->expects($this->exactly(3))->method(
'assignedUsers')->willReturnOnConsecutiveCalls(
438 $address_type_helper,
440 $role_mailbox_search,
446 $usr_ids = $type->resolve();
448 $this->assertCount(6, $usr_ids);
453 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
454 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
455 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->onlyMethods([
'assignedUsers'])->getMock();
456 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
457 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->onlyMethods([
'searchRoleIdsByAddressString'])->getMock();
459 $role_mailbox_search->expects($this->once())->method(
'searchRoleIdsByAddressString')->willReturn([]);
460 $rbacreview->expects($this->never())->method(
'assignedUsers');
463 $address_type_helper,
465 $role_mailbox_search,
471 $usr_ids = $type->resolve();
473 $this->assertCount(0, $usr_ids);
478 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
479 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
480 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->onlyMethods([
'assignedUsers'])->getMock();
481 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
482 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->onlyMethods([
'searchRoleIdsByAddressString'])->getMock();
484 $role_mailbox_search->expects($this->once())->method(
'searchRoleIdsByAddressString')->willReturn([1]);
485 $rbacreview->expects($this->once())->method(
'assignedUsers')->willReturn([]);
488 $address_type_helper,
490 $role_mailbox_search,
496 $usr_ids = $type->resolve();
498 $this->assertCount(0, $usr_ids);
503 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
504 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->getMock();
505 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->getMock();
506 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
507 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->onlyMethods([
'searchRoleIdsByAddressString'])->getMock();
509 $role_mailbox_search->expects($this->once())->method(
'searchRoleIdsByAddressString')->willReturnOnConsecutiveCalls([1]);
510 $rbacsystem->expects($this->never())->method(
'checkAccessOfUser');
513 $address_type_helper,
515 $role_mailbox_search,
522 $this->assertCount(0, $type->getErrors());
527 $logger = $this->getMockBuilder(ilLogger::class)->disableOriginalConstructor()->getMock();
528 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods([
'checkAccessOfUser'])->getMock();
529 $rbacreview = $this->getMockBuilder(ilRbacReview::class)->disableOriginalConstructor()->onlyMethods([
'isGlobalRole'])->getMock();
530 $address_type_helper = $this->getMockBuilder(ilMailAddressTypeHelper::class)->getMock();
531 $role_mailbox_search = $this->getMockBuilder(ilRoleMailboxSearch::class)->disableOriginalConstructor()->onlyMethods([
'searchRoleIdsByAddressString'])->getMock();
533 $role_mailbox_search->expects($this->exactly(4))->method(
'searchRoleIdsByAddressString')->willReturnOnConsecutiveCalls(
539 $rbacsystem->expects($this->exactly(4))->method(
'checkAccessOfUser')->willReturnOnConsecutiveCalls(
545 $rbacreview->expects($this->once())->method(
'isGlobalRole')->with(1)->willReturn(
true);
548 $address_type_helper,
550 $role_mailbox_search,
556 $this->assertFalse($type->validate(4711));
557 $this->assertCount(1, $type->getErrors());
558 $this->assertArrayHasKey(0, $type->getErrors());
559 $this->assertSame(
'mail_to_global_roles_not_allowed', $type->getErrors()[0]->getLanguageVariable());
561 $this->assertFalse($type->validate(4711));
562 $this->assertCount(1, $type->getErrors());
563 $this->assertArrayHasKey(0, $type->getErrors());
564 $this->assertSame(
'mail_recipient_not_found', $type->getErrors()[0]->getLanguageVariable());
566 $this->assertFalse($type->validate(4711));
567 $this->assertCount(1, $type->getErrors());
568 $this->assertArrayHasKey(0, $type->getErrors());
569 $this->assertSame(
'mail_multiple_role_recipients_found', $type->getErrors()[0]->getLanguageVariable());
571 $this->assertTrue($type->validate(4711));
572 $this->assertCount(0, $type->getErrors());
577 $origin = $this->getMockBuilder(ilMailAddressType::class)->getMock();
579 $origin->expects($this->once())->method(
'resolve');
580 $origin->expects($this->once())->method(
'validate');
592 $origin = $this->getMockBuilder(ilMailAddressType::class)->getMock();
594 $origin->expects($this->exactly(3))->method(
'resolve');
595 $origin->expects($this->exactly(3))->method(
'validate');
testNoUserIdCanBeResolvedFromEmailAddress()
testNoUserIdsCanBeResolvedFromRoleAddressWithoutAnyUsersBeingAssinged()
testFactoryWillReturnGroupAddressTypeForGroupName()
testNoUserIdsCanBeResolvedFromInvalidRoleAddress()
testPermissionsAreCheckedForRegularUsersWhenValidatingGlobalRoleAddresses()
testUserIdsCanBeResolvedFromRoleAddress()
testCacheOnlyResolvesAndValidatesRecipientsOnceIfCachingIsEnabled()
testValidationForAnonymousUserAsSystemActorSucceedsAlwaysForGlobalRoleAddresses()
testValidationSucceedsForExistingGroupName()
testAddressCanBeValidatedFromLoginOrEmailAddressType()
testAdminGroupNameIsAValidMailAddressTypes()
testMemberCourseNameIsAValidMailAddressType()
getAddressTypeFactory(ilGroupNameAsMailValidator $group_name_validator)
testUserIdCanBeResolvedFromLoginAddress()
testAdminCourseNameIsAValidMailAddressType()
testMailingListAddressCanBeValidated()
testFactoryWillReturnLoginOrEmailAddressAddressType()
testMemberGroupNameIsAValidMailAddressType()
testUserIdsCanBeResolvedFromMailingListAddress()
testFactoryWillReturnRoleAddressType()
createGroupNameAsValidatorMock()
testNoUserIdCanBeResolvedFromUnknownLoginAddress()
testCacheResolvesAndValidatesRecipientsOnEveryCallIfCachingIsDisabled()
testValidationFailsForNonExistingGroupNameAddress()
testUserIdsCannotBeResolvedFromNonExistingGroupNameAddress()
testFactoryWillReturnListAddressTypeForListName()
getWrappedAddressType(ilMailAddressType $type)
testUserIdsCanBeResolvedFromGroupNameAddress()