ILIAS  release_8 Revision v8.24
ilCtrlContextTest Class Reference

Class ilCtrlContextTest. More...

+ Inheritance diagram for ilCtrlContextTest:
+ Collaboration diagram for ilCtrlContextTest:

Public Member Functions

 testContextPropertyAdoptionByRequest ()
 
 testContextAsyncPropertyAdoptionByRequest ()
 
 testContextBaseClassPropertyAdoptionByRequest ()
 
 testContextPropertyAdoptionWithoutCidPathAndBaseClass ()
 
 testContextPropertiesThatCantBeAdopted ()
 
 testContextCommandClassPropertyWithoutBaseClass ()
 
 testContextCommandClassPropertyWithBaseClass ()
 
 testContextPathProgressionWhenSettingClasses ()
 

Protected Member Functions

 setUp ()
 @inheritDoc More...
 
 getPath (string $cid_path=null)
 
 getContextWithManualAdoption (array $request_values=null)
 

Private Attributes

ArrayBasedRequestWrapper $request
 
ilCtrlPathFactory $factory
 
Refinery $refinery
 
array $values
 

Detailed Description

Member Function Documentation

◆ getContextWithManualAdoption()

ilCtrlContextTest::getContextWithManualAdoption ( array  $request_values = null)
protected
Parameters
array | null$request_values
Returns
ilCtrlContextInterface

Definition at line 74 of file ilCtrlContextTest.php.

75 {
76 $this->values = $request_values ?? [];
77
78 return new class ($this->factory, $this->request, $this->refinery) extends ilCtrlContext {
79 // override parent constructor, so the request values
80 // are not adopted immediately.
81 public function __construct(
82 ilCtrlPathFactory $path_factory,
84 Refinery $refinery
85 ) {
86 $this->path_factory = $path_factory;
87 $this->path = $path_factory->null();
88 $this->request_wrapper = $request_wrapper;
89 $this->refinery = $refinery;
90 }
91
92 // provide a public method that manually adopts the
93 // request values.
94 public function adopt(): void
95 {
96 $this->adoptRequestParameters();
97 }
98 };
99 }
ArrayBasedRequestWrapper $request
ilCtrlPathFactory $factory
Class ilCtrlContext is responsible for holding the current context information.
Class ilCtrlPathFactory.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc

References $factory, $refinery, $request, ILIAS\UI\examples\Tree\Expandable\$request_wrapper, ILIAS\GlobalScreen\Provider\__construct(), ilCtrlPathFactory\null(), and ILIAS\Repository\refinery().

Referenced by testContextAsyncPropertyAdoptionByRequest(), testContextBaseClassPropertyAdoptionByRequest(), testContextCommandClassPropertyWithBaseClass(), testContextCommandClassPropertyWithoutBaseClass(), testContextPropertyAdoptionByRequest(), and testContextPropertyAdoptionWithoutCidPathAndBaseClass().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPath()

ilCtrlContextTest::getPath ( string  $cid_path = null)
protected
Parameters
string | null$cid_path
Returns
ilCtrlPathInterface

Definition at line 58 of file ilCtrlContextTest.php.

59 {
60 return new class ($cid_path) extends ilCtrlAbstractPath {
61 // override parent constructor, so we don't
62 // have to mock the ilCtrlStructure.
63 public function __construct(string $cid_path = null)
64 {
65 $this->cid_path = $cid_path;
66 }
67 };
68 }
Class ilCtrlAbstractPath.
Interface ilCtrlPathInterface is responsible for holding and manipulating a valid ilCtrl class-path (...

References ILIAS\GlobalScreen\Provider\__construct().

Referenced by testContextBaseClassPropertyAdoptionByRequest(), testContextCommandClassPropertyWithBaseClass(), testContextCommandClassPropertyWithoutBaseClass(), and testContextPropertyAdoptionByRequest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUp()

ilCtrlContextTest::setUp ( )
protected

@inheritDoc

Definition at line 40 of file ilCtrlContextTest.php.

40 : void
41 {
42 $this->values = [];
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);
47 $this->request
48 ->method('retrieve')
49 ->willReturnCallback(function ($key) {
50 return $this->values[$key] ?? null;
51 });
52 }
string $key
Consumer key/client ID value.
Definition: System.php:193

