ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
PopoverTest.php
Go to the documentation of this file.
1 <?php
3 use \ILIAS\UI\Implementation as I;
4 
5 require_once(__DIR__ . "/../../../../libs/composer/vendor/autoload.php");
6 require_once(__DIR__ . "/../../Base.php");
7 
16 {
17  public function getFactory()
18  {
19  $factory = new class extends NoUIFactory {
20  public function legacy($content)
21  {
22  $f = new I\Component\Legacy\Factory(new I\Component\SignalGenerator());
23  return $f->legacy($content);
24  }
25  };
26  return $factory;
27  }
28 
29  public function test_implements_interface()
30  {
31  $factory = new I\Component\Popover\Factory(new I\Component\SignalGenerator);
32  $standard = $factory->standard(new DummyComponent());
33  $this->assertInstanceOf("ILIAS\\UI\\Component\\Popover\\Standard", $standard);
34  $listing = $factory->listing([new DummyComponent()]);
35  $this->assertInstanceOf("ILIAS\\UI\\Component\\Popover\\Listing", $listing);
36  }
37 
39  {
40  $factory = new I\Component\Popover\Factory(new I\Component\SignalGenerator);
41  $popover = $factory->standard(new DummyComponent());
42  $this->assertEquals(Popover::POS_AUTO, $popover->getPosition());
43  }
44 
45  public function test_with_position()
46  {
47  $factory = new I\Component\Popover\Factory(new I\Component\SignalGenerator);
48  $popover1 = $factory->standard(new DummyComponent());
49  $popover2 = $popover1->withVerticalPosition();
50  $popover3 = $popover2->withHorizontalPosition();
51  $this->assertEquals(Popover::POS_AUTO, $popover1->getPosition());
52  $this->assertEquals(Popover::POS_VERTICAL, $popover2->getPosition());
53  $this->assertEquals(Popover::POS_HORIZONTAL, $popover3->getPosition());
54  $this->assertEquals($popover1->getContent(), $popover2->getContent());
55  $this->assertEquals($popover1->getContent(), $popover3->getContent());
56  }
57 
58  public function test_render_standard()
59  {
60  $factory = new I\Component\Popover\Factory(new I\Component\SignalGenerator);
61  $popover = $factory->standard($this->getFactory()->legacy('myContent'));
62  $expected = $this->normalizeHTML($this->getExpectedStandardHTML('myContent'));
63  $actual = $this->normalizeHTML($this->getDefaultRenderer()->render($popover));
64  $this->assertEquals($expected, $actual);
65  }
66 
67  public function test_render_listing()
68  {
69  // TODO Listing not yet in framework core
70  $this->assertTrue(true);
71  }
72 
73  public function test_render_async()
74  {
75  $factory = new I\Component\Popover\Factory(new I\Component\SignalGenerator);
76  $popover = $factory->standard($this->getFactory()->legacy('myContent'))->withAsyncContentUrl('/blub/');
77  $this->assertEquals('', $this->getDefaultRenderer()->render($popover));
78  }
79 
84  protected function getExpectedStandardHTML($content)
85  {
86  return '<div class="il-standard-popover-content" style="display:none;" id="id_1">' . $content . '</div>';
87  }
88 }
test_render_listing()
Definition: PopoverTest.php:67
getExpectedStandardHTML($content)
Definition: PopoverTest.php:84
normalizeHTML($html)
Definition: Base.php:363
Class PopoverTest.
Definition: PopoverTest.php:15
test_render_standard()
Definition: PopoverTest.php:58
test_implements_interface()
Definition: PopoverTest.php:29
test_with_position()
Definition: PopoverTest.php:45
Provides common functionality for UI tests.
Definition: Base.php:262
test_that_position_is_auto_by_default()
Definition: PopoverTest.php:38
legacy()
Definition: legacy.php:3
$factory
Definition: metadata.php:58
getDefaultRenderer(JavaScriptBinding $js_binding=null, $with_stub_renderings=[])
Definition: Base.php:311