19 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../../../vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../Base.php");
34 return new IC\MessageBox\Factory();
38 return new IC\Button\Factory();
42 return new IC\Link\Factory();
48 , array(
C\MessageBox\MessageBox::SUCCESS)
49 , array(
C\MessageBox\MessageBox::INFO)
50 , array(
C\MessageBox\MessageBox::CONFIRMATION)
55 ,
C\MessageBox\MessageBox::SUCCESS =>
"alert-success" 56 ,
C\MessageBox\MessageBox::INFO =>
"alert-info" 57 ,
C\MessageBox\MessageBox::CONFIRMATION =>
"alert-warning" 61 ,
C\MessageBox\MessageBox::SUCCESS =>
"status" 62 ,
C\MessageBox\MessageBox::INFO =>
"status" 63 ,
C\MessageBox\MessageBox::CONFIRMATION =>
"status" 69 public function listing(): IC\Listing\Factory
71 return new IC\Listing\Factory(
72 new IC\Listing\Workflow\Factory(),
73 new IC\Listing\CharacteristicValue\Factory(),
74 new IC\Listing\Entity\Factory(),
80 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 85 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\MessageBox\\Factory",
$f);
86 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\MessageBox\\MessageBox",
$f->$factory_method(
"Lorem ipsum dolor sit amet."));
89 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 93 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
95 $this->assertNotNull($g);
96 $this->assertEquals($factory_method, $g->getType());
99 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 103 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
105 $this->assertNotNull($g);
106 $this->assertEquals(
"Lorem ipsum dolor sit amet.", $g->getMessageText());
109 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 114 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
116 $buttons = [$bf->standard(
"Confirm",
"#"), $bf->standard(
"Cancel",
"#")];
117 $g2 = $g->withButtons($buttons);
119 $this->assertEmpty($g->getButtons());
120 $this->assertNotEmpty($g2->getButtons());
123 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 128 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
131 $lf->standard(
"Open Exercise Assignment",
"#"),
132 $lf->standard(
"Open other screen",
"#"),
134 $g2 = $g->withLinks($links);
136 $this->assertEmpty($g->getLinks());
137 $this->assertNotEmpty($g2->getLinks());
140 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 146 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
148 $buttons = [$bf->standard(
"Confirm",
"#"), $bf->standard(
"Cancel",
"#")];
150 $lf->standard(
"Open Exercise Assignment",
"#"),
151 $lf->standard(
"Open other screen",
"#"),
153 $g2 = $g->withButtons($buttons)->withLinks($links);
155 $this->assertFalse(count($g->getButtons()) > 0 && count($g->getLinks()) > 0);
156 $this->assertTrue(count($g2->getButtons()) > 0 && count($g2->getLinks()) > 0);
159 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 163 $r = $this->getDefaultRenderer();
164 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.");
165 $css_classes = self::$canonical_css_classes[$factory_method];
166 $role_type = self::$canonical_role_types[$factory_method];
168 $html = $this->normalizeHTML(
$r->render($g));
169 $expected =
"<div class=\"alert $css_classes\" role=\"$role_type\">" .
170 "<div class=\"ilAccHeadingHidden\"><a name=\"il_message_focus\">" .
171 $g->getType() .
"_message</a></div>Lorem ipsum dolor sit amet.</div>";
172 $this->assertHTMLEquals($expected, $html);
175 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 180 $r = $this->getDefaultRenderer();
181 $css_classes = self::$canonical_css_classes[$factory_method];
182 $role_type = self::$canonical_role_types[$factory_method];
184 $buttons = [$bf->standard(
"Confirm",
"#"), $bf->standard(
"Cancel",
"#")];
186 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.")->withButtons($buttons);
188 $html = $this->normalizeHTML(
$r->render($g));
189 $expected =
"<div class=\"alert $css_classes\" role=\"$role_type\">" .
190 "<div class=\"ilAccHeadingHidden\"><a name=\"il_message_focus\">" .
191 $g->getType() .
"_message</a></div>Lorem ipsum dolor sit amet." .
192 "<div><button class=\"btn btn-default\" data-action=\"#\" id=\"id_1\">Confirm</button>" .
193 "<button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">Cancel</button></div></div>";
194 $this->assertHTMLEquals($expected, $html);
197 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 202 $r = $this->getDefaultRenderer();
203 $css_classes = self::$canonical_css_classes[$factory_method];
204 $role_type = self::$canonical_role_types[$factory_method];
207 $lf->standard(
"Open Exercise Assignment",
"#"),
208 $lf->standard(
"Open other screen",
"#"),
211 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.")->withLinks($links);
213 $html = $this->normalizeHTML(
$r->render($g));
214 $expected =
"<div class=\"alert $css_classes\" role=\"$role_type\">" .
215 "<div class=\"ilAccHeadingHidden\"><a name=\"il_message_focus\">" .
216 $g->getType() .
"_message</a></div>Lorem ipsum dolor sit amet." .
217 "<ul><li><a href=\"#\" >Open Exercise Assignment</a></li>" .
218 "<li><a href=\"#\" >Open other screen</a></li></ul></div>";
219 $this->assertHTMLEquals($expected, $html);
222 #[\PHPUnit\Framework\Attributes\DataProvider('getMessageboxTypeProvider')] 228 $r = $this->getDefaultRenderer();
229 $css_classes = self::$canonical_css_classes[$factory_method];
230 $role_type = self::$canonical_role_types[$factory_method];
232 $buttons = [$bf->standard(
"Confirm",
"#"), $bf->standard(
"Cancel",
"#")];
234 $lf->standard(
"Open Exercise Assignment",
"#"),
235 $lf->standard(
"Open other screen",
"#"),
238 $g =
$f->$factory_method(
"Lorem ipsum dolor sit amet.")->withButtons($buttons)->withLinks($links);
240 $html = $this->normalizeHTML(
$r->render($g));
241 $expected =
"<div class=\"alert $css_classes\" role=\"$role_type\">" .
242 "<div class=\"ilAccHeadingHidden\"><a name=\"il_message_focus\">" .
243 $g->getType() .
"_message</a></div>Lorem ipsum dolor sit amet." .
244 "<div><button class=\"btn btn-default\" data-action=\"#\" id=\"id_1\">Confirm</button>" .
245 "<button class=\"btn btn-default\" data-action=\"#\" id=\"id_2\">Cancel</button></div>" .
246 "<ul><li><a href=\"#\" >Open Exercise Assignment</a></li>" .
247 "<li><a href=\"#\" >Open other screen</a></li></ul></div>";
248 $this->assertHTMLEquals($expected, $html);
static getMessageboxTypeProvider()
testWithButtons(string $factory_method)
testImplementsFactoryInterface(string $factory_method)
Test on Message Box implementation.
The progress of the process/task cannot be calculated (yet), but it has started processing.
testRenderWithButtons(string $factory_method)
testWithButtonsAndLinks(string $factory_method)
testWithLinks(string $factory_method)
testRenderWithButtonsAndLinks(string $factory_method)
testRenderWithLinks(string $factory_method)
static array $canonical_role_types
testMessageboxTypes(string $factory_method)
testRenderSimple(string $factory_method)
testMessageboxMessagetext(string $factory_method)
static array $canonical_css_classes