19 declare(strict_types=1);
54 protected function setUp(): void
57 $this->
refinery = $this->createMock(Refinery::class);
58 $this->
factory = $this->createMock(ilCtrlPathFactory::class);
59 $this->request = $this->createMock(ArrayBasedRequestWrapper::class);
60 $this->request->method(
'has')->willReturn(
true);
63 ->willReturnCallback(
function ($key) {
64 return $this->values[$key] ??
null;
79 $this->cid_path = $cid_path;
90 $this->values = $request_values ?? [];
100 $this->path_factory = $path_factory;
101 $this->path = $path_factory->
null();
108 public function adopt():
void 110 $this->adoptRequestParameters();
117 $expected_cid_path =
'test_cid_path';
120 ->willReturn($this->
getPath($expected_cid_path));
124 ->willReturn($this->
getPath($expected_cid_path));
135 $this->assertFalse(
$context->isAsync());
136 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
137 $this->assertNull(
$context->getCmdMode());
138 $this->assertNull(
$context->getRedirectSource());
139 $this->assertNull(
$context->getBaseClass());
140 $this->assertNull(
$context->getCmdClass());
141 $this->assertNull(
$context->getCmd());
142 $this->assertNull(
$context->getPath()->getCidPath());
143 $this->assertNull(
$context->getObjType());
144 $this->assertNull(
$context->getObjId());
149 $this->assertFalse(
$context->isAsync());
150 $this->assertNull(
$context->getObjType());
151 $this->assertNull(
$context->getObjId());
152 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
154 $this->assertEquals(
'test_cmd_mode',
$context->getCmdMode());
155 $this->assertEquals(
'test_redirect_source',
$context->getRedirectSource());
156 $this->assertEquals(
'test_base_class',
$context->getBaseClass());
157 $this->assertEquals(
'test_cmd_class',
$context->getCmdClass());
158 $this->assertEquals(
'test_cmd',
$context->getCmd());
159 $this->assertEquals(
'test_cid_path',
$context->getPath()->getCidPath());
165 $this->assertFalse(
$context->isAsync());
169 $this->assertFalse(
$context->isAsync());
173 $this->assertFalse(
$context->isAsync());
177 $this->assertTrue(
$context->isAsync());
182 $expected_cid_path =
'0';
185 ->willReturn($this->
getPath($expected_cid_path));
188 $this->assertNull(
$context->getBaseClass());
193 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
194 $this->assertEquals($expected_cid_path,
$context->getPath()->getCidPath());
200 $this->assertNull(
$context->getBaseClass());
201 $this->assertNull(
$context->getPath()->getCidPath());
205 $this->assertNull(
$context->getBaseClass());
206 $this->assertNull(
$context->getPath()->getCidPath());
213 $this->assertNull(
$context->getObjType());
214 $this->assertNull(
$context->getObjId());
215 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
218 ->setObjType(
'test_type')
220 ->setTargetScript(
'test_script');
222 $this->assertEquals(
'test_type',
$context->getObjType());
223 $this->assertEquals(42,
$context->getObjId());
224 $this->assertEquals(
'test_script',
$context->getTargetScript());
232 ->willReturn($this->
getPath(
'http://localhost'));
234 $this->assertNull(
$context->getCmdClass());
235 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
236 $this->assertEquals(ilCtrlCommandClass1TestGUI::class,
$context->getCmdClass());
242 $this->assertNull($context->getCmdClass());
244 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
252 ->willReturn($this->
getPath(
'http://localhost'));
254 $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
255 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getCmdClass());
257 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
258 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
259 $this->assertEquals(ilCtrlCommandClass1TestGUI::class,
$context->getCmdClass());
265 $this->assertNull($context->getCmdClass());
267 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
276 $structure_artifact = require __DIR__ .
'/Data/Structure/test_ctrl_structure.php';
277 $base_class_artifact = require __DIR__ .
'/Data/Structure/test_base_classes.php';
281 $base_class_artifact,
287 $this->assertNull(
$context->getPath()->getCidPath());
289 $context->setBaseClass(ilCtrlInvalidGuiClass::class);
290 $this->assertNull(
$context->getPath()->getCidPath());
291 $this->assertNull(
$context->getBaseClass());
293 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
294 $this->assertNull(
$context->getPath()->getCidPath());
295 $this->assertNull(
$context->getCmdClass());
297 $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
298 $this->assertEquals(
'0',
$context->getPath()->getCidPath());
299 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
300 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getCmdClass());
302 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
303 $this->assertEquals(
'0:2',
$context->getPath()->getCidPath());
304 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
305 $this->assertEquals(ilCtrlCommandClass1TestGUI::class,
$context->getCmdClass());
const CMD_MODE_PROCESS
different modes used for UI plugins (or in dev-mode).
ArrayBasedRequestWrapper $request
Class ilCtrlContext is responsible for holding the current context information.
Class ilCtrlStructure holds the currently read control structure.
Class ilCtrlAbstractPath.
getContextWithManualAdoption(?array $request_values=null)
testContextPropertiesThatCantBeAdopted()
getPath(?string $cid_path=null)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
testContextCommandClassPropertyWithBaseClass()
testContextPathProgressionWhenSettingClasses()
testContextBaseClassPropertyAdoptionByRequest()
testContextPropertyAdoptionWithoutCidPathAndBaseClass()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$structure
TOTAL STRUCTURE.
testContextPropertyAdoptionByRequest()
ilCtrlPathFactory $factory
testContextCommandClassPropertyWithoutBaseClass()
__construct(Container $dic, ilPlugin $plugin)
testContextAsyncPropertyAdoptionByRequest()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ArrayBasedRequestWrapper.