19declare(strict_types=1);
37require_once(__DIR__ .
"/../../../../../../../vendor/composer/vendor/autoload.php");
38require_once(__DIR__ .
"/../../../Base.php");
39require_once(__DIR__ .
"/InputTest.php");
68 $this->numberedlist_glyph_mock = $this->
getGlyphStub(
'numberedlist');
69 $this->bulledpoint_glyph_mock = $this->
getGlyphStub(
'bulletpoint');
70 $this->header_glyph_mock = $this->
getGlyphStub(
'header');
71 $this->italic_glyph_mock = $this->
getGlyphStub(
'italic');
93 protected ViewControlFactory $view_control_factory;
94 protected ButtonFactory $button_factory;
95 protected SymbolFactory $symbol_factory;
98 ViewControlFactory $view_control_factory,
99 ButtonFactory $button_factory,
100 SymbolFactory $symbol_factory,
102 $this->view_control_factory = $view_control_factory;
103 $this->button_factory = $button_factory;
104 $this->symbol_factory = $symbol_factory;
107 public function viewControl(): ViewControlFactory
109 return $this->view_control_factory;
112 public function button(): ButtonFactory
114 return $this->button_factory;
117 public function symbol(): SymbolFactory
119 return $this->symbol_factory;
126 $label =
'test_label';
128 $input = $this->
factory->markdown($this->markdown_renderer, $label)->withNameFrom($this->name_source);
130 $expected = $this->brutallyTrimHTML(
132 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" id=\"id_8\" tabindex=\"0\">
133 <label>$label</label>
134 <div class=\"c-input__field\">
136 <div class=\"c-field-markdown\">
137 <div class=\"c-field-markdown__controls\">
139 <div class=\"c-field-markdown__actions\">
140 <span data-action=\"insert-heading\">
141 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
143 <span data-action=\"insert-link\">
144 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
146 <span data-action=\"insert-bold\">
147 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
149 <span data-action=\"insert-italic\">
150 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
152 <span data-action=\"insert-bullet-points\">
153 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
155 <span data-action=\"insert-enumeration\">
156 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
160 <div class=\"c-field-markdown__preview hidden\"></div>
161 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
170 $this->assertEquals($expected, $html);
175 $label =
'test_label';
176 $byline =
'test_byline';
178 $input = $this->
factory->markdown(
179 $this->markdown_renderer,
182 )->withNameFrom($this->name_source);
184 $expected = $this->brutallyTrimHTML(
186 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" id=\"id_8\" tabindex=\"0\">
187 <label>$label</label>
188 <div class=\"c-input__field\">
190 <div class=\"c-field-markdown\">
191 <div class=\"c-field-markdown__controls\">
193 <div class=\"c-field-markdown__actions\">
194 <span data-action=\"insert-heading\">
195 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
197 <span data-action=\"insert-link\">
198 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
200 <span data-action=\"insert-bold\">
201 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
203 <span data-action=\"insert-italic\">
204 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
206 <span data-action=\"insert-bullet-points\">
207 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
209 <span data-action=\"insert-enumeration\">
210 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
215 <div class=\"c-field-markdown__preview hidden\"></div>
216 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
221 <div class=\"c-input__help-byline\">$byline</div>
228 $this->assertEquals($expected, $html);
233 $label =
'test_label';
234 $byline =
'test_byline';
238 $input = $this->
factory->markdown(
239 $this->markdown_renderer,
242 )->withMinLimit($min)->withMaxLimit($max)->withNameFrom($this->name_source);
244 $expected = $this->brutallyTrimHTML(
246 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" id=\"id_8\" tabindex=\"0\">
247 <label>$label</label>
248 <div class=\"c-input__field\">
250 <div class=\"c-field-markdown\">
251 <div class=\"c-field-markdown__controls\">
253 <div class=\"c-field-markdown__actions\">
254 <span data-action=\"insert-heading\">
255 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
257 <span data-action=\"insert-link\">
258 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
260 <span data-action=\"insert-bold\">
261 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
263 <span data-action=\"insert-italic\">
264 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
266 <span data-action=\"insert-bullet-points\">
267 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
269 <span data-action=\"insert-enumeration\">
270 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
274 <div class=\"c-field-markdown__preview hidden\"></div>
275 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\" minlength=\"$min\" maxlength=\"$max\"></textarea>
276 <div class=\"ui-input-textarea-remainder\"> ui_chars_remaining<span data-action=\"remainder\">$max</span></div>
280 <div class=\"c-input__help-byline\">$byline</div>
287 $this->assertEquals($expected, $html);
292 $label =
'test_label';
293 $byline =
'test_byline';
295 $input = $this->
factory->markdown(
296 $this->markdown_renderer,
299 )->withDisabled(
true)->withNameFrom($this->name_source);
301 $expected = $this->brutallyTrimHTML(
303 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" disabled=\"disabled\" id=\"id_2\" tabindex=\"0\">
304 <label>$label</label>
305 <div class=\"c-input__field\">
307 <div class=\"c-field-markdown\">
308 <div class=\"c-field-markdown__controls\">
310 <div class=\"c-field-markdown__actions\">
311 <span data-action=\"insert-heading\">
312 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">header</button>
314 <span data-action=\"insert-link\">
315 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">link</button>
317 <span data-action=\"insert-bold\">
318 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">bold</button>
320 <span data-action=\"insert-italic\">
321 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">italic</button>
323 <span data-action=\"insert-bullet-points\">
324 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">bulletpoint</button>
326 <span data-action=\"insert-enumeration\">
327 <button class=\"btn btn-default\" data-action=\"#\" disabled=\"disabled\">numberedlist</button>
331 <div class=\"c-field-markdown__preview hidden\"></div>
332 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
336 <div class=\"c-input__help-byline\">$byline</div>
343 $this->assertEquals($expected, $html);
348 $label =
'test_label';
349 $byline =
'test_byline';
351 $input = $this->
factory->markdown(
352 $this->markdown_renderer,
355 )->withRequired(
true)->withNameFrom($this->name_source);
357 $expected = $this->brutallyTrimHTML(
359 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" id=\"id_8\" tabindex=\"0\">
360 <label>$label<span class=\"asterisk\" aria-label=\"required_field\">*</span></label>
361 <div class=\"c-input__field\">
363 <div class=\"c-field-markdown\">
364 <div class=\"c-field-markdown__controls\">
366 <div class=\"c-field-markdown__actions\">
367 <span data-action=\"insert-heading\">
368 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
370 <span data-action=\"insert-link\">
371 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
373 <span data-action=\"insert-bold\">
374 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
376 <span data-action=\"insert-italic\">
377 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
379 <span data-action=\"insert-bullet-points\">
380 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
382 <span data-action=\"insert-enumeration\">
383 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
387 <div class=\"c-field-markdown__preview hidden\"></div>
388 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
392 <div class=\"c-input__help-byline\">$byline</div>
399 $this->assertEquals($expected, $html);
404 $label =
'test_label';
405 $byline =
'test_byline';
406 $error =
'test_error';
408 $input = $this->
factory->markdown(
409 $this->markdown_renderer,
412 )->withError($error)->withNameFrom($this->name_source);
414 $expected = $this->brutallyTrimHTML(
416 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" aria-describedby=\"id_9\" id=\"id_8\" tabindex=\"0\">
417 <label>$label</label>
418 <div class=\"c-input__field\">
420 <div class=\"c-field-markdown\">
421 <div class=\"c-field-markdown__controls\">
423 <div class=\"c-field-markdown__actions\">
424 <span data-action=\"insert-heading\">
425 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
427 <span data-action=\"insert-link\">
428 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
430 <span data-action=\"insert-bold\">
431 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
433 <span data-action=\"insert-italic\">
434 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
436 <span data-action=\"insert-bullet-points\">
437 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
439 <span data-action=\"insert-enumeration\">
440 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
444 <div class=\"c-field-markdown__preview hidden\"></div>
445 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
449 <div class=\"c-input__error-msg alert alert-danger\" id=\"id_9\"><span class=\"sr-only\">ui_error:</span>$error</div>
450 <div class=\"c-input__help-byline\">$byline</div>
457 $this->assertEquals($expected, $html);
462 return $this->getDefaultRenderer(
null, [
463 $this->view_control_mock,
464 $this->header_glyph_mock,
465 $this->italic_glyph_mock,
466 $this->bold_glyph_mock,
467 $this->link_glyph_mock,
468 $this->numberedlist_glyph_mock,
469 $this->bulledpoint_glyph_mock,
475 return new FieldFactory(
477 $this->createMock(UploadLimitResolver::class),
479 $this->createMock(DataFactory::class),
480 $this->createMock(Refinery::class),
487 return new ButtonFactory();
494 $markdown_renderer->method(
'getParameterName')->willReturn(self::TEST_PARAMETER_NAME);
496 static function ($value) {
506 $glyph_factory = $this->createMock(GlyphFactory::class);
507 $glyph_factory->method(
'header')->willReturn($this->header_glyph_mock);
508 $glyph_factory->method(
'italic')->willReturn($this->italic_glyph_mock);
509 $glyph_factory->method(
'bold')->willReturn($this->bold_glyph_mock);
510 $glyph_factory->method(
'link')->willReturn($this->link_glyph_mock);
511 $glyph_factory->method(
'numberedlist')->willReturn($this->numberedlist_glyph_mock);
512 $glyph_factory->method(
'bulletlist')->willReturn($this->bulledpoint_glyph_mock);
514 $symbol_factory = $this->createMock(SymbolFactory::class);
515 $symbol_factory->method(
'glyph')->willReturn($glyph_factory);
517 return $symbol_factory;
522 $view_control_factory = $this->createMock(ViewControlFactory::class);
525 return $view_control_factory;
530 $view_control = $this->createMock(ViewControlMode::class);
531 $view_control->method(
'getCanonicalName')->willReturn(
'view_control_mode');
533 return $view_control;
538 $glyph = $this->createMock(Glyph::class);
539 $glyph->method(
'getCanonicalName')->willReturn($name);
541 $glyph->method(
'withUnavailableAction')->willReturnSelf();
548 $label =
'test_label';
550 $input = $this->
factory->markdown($this->markdown_renderer, $label)
551 ->withNameFrom($this->name_source)
552 ->withMustacheVariables(
554 'var1' =>
'Test Variable 1',
555 'var2' =>
'Test Variable 2'
557 'Also, some more info could be added here as well.'
561 $expected = $this->brutallyTrimHTML(
563 <fieldset class=\"c-input\" data-il-ui-component=\"markdown-field-input\" data-il-ui-input-name=\"name_0\" id=\"id_8\" tabindex=\"0\">
564 <label>$label</label>
565 <div class=\"c-input__field\">
567 <div class=\"c-field-markdown\">
568 <div class=\"c-field-markdown__controls\">
570 <div class=\"c-field-markdown__actions\">
571 <span data-action=\"insert-heading\">
572 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">header</button>
574 <span data-action=\"insert-link\">
575 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_3\">link</button>
577 <span data-action=\"insert-bold\">
578 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_4\">bold</button>
580 <span data-action=\"insert-italic\">
581 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_5\">italic</button>
583 <span data-action=\"insert-bullet-points\">
584 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_7\">bulletpoint</button>
586 <span data-action=\"insert-enumeration\">
587 <button class=\"btn btn-default\" data-action=\"#\" id=\"id_6\">numberedlist</button>
591 <div class=\"c-field-markdown__preview hidden\"></div>
592 <textarea id=\"id_1\" class=\"c-field-textarea\" name=\"name_0\"></textarea>
593 <div class=\"c-input--has-mustache-variables\">
594 <span>Also, some more info could be added here as well.</span>
595 <ul class=\"c-input--has-mustache-variables__definitions\">
596 <li><a href=\"#\">{{var1}}</a> Test Variable 1</li>
597 <li><a href=\"#\">{{var2}}</a> Test Variable 2</li>
607 $this->assertEquals($expected, $html);
Builds a Color from either hex- or rgb values.
Provides common functionality for UI tests.
Glyph $bulledpoint_glyph_mock
getGlyphStub(string $name)
getUIFactory()
The rendering of this input requires actual or minimal instances of:
getMarkdownRendererMock()
DefNamesource $name_source
getViewControlFactoryMock()
Glyph $numberedlist_glyph_mock
MarkdownRenderer $markdown_renderer
testRenderWithMustacheVariables()
ViewControlMode $view_control_mock
buildMinimalFieldFactory()
const TEST_PARAMETER_NAME
Provides methods to interface with javascript.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
button(string $caption, string $cmd)
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.