3 declare(strict_types=1);
40 protected function setUp(): void
43 $this->
refinery = $this->createMock(Refinery::class);
44 $this->factory = $this->createMock(ilCtrlPathFactory::class);
45 $this->request = $this->createMock(ArrayBasedRequestWrapper::class);
46 $this->request->method(
'has')->willReturn(
true);
49 ->willReturnCallback(
function (
$key) {
50 return $this->values[
$key] ?? null;
63 public function __construct(
string $cid_path = null)
65 $this->cid_path = $cid_path;
76 $this->values = $request_values ?? [];
86 $this->path_factory = $path_factory;
87 $this->path = $path_factory->
null();
94 public function adopt():
void 96 $this->adoptRequestParameters();
103 $expected_cid_path =
'test_cid_path';
106 ->willReturn($this->
getPath($expected_cid_path));
110 ->willReturn($this->
getPath($expected_cid_path));
121 $this->assertFalse(
$context->isAsync());
122 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
123 $this->assertNull(
$context->getCmdMode());
124 $this->assertNull(
$context->getRedirectSource());
125 $this->assertNull(
$context->getBaseClass());
126 $this->assertNull(
$context->getCmdClass());
127 $this->assertNull(
$context->getCmd());
128 $this->assertNull(
$context->getPath()->getCidPath());
129 $this->assertNull(
$context->getObjType());
130 $this->assertNull(
$context->getObjId());
135 $this->assertFalse(
$context->isAsync());
136 $this->assertNull(
$context->getObjType());
137 $this->assertNull(
$context->getObjId());
138 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
140 $this->assertEquals(
'test_cmd_mode',
$context->getCmdMode());
141 $this->assertEquals(
'test_redirect_source',
$context->getRedirectSource());
142 $this->assertEquals(
'test_base_class',
$context->getBaseClass());
143 $this->assertEquals(
'test_cmd_class',
$context->getCmdClass());
144 $this->assertEquals(
'test_cmd',
$context->getCmd());
145 $this->assertEquals(
'test_cid_path',
$context->getPath()->getCidPath());
151 $this->assertFalse(
$context->isAsync());
155 $this->assertFalse(
$context->isAsync());
159 $this->assertFalse(
$context->isAsync());
163 $this->assertTrue(
$context->isAsync());
168 $expected_cid_path =
'0';
171 ->willReturn($this->
getPath($expected_cid_path));
174 $this->assertNull(
$context->getBaseClass());
179 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
180 $this->assertEquals($expected_cid_path,
$context->getPath()->getCidPath());
186 $this->assertNull(
$context->getBaseClass());
187 $this->assertNull(
$context->getPath()->getCidPath());
191 $this->assertNull(
$context->getBaseClass());
192 $this->assertNull(
$context->getPath()->getCidPath());
199 $this->assertNull(
$context->getObjType());
200 $this->assertNull(
$context->getObjId());
201 $this->assertEquals(
'ilias.php',
$context->getTargetScript());
204 ->setObjType(
'test_type')
206 ->setTargetScript(
'test_script');
208 $this->assertEquals(
'test_type',
$context->getObjType());
209 $this->assertEquals(42,
$context->getObjId());
210 $this->assertEquals(
'test_script',
$context->getTargetScript());
218 ->willReturn($this->
getPath(
'http://localhost'));
220 $this->assertNull(
$context->getCmdClass());
221 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
222 $this->assertEquals(ilCtrlCommandClass1TestGUI::class,
$context->getCmdClass());
228 $this->assertNull($context->getCmdClass());
230 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
238 ->willReturn($this->
getPath(
'http://localhost'));
240 $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
241 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getCmdClass());
243 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
244 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
245 $this->assertEquals(ilCtrlCommandClass1TestGUI::class,
$context->getCmdClass());
251 $this->assertNull($context->getCmdClass());
253 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
262 $structure_artifact = require __DIR__ .
'/Data/Structure/test_ctrl_structure.php';
263 $base_class_artifact = require __DIR__ .
'/Data/Structure/test_base_classes.php';
267 $base_class_artifact,
273 $this->assertNull(
$context->getPath()->getCidPath());
275 $context->setBaseClass(ilCtrlInvalidGuiClass::class);
276 $this->assertNull(
$context->getPath()->getCidPath());
277 $this->assertNull(
$context->getBaseClass());
279 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
280 $this->assertNull(
$context->getPath()->getCidPath());
281 $this->assertNull(
$context->getCmdClass());
283 $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
284 $this->assertEquals(
'0',
$context->getPath()->getCidPath());
285 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
286 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getCmdClass());
288 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
289 $this->assertEquals(
'0:2',
$context->getPath()->getCidPath());
290 $this->assertEquals(ilCtrlBaseClass1TestGUI::class,
$context->getBaseClass());
291 $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()
testContextCommandClassPropertyWithBaseClass()
testContextPathProgressionWhenSettingClasses()
testContextBaseClassPropertyAdoptionByRequest()
getPath(string $cid_path=null)
testContextPropertyAdoptionWithoutCidPathAndBaseClass()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testContextPropertyAdoptionByRequest()
ilCtrlPathFactory $factory
testContextCommandClassPropertyWithoutBaseClass()
__construct(Container $dic, ilPlugin $plugin)
testContextAsyncPropertyAdoptionByRequest()
Interface ilCtrlPathInterface is responsible for holding and manipulating a valid ilCtrl class-path (...