19 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../Base.php");
62 array $is_input_rendered,
66 $this->input_factory = $field_factory;
85 return $this->extractParamData($request);
90 if ($this->input_data !==
null) {
91 return $this->input_data;
94 return parent::extractParamData($request);
99 $this->input_group = $this->input_factory->group($inputs);
119 $this->buildInputFactory()
125 $df =
new Data\Factory();
126 $language = $this->createMock(
ILIAS\
Language\Language::class);
165 $this->buildButtonFactory(),
166 $this->buildGlyphFactory(),
167 $this->buildPopoverFactory(),
168 $this->buildLegacyFactory(),
169 $this->buildListingFactory()
175 return new Data\Factory();
180 $f = $this->buildFactory();
181 $if = $this->buildInputFactory();
184 $inputs = [$if->text(
""), $if->select(
"", [])];
185 $inputs_rendered = [
true,
true];
186 $filter =
$f->standard(
200 $inputs = $filter->getInputs();
203 $name = $input->getName();
204 $name_source->name =
$name;
207 $this->assertIsString(
$name);
211 $this->assertEquals($input->withNameFrom($name_source), $input);
214 $this->assertNotContains(
$name, $seen_names);
215 $seen_names[] =
$name;
223 $this->buildInputFactory(),
235 $request = $this->createMock(ServerRequestInterface::class);
237 ->expects($this->once())
238 ->method(
"getQueryParams")
240 $input_data = $filter->_extractParamData($request);
241 $this->assertInstanceOf(InputData::class, $input_data);
246 $request = $this->createMock(ServerRequestInterface::class);
247 $input_data = $this->createMock(InputData::class);
249 $df = $this->buildDataFactory();
251 $input_1 = $this->inputMock();
253 ->expects($this->once())
254 ->method(
"withInput")
256 ->willReturn($input_1);
258 ->expects($this->once())
259 ->method(
"getContent")
260 ->willReturn($df->ok(0));
262 $input_2 = $this->inputMock();
264 ->expects($this->once())
265 ->method(
"withInput")
267 ->willReturn($input_2);
269 ->expects($this->once())
270 ->method(
"getContent")
271 ->willReturn($df->ok(0));
275 $this->buildInputFactory(),
287 $filter->setInputs([$input_1, $input_2]);
288 $filter->input_data = $input_data;
290 $filter2 = $filter->withRequest($request);
292 $this->assertNotSame($filter2, $filter);
293 $this->assertInstanceOf(Filter::class, $filter2);
294 $this->assertEquals([$input_1, $input_2], $filter2->getInputs());
299 $df = $this->buildDataFactory();
300 $request = $this->createMock(ServerRequestInterface::class);
302 ->expects($this->once())
303 ->method(
"getQueryParams")
306 $input_1 = $this->inputMock();
308 ->expects($this->once())
309 ->method(
"getContent")
310 ->willReturn($df->ok(1));
312 ->expects($this->once())
313 ->method(
"withInput")
314 ->willReturn($input_1);
316 $input_2 = $this->inputMock();
318 ->expects($this->once())
319 ->method(
"getContent")
320 ->willReturn($df->ok(2));
322 ->expects($this->once())
323 ->method(
"withInput")
324 ->willReturn($input_2);
328 $this->buildInputFactory(),
340 $filter->setInputs([$input_1, $input_2]);
341 $filter = $filter->withRequest($request);
342 $this->assertEquals([1, 2], $filter->getData());
347 $f = $this->buildFactory();
348 $if = $this->buildInputFactory();
349 $inputs = [$if->text(
""), $if->text(
"")];
350 $inputs_rendered = [
true,
true];
352 $filter =
$f->standard(
364 $filter1 = $filter->withActivated();
366 $this->assertFalse($filter->isActivated());
367 $this->assertTrue($filter1->isActivated());
372 $f = $this->buildFactory();
373 $if = $this->buildInputFactory();
374 $inputs = [$if->text(
""), $if->text(
"")];
375 $inputs_rendered = [
true,
true];
377 $filter =
$f->standard(
389 $filter1 = $filter->withDeactivated();
391 $this->assertTrue($filter->isActivated());
392 $this->assertFalse($filter1->isActivated());
397 $f = $this->buildFactory();
398 $if = $this->buildInputFactory();
399 $inputs = [$if->text(
""), $if->text(
"")];
400 $inputs_rendered = [
true,
true];
402 $filter =
$f->standard(
414 $filter1 = $filter->withExpanded();
416 $this->assertFalse($filter->isExpanded());
417 $this->assertTrue($filter1->isExpanded());
422 $f = $this->buildFactory();
423 $if = $this->buildInputFactory();
424 $inputs = [$if->text(
""), $if->text(
"")];
425 $inputs_rendered = [
true,
true];
427 $filter =
$f->standard(
439 $filter1 = $filter->withCollapsed();
441 $this->assertTrue($filter->isExpanded());
442 $this->assertFalse($filter1->isExpanded());
452 ->getMockBuilder(
Input\Field\FormInputInternal::class)
471 "withAdditionalTransformation",
472 "getUpdateOnLoadCode",
475 "withAdditionalOnLoadCode",
479 "withResetTriggeredSignals",
480 "getTriggeredSignals",
483 ->setMockClassName(
"Mock_InputNo" . ($no++))
Input Field Factory $input_factory
Interface Observer Contains several chained tasks and infos about them.
getNewName()
Generates a unique name on every call.
_extractParamData(ServerRequestInterface $request)
__construct(SignalGenerator $signal_generator, Input\Field\Factory $field_factory, $toggle_action_on, $toggle_action_off, $expand_action, $collapse_action, $apply_action, $reset_action, array $inputs, array $is_input_rendered, bool $is_activated, bool $is_expanded)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Test on filter implementation.
extractParamData(ServerRequestInterface $request)
__construct(Container $dic, ilPlugin $plugin)