References ILIAS\LTI\ToolProvider\$key, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testContextAsyncPropertyAdoptionByRequest()

ilCtrlContextTest::testContextAsyncPropertyAdoptionByRequest ( )

Definition at line 148 of file ilCtrlContextTest.php.

148 : void
149 {
151 $this->assertFalse($context->isAsync());
152
154 $context->adopt();
155 $this->assertFalse($context->isAsync());
156
158 $context->adopt();
159 $this->assertFalse($context->isAsync());
160
162 $context->adopt();
163 $this->assertTrue($context->isAsync());
164 }
getContextWithManualAdoption(array $request_values=null)
const CMD_MODE_PROCESS
different modes used for UI plugins (or in dev-mode).
$context
Definition: webdav.php:29

References $context, ilCtrlInterface\CMD_MODE_ASYNC, ilCtrlInterface\CMD_MODE_HTML, ilCtrlInterface\CMD_MODE_PROCESS, getContextWithManualAdoption(), and ilCtrlInterface\PARAM_CMD_MODE.

+ Here is the call graph for this function:

◆ testContextBaseClassPropertyAdoptionByRequest()

ilCtrlContextTest::testContextBaseClassPropertyAdoptionByRequest ( )

Definition at line 166 of file ilCtrlContextTest.php.

166 : void
167 {
168 $expected_cid_path = '0';
169 $this->factory
170 ->method('find')
171 ->willReturn($this->getPath($expected_cid_path));
172
174 $this->assertNull($context->getBaseClass());
175
176 $this->values[ilCtrlInterface::PARAM_BASE_CLASS] = ilCtrlBaseClass1TestGUI::class;
177 $context->adopt();
178
179 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getBaseClass());
180 $this->assertEquals($expected_cid_path, $context->getPath()->getCidPath());
181 }
getPath(string $cid_path=null)

References $context, getContextWithManualAdoption(), getPath(), and ilCtrlInterface\PARAM_BASE_CLASS.

+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithBaseClass ( )

Definition at line 233 of file ilCtrlContextTest.php.

233 : void
234 {
235 $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
236 $this->factory
237 ->method('find')
238 ->willReturn($this->getPath('http://localhost'));
239
240 $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
241 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
242
243 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
244 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getBaseClass());
245 $this->assertEquals(ilCtrlCommandClass1TestGUI::class, $context->getCmdClass());
246
248 ilCtrlInterface::PARAM_CMD_CLASS => ilCtrlBaseClass1TestGUI::class,
249 ]);
250
251 $this->assertNull($context->getCmdClass());
252 $context->adopt();
253 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
254 }

References $context, getContextWithManualAdoption(), getPath(), ilCtrlInterface\PARAM_CMD_CLASS, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithoutBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithoutBaseClass ( )

Definition at line 213 of file ilCtrlContextTest.php.

213 : void
214 {
215 $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
216 $this->factory
217 ->method('find')
218 ->willReturn($this->getPath('http://localhost'));
219
220 $this->assertNull($context->getCmdClass());
221 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
222 $this->assertEquals(ilCtrlCommandClass1TestGUI::class, $context->getCmdClass());
223
225 ilCtrlInterface::PARAM_CMD_CLASS => ilCtrlBaseClass1TestGUI::class,
226 ]);
227
228 $this->assertNull($context->getCmdClass());
229 $context->adopt();
230 $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
231 }

References $context, getContextWithManualAdoption(), getPath(), ilCtrlInterface\PARAM_CMD_CLASS, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testContextPathProgressionWhenSettingClasses()

ilCtrlContextTest::testContextPathProgressionWhenSettingClasses ( )

Definition at line 256 of file ilCtrlContextTest.php.

