ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
StandardToastTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22use PHPUnit\Framework\Attributes\DataProvider;
25
26require_once(__DIR__ . "/BaseToastSetUp.php");
27
29{
30 public function testStandardToast(): void
31 {
32 $id = $this->createMock(IdentificationInterface::class);
33
34 $standard_toast = $this->factory->standard(
35 $id,
36 'Toast Title'
37 );
38
39 $this->assertInstanceOf(StandardToastItem::class, $standard_toast);
40 $this->assertSame('Toast Title', $standard_toast->getTitle());
41 $this->assertSame([], $standard_toast->getAllToastActions());
42 $this->assertCount(0, $standard_toast->getAllToastActions());
43 $this->assertCount(0, $standard_toast->getAdditionalToastActions());
44
45 $handle = (fn(): true => true);
46
47 $standard_toast = $standard_toast->withShownCallable($handle);
48 $this->assertCount(1, $standard_toast->getAllToastActions());
49 $this->assertCount(0, $standard_toast->getAdditionalToastActions());
50
51 $standard_toast = $standard_toast->withClosedCallable($handle);
52 $this->assertCount(2, $standard_toast->getAllToastActions());
53 $this->assertCount(0, $standard_toast->getAdditionalToastActions());
54
55 $standard_toast = $standard_toast->withVanishedCallable($handle);
56 $this->assertCount(3, $standard_toast->getAllToastActions());
57 $this->assertCount(0, $standard_toast->getAdditionalToastActions());
58
59 $standard_toast = $standard_toast->withAdditionToastAction($this->factory->action('one', 'One', $handle));
60 $this->assertCount(4, $standard_toast->getAllToastActions());
61 $this->assertCount(1, $standard_toast->getAdditionalToastActions());
62
63 $standard_toast = $standard_toast->withAdditionToastAction($this->factory->action('two', 'Two', $handle));
64 $this->assertCount(5, $standard_toast->getAllToastActions());
65 $this->assertCount(2, $standard_toast->getAdditionalToastActions());
66
67 // double add
68 $this->expectException(\InvalidArgumentException::class);
69 $standard_toast = $standard_toast->withAdditionToastAction($this->factory->action('two', 'Two', $handle));
70 }
71
72 public static function reservedActionsProvider(): \Iterator
73 {
74 $action = (fn(): true => true);
75 yield [new ToastAction('shown', 'shown', $action)];
76 yield [new ToastAction('closed', 'closed', $action)];
77 yield [new ToastAction('vanished', 'vanished', $action)];
78 }
79
80 #[DataProvider('reservedActionsProvider')]
81 public function testReservedActions(ToastAction $action): void
82 {
83 $id = $this->createMock(IdentificationInterface::class);
84
85 $standard_toast = $this->factory->standard(
86 $id,
87 'Toast Title'
88 );
89
90 $this->expectException(\InvalidArgumentException::class);
91 $standard_toast = $standard_toast->withAdditionToastAction($action);
92 }
93}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
factory()
static reservedActionsProvider()
testReservedActions(ToastAction $action)