ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator 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 88 of file ilCtrlContextTest.php.

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

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

89  {
90  $this->values = $request_values ?? [];
91 
92  return new class ($this->factory, $this->request, $this->refinery) extends ilCtrlContext {
93  // override parent constructor, so the request values
94  // are not adopted immediately.
95  public function __construct(
96  ilCtrlPathFactory $path_factory,
99  ) {
100  $this->path_factory = $path_factory;
101  $this->path = $path_factory->null();
102  $this->request_wrapper = $request_wrapper;
103  $this->refinery = $refinery;
104  }
105 
106  // provide a public method that manually adopts the
107  // request values.
108  public function adopt(): void
109  {
110  $this->adoptRequestParameters();
111  }
112  };
113  }
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 72 of file ilCtrlContextTest.php.

References ILIAS\GlobalScreen\Provider\__construct(), and null.

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

73  {
74  return new class ($cid_path) extends ilCtrlAbstractPath {
75  // override parent constructor, so we don't
76  // have to mock the ilCtrlStructure.
77  public function __construct(?string $cid_path = null)
78  {
79  $this->cid_path = $cid_path;
80  }
81  };
82  }
Class ilCtrlAbstractPath.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct(Container $dic, ilPlugin $plugin)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUp()

ilCtrlContextTest::setUp ( )
protected

Definition at line 54 of file ilCtrlContextTest.php.

References factory(), null, and ILIAS\Repository\refinery().

54  : void
55  {
56  $this->values = [];
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);
61  $this->request
62  ->method('retrieve')
63  ->willReturnCallback(function ($key) {
64  return $this->values[$key] ?? null;
65  });
66  }
factory()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ testContextAsyncPropertyAdoptionByRequest()

ilCtrlContextTest::testContextAsyncPropertyAdoptionByRequest ( )

Definition at line 162 of file ilCtrlContextTest.php.

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

162  : void
163  {
165  $this->assertFalse($context->isAsync());
166 
168  $context->adopt();
169  $this->assertFalse($context->isAsync());
170 
172  $context->adopt();
173  $this->assertFalse($context->isAsync());
174 
176  $context->adopt();
177  $this->assertTrue($context->isAsync());
178  }
$context
Definition: webdav.php:31
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 180 of file ilCtrlContextTest.php.

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

180  : void
181  {
182  $expected_cid_path = '0';
183  $this->factory
184  ->method('find')
185  ->willReturn($this->getPath($expected_cid_path));
186 
188  $this->assertNull($context->getBaseClass());
189 
190  $this->values[ilCtrlInterface::PARAM_BASE_CLASS] = ilCtrlBaseClass1TestGUI::class;
191  $context->adopt();
192 
193  $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getBaseClass());
194  $this->assertEquals($expected_cid_path, $context->getPath()->getCidPath());
195  }
$context
Definition: webdav.php:31
factory()
getContextWithManualAdoption(?array $request_values=null)
getPath(?string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithBaseClass ( )

Definition at line 247 of file ilCtrlContextTest.php.

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

247  : void
248  {
249  $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
250  $this->factory
251  ->method('find')
252  ->willReturn($this->getPath('http://localhost'));
253 
254  $context->setBaseClass(ilCtrlBaseClass1TestGUI::class);
255  $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
256 
257  $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
258  $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getBaseClass());
259  $this->assertEquals(ilCtrlCommandClass1TestGUI::class, $context->getCmdClass());
260 
262  ilCtrlInterface::PARAM_CMD_CLASS => ilCtrlBaseClass1TestGUI::class,
263  ]);
264 
265  $this->assertNull($context->getCmdClass());
266  $context->adopt();
267  $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
268  }
$context
Definition: webdav.php:31
Class ilCtrlContext is responsible for holding the current context information.
factory()
getContextWithManualAdoption(?array $request_values=null)
getPath(?string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextCommandClassPropertyWithoutBaseClass()

ilCtrlContextTest::testContextCommandClassPropertyWithoutBaseClass ( )

Definition at line 227 of file ilCtrlContextTest.php.

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

227  : void
228  {
229  $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
230  $this->factory
231  ->method('find')
232  ->willReturn($this->getPath('http://localhost'));
233 
234  $this->assertNull($context->getCmdClass());
235  $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
236  $this->assertEquals(ilCtrlCommandClass1TestGUI::class, $context->getCmdClass());
237 
239  ilCtrlInterface::PARAM_CMD_CLASS => ilCtrlBaseClass1TestGUI::class,
240  ]);
241 
242  $this->assertNull($context->getCmdClass());
243  $context->adopt();
244  $this->assertEquals(ilCtrlBaseClass1TestGUI::class, $context->getCmdClass());
245  }
$context
Definition: webdav.php:31
Class ilCtrlContext is responsible for holding the current context information.
factory()
getContextWithManualAdoption(?array $request_values=null)
getPath(?string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextPathProgressionWhenSettingClasses()

ilCtrlContextTest::testContextPathProgressionWhenSettingClasses ( )

Definition at line 270 of file ilCtrlContextTest.php.

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

270  : void
271  {
272  // for this test an actual instance of the path factory
273  // is required, therefore we have to creat the test ctrl
274  // structure.
275 
276  $structure_artifact = require __DIR__ . '/Data/Structure/test_ctrl_structure.php';
277  $base_class_artifact = require __DIR__ . '/Data/Structure/test_base_classes.php';
278 
280  $structure_artifact,
281  $base_class_artifact,
282  []
283  );
284 
285  $path_factory = new ilCtrlPathFactory($structure);
286  $context = new ilCtrlContext($path_factory, $this->request, $this->refinery);
287  $this->assertNull($context->getPath()->getCidPath());
288 
289  $context->setBaseClass(ilCtrlInvalidGuiClass::class);
290  $this->assertNull($context->getPath()->getCidPath());
291  $this->assertNull($context->getBaseClass());
292 
293  $context->setCmdClass(ilCtrlCommandClass1TestGUI::class);
294  $this->assertNull($context->getPath()->getCidPath());
295  $this->assertNull($context->getCmdClass());
296 
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());
301 
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());
306  }
$context
Definition: webdav.php:31
Class ilCtrlPathFactory.
Class ilCtrlContext is responsible for holding the current context information.
Class ilCtrlStructure holds the currently read control structure.
$structure
TOTAL STRUCTURE.
+ Here is the call graph for this function:

