ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Badge\test\PresentationHeaderTest Class Reference
+ Inheritance diagram for ILIAS\Badge\test\PresentationHeaderTest:
+ Collaboration diagram for ILIAS\Badge\test\PresentationHeaderTest:

Public Member Functions

 testConstruct ()
 
 testShow (bool $additional=false)
 

Static Public Member Functions

static showProvider ()
 

Detailed Description

Definition at line 36 of file PresentationHeaderTest.php.

Member Function Documentation

◆ showProvider()

static ILIAS\Badge\test\PresentationHeaderTest::showProvider ( )
static

Definition at line 113 of file PresentationHeaderTest.php.

113 : array
114 {
115 return [
116 'Without additional component' => [],
117 'With additional component' => [true],
118 ];
119 }

◆ testConstruct()

ILIAS\Badge\test\PresentationHeaderTest::testConstruct ( )

Definition at line 38 of file PresentationHeaderTest.php.

38 : void
39 {
40 $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
41 $head = new PresentationHeader($container, 'Some class.');
42 $this->assertInstanceOf(PresentationHeader::class, $head);
43 }
$container
@noRector
Definition: wac.php:37

References $container.

◆ testShow()

ILIAS\Badge\test\PresentationHeaderTest::testShow ( bool  $additional = false)

Definition at line 46 of file PresentationHeaderTest.php.

46 : void
47 {
48 $mode = $this->getMockBuilder(Mode::class)->disableOriginalConstructor()->getMock();
49 $mode->expects($this->once())->method('withActive')->with('tile_view')->willReturn($mode);
50
51 $view_control = $this->getMockBuilder(ViewControl::class)->disableOriginalConstructor()->getMock();
52 $view_control->expects($this->once())->method('mode')->with([
53 'tile_view' => 'list URL',
54 'table_view' => 'manage URL',
55 ])->willReturn($mode);
56
57 $additional_component = [];
58 $consecutive_expected = [$mode];
59 if ($additional) {
60 $mock = $this->getMockBuilder(Component::class)->getMock();
61 $additional_component[] = [$mock];
62 $consecutive_expected[] = $mock;
63 }
64
65 $toolbar = $this->getMockBuilder(ilToolbarGUI::class)->disableOriginalConstructor()->getMock();
66 $toolbar
67 ->expects($this->exactly($additional + 1))
68 ->method('addStickyItem')
69 ->willReturnCallback(
70 function ($component) use (&$consecutive_expected) {
71 $expected = array_shift($consecutive_expected);
72 $this->assertEquals($expected, $component);
73 }
74 );
75
76
77 $factory = $this->getMockBuilder(UI::class)->disableOriginalConstructor()->getMock();
78 $factory->expects($this->once())->method('viewControl')->willReturn($view_control);
79
80 $ui = $this->getMockBuilder(UIServices::class)->disableOriginalConstructor()->getMock();
81 $ui->method('factory')->willReturn($factory);
82
83 $consecutive = [
84 ['Some class.', 'listBadges', 'list URL'],
85 ['Some class.', 'manageBadges', 'manage URL'],
86 ];
87 $ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock();
88 $ctrl
89 ->expects($this->exactly(2))
90 ->method('getLinkTargetByClass')
91 ->willReturnCallback(
92 function ($class, $cmd) use (&$consecutive) {
93 list($expected_class, $expected_cmd, $ret) = array_shift($consecutive);
94 $this->assertEquals($class, $expected_class);
95 $this->assertEquals($cmd, $expected_cmd);
96 return $ret;
97 }
98 );
99
100 $language = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
101 $language->method('txt')->willReturnCallback(static fn(string $name): string => $name);
102
103 $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
104 $container->expects($this->once())->method('toolbar')->willReturn($toolbar);
105 $container->method('ui')->willReturn($ui);
106 $container->method('ctrl')->willReturn($ctrl);
107 $container->method('language')->willReturn($language);
108
109 $head = new PresentationHeader($container, 'Some class.');
110 $head->show('tile_view', $additional_component[0][0] ?? null);
111 }

References $container.


The documentation for this class was generated from the following file: