19 declare(strict_types=1);
21 require_once(
"vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../Base.php");
42 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Counter\\Factory",
$f);
44 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Counter\\Counter",
$f->status(0));
45 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Counter\\Counter",
$f->novelty(0));
48 #[\PHPUnit\Framework\Attributes\DataProvider('getNumberProvider')] 53 $c =
$f->status($number);
55 $this->assertNotNull(
$c);
56 $this->assertEquals(
C\
Counter\Counter::STATUS,
$c->getType());
57 $this->assertEquals($number,
$c->getNumber());
60 #[\PHPUnit\Framework\Attributes\DataProvider('getNumberProvider')] 65 $c =
$f->novelty($number);
67 $this->assertNotNull(
$c);
68 $this->assertEquals(
C\
Counter\Counter::NOVELTY,
$c->getType());
69 $this->assertEquals($number,
$c->getNumber());
74 $this->expectException(InvalidArgumentException::class);
78 #[\PHPUnit\Framework\Attributes\DataProvider('getNoNumberProvider')] 81 $this->expectException(TypeError::class);
83 $f->status($no_number);
107 "status" =>
"badge badge-notify il-counter-status",
108 "novelty" =>
"badge badge-notify il-counter-novelty" 111 #[\PHPUnit\Framework\Attributes\DataProvider('getCounterTypeAndNumberProvider')] 115 $r = $this->getDefaultRenderer();
116 $c =
$f->$type($number);
118 $html = $this->normalizeHTML(
$r->render(
$c));
120 $css_classes = self::$canonical_css_classes[$type];
121 $expected =
"<span class=\"il-counter\"><span class=\"$css_classes\">$number</span></span>";
122 $this->assertHTMLEquals($expected, $html);
static getNumberProvider()
static array $canonical_css_classes
testRenderStatus(string $type, int $number)
testNoveltyCounter(int $number)
testImplementsFactoryInterface()
static getCounterTypeAndNumberProvider()
static getNoNumberProvider()
testIntNumbersOnly($no_number)
Defines tests that a counter implementation should pass.
testStatusCounter(int $number)