19 declare(strict_types=1);
36 [
'permission' =>
'read',
'cmd' =>
'view',
'lang_var' =>
'enter',
'default' =>
true],
37 [
'permission' =>
'write',
'cmd' =>
'settings-general',
'lang_var' =>
'settings'],
40 $commands = $this->access::_getCommands();
42 $this->assertIsArray($commands);
43 $this->assertSame($expected, $commands);
48 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
51 $user->method(
'getId')->willReturn(6);
53 $this->
setGlobalVariable(
'ilObjDataCache', $this->createMock(ilObjectDataCache::class));
56 $chatroomSettings = $this->createMock(ilDBStatement::class);
58 ->method(
'fetchAssoc')
59 ->willReturnOnConsecutiveCalls(
61 'keyword' =>
'public_room_ref',
68 ->method(
'fetchAssoc')
69 ->willReturnCallback(
static function (
ilDBStatement $statement) {
75 ->with($this->stringContains(
"FROM settings WHERE module='chatroom'",
false))
76 ->willReturn($chatroomSettings);
79 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
80 [
'checkAccess',
'checkAccessOfUser']
82 $rbacsystem->method(
'checkAccess')->with(
83 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible')),
86 $rbacsystem->method(
'checkAccessOfUser')->with(
88 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible')),
94 $this->assertFalse($this->access::_checkGoto(
''));
95 $this->assertFalse($this->access::_checkGoto(
'chtr'));
96 $this->assertFalse($this->access::_checkGoto(
'chtr_'));
97 $this->assertFalse($this->access::_checkGoto(
'chtr_'));
98 $this->assertFalse($this->access::_checkGoto(
'chtr_test'));
99 $this->assertFalse($this->access::_checkGoto(
'chtr_1'));
104 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
107 $user->method(
'getId')->willReturn(6);
109 $this->
setGlobalVariable(
'ilObjDataCache', $this->createMock(ilObjectDataCache::class));
112 $chatroomSettings = $this->createMock(ilDBStatement::class);
114 ->method(
'fetchAssoc')
115 ->willReturnOnConsecutiveCalls(
117 'keyword' =>
'public_room_ref',
124 ->method(
'fetchAssoc')
125 ->willReturnCallback(
static function (
ilDBStatement $statement) {
131 ->with($this->stringContains(
"FROM settings WHERE module='chatroom'",
false))
132 ->willReturn($chatroomSettings);
135 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
136 [
'checkAccess',
'checkAccessOfUser']
138 $rbacsystem->method(
'checkAccess')->with(
139 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible'), $this->equalTo(
'write')),
142 $rbacsystem->method(
'checkAccessOfUser')->with(
144 $this->logicalOr($this->equalTo(
'read'), $this->equalTo(
'visible'), $this->equalTo(
'write')),
150 $this->assertTrue($this->access::_checkGoto(
'chtr_5'));
159 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
162 $user->expects($this->once())->method(
'getId')->willReturn($userId);
166 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
167 [
'checkAccessOfUser']
169 $rbacsystem->expects($this->once())->method(
'checkAccessOfUser')->with(
170 $this->equalTo($userId),
171 $this->equalTo(
'write'),
173 )->willReturn(
false);
186 $user = $this->getMockBuilder(ilObjUser::class)->disableOriginalConstructor()->onlyMethods(
189 $user->expects($this->once())->method(
'getId')->willReturn($userId);
193 $this->db->method(
'fetchAssoc')->willReturnOnConsecutiveCalls(
194 [
'keyword' =>
'chat_enabled',
'value' =>
'0'],
198 $rbacsystem = $this->getMockBuilder(ilRbacSystem::class)->disableOriginalConstructor()->onlyMethods(
199 [
'checkAccessOfUser']
201 $rbacsystem->expects($this->once())->method(
'checkAccessOfUser')->with(
202 $this->equalTo($userId),
203 $this->equalTo(
'write'),
217 $cache = $settingsReflection->getProperty(
'settings_cache');
218 $cache->setAccessible(
true);
219 $cache->setValue($settingsReflection, []);
testCommandDefitionFullfilsExpectations()
Class ilChatroomAbstractTest.
testAccessChecksSucceed()
ilObjChatroomAccess $access
Access class for chatroom objects.
Class ilObjChatroomAccessTest.
setGlobalVariable(string $name, $value)