ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
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 ()
 
 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.

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().

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,
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
Class ilCtrlPathFactory.
Class ilCtrlContext is responsible for holding the current context information.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilCtrlPathFactory $factory
__construct(Container $dic, ilPlugin $plugin)
+ 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.

References ILIAS\GlobalScreen\Provider\__construct().

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

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.
__construct(Container $dic, ilPlugin $plugin)
Interface ilCtrlPathInterface is responsible for holding and manipulating a valid ilCtrl class-path (...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUp()

ilCtrlContextTest::setUp ( )
protected

Definition at line 40 of file ilCtrlContextTest.php.

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

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
+ Here is the call graph for this function:

◆ testContextAsyncPropertyAdoptionByRequest()

ilCtrlContextTest::testContextAsyncPropertyAdoptionByRequest ( )

Definition at line 148 of file ilCtrlContextTest.php.

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

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  }
$context
Definition: webdav.php:29
const CMD_MODE_PROCESS
different modes used for UI plugins (or in dev-mode).
getContextWithManualAdoption(array $request_values=null)
+ Here is the call graph for this function:

◆ testContextBaseClassPropertyAdoptionByRequest()

ilCtrlContextTest::testContextBaseClassPropertyAdoptionByRequest ( )

Definition at line 166 of file ilCtrlContextTest.php.

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

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  }
$context
Definition: webdav.php:29
getContextWithManualAdoption(array $request_values=null)
getPath(string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithBaseClass ( )

Definition at line 233 of file ilCtrlContextTest.php.

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

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  }
$context
Definition: webdav.php:29
Class ilCtrlContext is responsible for holding the current context information.
getContextWithManualAdoption(array $request_values=null)
getPath(string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithoutBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithoutBaseClass ( )

Definition at line 213 of file ilCtrlContextTest.php.

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

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  }
$context
Definition: webdav.php:29
Class ilCtrlContext is responsible for holding the current context information.
getContextWithManualAdoption(array $request_values=null)
getPath(string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextPathProgressionWhenSettingClasses()

ilCtrlContextTest::testContextPathProgressionWhenSettingClasses ( )

Definition at line 256 of file ilCtrlContextTest.php.

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

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  }
$context
Definition: webdav.php:29
Class ilCtrlPathFactory.
Class ilCtrlContext is responsible for holding the current context information.
Class ilCtrlStructure holds the currently read control structure.
+ Here is the call graph for this function:

◆ testContextPropertiesThatCantBeAdopted()

ilCtrlContextTest::testContextPropertiesThatCantBeAdopted ( )

Definition at line 195 of file ilCtrlContextTest.php.

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

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 
203  $context
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  }
$context
Definition: webdav.php:29
Class ilCtrlContext is responsible for holding the current context information.
+ Here is the call graph for this function:

◆ testContextPropertyAdoptionByRequest()

ilCtrlContextTest::testContextPropertyAdoptionByRequest ( )

Definition at line 101 of file ilCtrlContextTest.php.

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.

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  }
$context
Definition: webdav.php:29
getContextWithManualAdoption(array $request_values=null)
getPath(string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextPropertyAdoptionWithoutCidPathAndBaseClass()

ilCtrlContextTest::testContextPropertyAdoptionWithoutCidPathAndBaseClass ( )

Definition at line 183 of file ilCtrlContextTest.php.

References $context, and getContextWithManualAdoption().

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  }
$context
Definition: webdav.php:29
getContextWithManualAdoption(array $request_values=null)
+ 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: