19declare(strict_types=1);
21use PHPUnit\Framework\MockObject\MockObject;
35 [
'permission' =>
'read',
'cmd' =>
'view',
'lang_var' =>
'enter',
'default' =>
true],
36 [
'permission' =>
'write',
'cmd' =>
'settings-general',
'lang_var' =>
'settings'],
39 $commands = $this->access::_getCommands();
41 $this->assertIsArray($commands);
42 $this->assertSame($expected, $commands);
47 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
50 $user->method(
'getId')->willReturn(6);
52 $this->
setGlobalVariable(
'ilObjDataCache', $this->createMock(ilObjectDataCache::class));
56 $chatroomSettings = $this->createMock(ilDBStatement::class);
58 ->expects($this->exactly(2))
59 ->method(
'fetchAssoc')
60 ->willReturnOnConsecutiveCalls(
62 'keyword' =>
'public_room_ref',
69 ->expects($this->atLeastOnce())
70 ->method(
'fetchAssoc')
74 ->expects($this->once())
76 ->with($this->stringContains(
"FROM settings WHERE module='chatroom'",
false))
77 ->willReturn($chatroomSettings);
80 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
81 [
'checkAccess',
'checkAccessOfUser']
84 ->expects($this->never())
85 ->method(
'checkAccess');
87 ->expects($this->atLeastOnce())
88 ->method(
'checkAccessOfUser')
91 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible')),
97 $this->assertFalse($this->access::_checkGoto(
''));
98 $this->assertFalse($this->access::_checkGoto(
'chtr'));
99 $this->assertFalse($this->access::_checkGoto(
'chtr_'));
100 $this->assertFalse($this->access::_checkGoto(
'chtr_'));
101 $this->assertFalse($this->access::_checkGoto(
'chtr_test'));
102 $this->assertFalse($this->access::_checkGoto(
'chtr_1'));
107 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
110 $user->method(
'getId')->willReturn(6);
112 $this->
setGlobalVariable(
'ilObjDataCache', $this->createMock(ilObjectDataCache::class));
115 $chatroomSettings = $this->createMock(ilDBStatement::class);
117 ->expects($this->exactly(2))
118 ->method(
'fetchAssoc')
119 ->willReturnOnConsecutiveCalls(
121 'keyword' =>
'public_room_ref',
128 ->expects($this->atLeastOnce())
129 ->method(
'fetchAssoc')
133 ->expects($this->once())
135 ->with($this->stringContains(
"FROM settings WHERE module='chatroom'",
false))
136 ->willReturn($chatroomSettings);
139 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
140 [
'checkAccess',
'checkAccessOfUser']
143 ->expects($this->never())
144 ->method(
'checkAccess');
146 ->expects($this->atLeastOnce())
147 ->method(
'checkAccessOfUser')
150 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible'), $this->equalTo(
'write')),
156 $this->assertTrue($this->access::_checkGoto(
'chtr_5'));
165 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
168 $user->expects($this->once())->method(
'getId')->willReturn($userId);
172 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
173 [
'checkAccessOfUser']
175 $rbacsystem->expects($this->once())->method(
'checkAccessOfUser')->with(
176 $this->equalTo($userId),
177 $this->equalTo(
'write'),
179 )->willReturn(
false);
192 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
195 $user->expects($this->once())->method(
'getId')->willReturn($userId);
199 $this->db->method(
'fetchAssoc')->willReturnOnConsecutiveCalls(
200 [
'keyword' =>
'chat_enabled',
'value' =>
'0'],
204 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
205 [
'checkAccessOfUser']
207 $rbacsystem->expects($this->once())->method(
'checkAccessOfUser')->with(
208 $this->equalTo($userId),
209 $this->equalTo(
'write'),
222 $settingsReflection =
new ReflectionClass(ilSetting::class);
223 $cache = $settingsReflection->getProperty(
'settings_cache');
224 $cache->setValue($settingsReflection, []);
setGlobalVariable(string $name, $value)
Class ilObjChatroomAccessTest.
ilDBInterface &MockObject $db
testCommandDefitionFullfilsExpectations()
testAccessChecksSucceed()
ilObjChatroomAccess $access
Access class for chatroom objects.