◆ testContextPropertiesThatCantBeAdopted()

ilCtrlContextTest::testContextPropertiesThatCantBeAdopted ( )

Definition at line 209 of file ilCtrlContextTest.php.

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

209  : void
210  {
211  $context = new ilCtrlContext($this->factory, $this->request, $this->refinery);
212 
213  $this->assertNull($context->getObjType());
214  $this->assertNull($context->getObjId());
215  $this->assertEquals('ilias.php', $context->getTargetScript());
216 
217  $context
218  ->setObjType('test_type')
219  ->setObjId(42)
220  ->setTargetScript('test_script');
221 
222  $this->assertEquals('test_type', $context->getObjType());
223  $this->assertEquals(42, $context->getObjId());
224  $this->assertEquals('test_script', $context->getTargetScript());
225  }
$context
Definition: webdav.php:31
Class ilCtrlContext is responsible for holding the current context information.
factory()
+ Here is the call graph for this function:

◆ testContextPropertyAdoptionByRequest()

ilCtrlContextTest::testContextPropertyAdoptionByRequest ( )

Definition at line 115 of file ilCtrlContextTest.php.

References $context, factory(), 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.

115  : void
116  {
117  $expected_cid_path = 'test_cid_path';
118  $this->factory
119  ->method('existing')
120  ->willReturn($this->getPath($expected_cid_path));
121 
122  $this->factory
123  ->method('find')
124  ->willReturn($this->getPath($expected_cid_path));
125 
127  ilCtrlInterface::PARAM_CMD_MODE => 'test_cmd_mode',
128  ilCtrlInterface::PARAM_REDIRECT => 'test_redirect_source',
129  ilCtrlInterface::PARAM_BASE_CLASS => 'test_base_class',
130  ilCtrlInterface::PARAM_CMD_CLASS => 'test_cmd_class',
131  ilCtrlInterface::PARAM_CMD => 'test_cmd',
132  ilCtrlInterface::PARAM_CID_PATH => $expected_cid_path,
133  ]);
134 
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());
145 
146  // manually adopt request values.
147  $context->adopt();
148 
149  $this->assertFalse($context->isAsync());
150  $this->assertNull($context->getObjType());
151  $this->assertNull($context->getObjId());
152  $this->assertEquals('ilias.php', $context->getTargetScript());
153 
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());
160  }
$context
Definition: webdav.php:31
factory()
getContextWithManualAdoption(?array $request_values=null)
getPath(?string $cid_path=null)
+ Here is the call graph for this function:

◆ testContextPropertyAdoptionWithoutCidPathAndBaseClass()

ilCtrlContextTest::testContextPropertyAdoptionWithoutCidPathAndBaseClass ( )

Definition at line 197 of file ilCtrlContextTest.php.

References $context, and getContextWithManualAdoption().

197  : void
198  {
200  $this->assertNull($context->getBaseClass());
201  $this->assertNull($context->getPath()->getCidPath());
202 
203  $context->adopt();
204 
205  $this->assertNull($context->getBaseClass());
206  $this->assertNull($context->getPath()->getCidPath());
207  }
$context
Definition: webdav.php:31
getContextWithManualAdoption(?array $request_values=null)
+ Here is the call graph for this function:

Field Documentation

◆ $factory

ilCtrlPathFactory ilCtrlContextTest::$factory
private

Definition at line 39 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $refinery

Refinery ilCtrlContextTest::$refinery
private

Definition at line 44 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $request

ArrayBasedRequestWrapper ilCtrlContextTest::$request
private

Definition at line 34 of file ilCtrlContextTest.php.

Referenced by getContextWithManualAdoption().

◆ $values

array ilCtrlContextTest::$values
private

Definition at line 49 of file ilCtrlContextTest.php.


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