256 : void
257 {
258 // for this test an actual instance of the path factory
259 // is required, therefore we have to creat the test ctrl
260 // structure.
261
262 $structure_artifact = require __DIR__ . '/Data/Structure/test_ctrl_structure.php';
263 $base_class_artifact = require __DIR__ . '/Data/Structure/test_base_classes.php';
264
265 $structure = new ilCtrlStructure(
266 $structure_artifact,
267 $base_class_artifact,
268 []
269 );
270
271 $path_factory = new ilCtrlPathFactory($structure);
272 $context = new ilCtrlContext($path_factory, $this->request, $this->refinery);
273 $this->assertNull($context->getPath()->getCidPath());
274
275 $context->setBaseClass(ilCtrlInvalidGuiClass::class);
276 $this->assertNull($context->getPath()->getCidPath());
277 $this->assertNull($context->getBaseClass());
278
279 $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
280 $this->assertNull($context->getPath()->getCidPath());
281 $this->assertNull($context->getCmdClass());
282
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());
287
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());
292 }
Class ilCtrlStructure holds the currently read control structure.

References $context, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testContextPropertiesThatCantBeAdopted()

ilCtrlContextTest::testContextPropertiesThatCantBeAdopted ( )

Definition at line 195 of file ilCtrlContextTest.php.

195 : void
196 {
197 $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
198
199 $this->assertNull($context->getObjType());
200 $this->assertNull($context->getObjId());
201 $this->assertEquals('ilias.php', $context->getTargetScript());
202
204 ->setObjType('test_type')
205 ->setObjId(42)
206 ->setTargetScript('test_script');
207
208 $this->assertEquals('test_type', $context->getObjType());
209 $this->assertEquals(42, $context->getObjId());
210 $this->assertEquals('test_script', $context->getTargetScript());
211 }

References $context, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testContextPropertyAdoptionByRequest()

ilCtrlContextTest::testContextPropertyAdoptionByRequest ( )

Definition at line 101 of file ilCtrlContextTest.php.

101 : void
102 {
103 $expected_cid_path = 'test_cid_path';
104 $this->factory
105 ->method('existing')
106 ->willReturn($this->getPath($expected_cid_path));
107
108 $this->factory
109 ->method('find')
110 ->willReturn($this->getPath($expected_cid_path));
111
113 ilCtrlInterface::PARAM_CMD_MODE => 'test_cmd_mode',
114 ilCtrlInterface::PARAM_REDIRECT => 'test_redirect_source',
115 ilCtrlInterface::PARAM_BASE_CLASS => 'test_base_class',
116 ilCtrlInterface::PARAM_CMD_CLASS => 'test_cmd_class',
117 ilCtrlInterface::PARAM_CMD => 'test_cmd',
118 ilCtrlInterface::PARAM_CID_PATH => $expected_cid_path,
119 ]);
120
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());
131
132 // manually adopt request values.
133 $context->adopt();
134
135 $this->assertFalse($context->isAsync());
136 $this->assertNull($context->getObjType());
137 $this->assertNull($context->getObjId());
138 $this->assertEquals('ilias.php', $context->getTargetScript());
139
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());
146 }

References $context, getContextWithManualAdoption(), getPath(), ilCtrlInterface\PARAM_BASE_CLASS, ilCtrlInterface\PARAM_CID_PATH, ilCtrlInterface\PARAM_CMD, ilCtrlInterface\PARAM_CMD_CLASS, ilCtrlInterface\PARAM_CMD_MODE, and ilCtrlInterface\PARAM_REDIRECT.

+ Here is the call graph for this function:

◆ testContextPropertyAdoptionWithoutCidPathAndBaseClass()

ilCtrlContextTest::testContextPropertyAdoptionWithoutCidPathAndBaseClass ( )

Definition at line 183 of file ilCtrlContextTest.php.

183 : void
184 {
186 $this->assertNull($context->getBaseClass());
187 $this->assertNull($context->getPath()->getCidPath());
188
189 $context->adopt();
190
191 $this->assertNull($context->getBaseClass());
192 $this->assertNull($context->getPath()->getCidPath());
193 }

References $context, and getContextWithManualAdoption().

+ Here is the call graph for this function:

Field Documentation

◆ $factory

ilCtrlPathFactory ilCtrlContextTest::$factory
private

Definition at line 25 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $refinery

Refinery ilCtrlContextTest::$refinery
private

Definition at line 30 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $request

ArrayBasedRequestWrapper ilCtrlContextTest::$request
private

Definition at line 20 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $values

array ilCtrlContextTest::$values
private

Definition at line 35 of file ilCtrlContextTest.php.


The documentation for this class was generated from the following file: