ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
RoundTripTest.php
Go to the documentation of this file.
1 <?php
2 
3 require_once(__DIR__ . '/ModalBase.php');
4 
10 class RoundTripTest extends ModalBase
11 {
12  public function test_get_title()
13  {
14  $roundtrip = $this->getModalFactory()->roundtrip('myTitle', $this->getDummyComponent());
15  $this->assertEquals('myTitle', $roundtrip->getTitle());
16  }
17 
18  public function test_get_content()
19  {
20  $content = $this->getDummyComponent();
21  $roundtrip = $this->getModalFactory()->roundtrip('myTitle', $content);
22  $this->assertEquals([$content], $roundtrip->getContent());
23  $content = [$this->getDummyComponent(), $this->getDummyComponent()];
24  $roundtrip = $this->getModalFactory()->roundtrip('myTitle', $content);
25  $this->assertEquals($content, $roundtrip->getContent());
26  }
27 
28  public function test_get_action_buttons()
29  {
30  $roundtrip = $this->getModalFactory()->roundtrip('myTitle', $this->getDummyComponent());
31  $action_buttons = [
32  $this->getButtonFactory()->primary('Action 1', ''),
33  $this->getButtonFactory()->standard('Action 2', ''),
34  ];
35  $roundtrip = $roundtrip->withActionButtons($action_buttons);
36  $this->assertEquals($action_buttons, $roundtrip->getActionButtons());
37  }
38 
39  public function test_with_action_buttons()
40  {
41  $roundtrip = $this->getModalFactory()->roundtrip('myTitle', $this->getDummyComponent());
42  $action_buttons = [
43  $this->getButtonFactory()->primary('Action 1', ''),
44  $this->getButtonFactory()->standard('Action 2', ''),
45  ];
46  $roundtrip2 = $roundtrip->withActionButtons($action_buttons);
47  $this->assertEquals(0, count($roundtrip->getActionButtons()));
48  $this->assertEquals(2, count($roundtrip2->getActionButtons()));
49  $this->assertEquals($action_buttons, $roundtrip2->getActionButtons());
50  }
51 
52 
53  public function test_simple_rendering()
54  {
55  $roundtrip = $this->getModalFactory()->roundtrip('Title', $this->getUIFactory()->legacy('Content'))
56  ->withActionButtons([
57  $this->getButtonFactory()->primary('Action 1', ''),
58  $this->getButtonFactory()->standard('Action 2', ''),
59  ]);
60  $expected = $this->normalizeHTML($this->getExpectedHTML());
61  $actual = $this->normalizeHTML($this->getDefaultRenderer()->render($roundtrip));
62  $this->assertHTMLEquals($expected, $actual);
63  }
64 
65 
66  protected function getExpectedHTML()
67  {
68  $expected = <<<EOT
69 <div class="modal fade il-modal-roundtrip" tabindex="-1" role="dialog" id="id_1"><div class="modal-dialog" role="document" data-replace-marker="component"><div class="modal-content">
70  <div class="modal-header">
71  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true"></span></button><h4 class="modal-title">Title</h4>
72  </div>
73  <div class="modal-body">Content</div>
74  <div class="modal-footer">
75  <button class="btn btn-default btn-primary" data-action="">Action 1</button><button class="btn btn-default" data-action="">Action 2</button><a class="btn btn-default" data-dismiss="modal" aria-label="Close">cancel</a>
76  </div>
77  </div></div></div>
78 EOT;
79  return $expected;
80  }
81 }
getButtonFactory()
Definition: ModalBase.php:46
Title class.
Definition: Title.php:36
getDefaultRenderer(JavaScriptBinding $js_binding=null)
Definition: Base.php:228
getUIFactory()
Definition: ModalBase.php:15
getDummyComponent()
Definition: ModalBase.php:51
normalizeHTML($html)
Definition: ModalBase.php:56
Base class for modal tests.
Definition: ModalBase.php:13
assertHTMLEquals($expected_html_as_string, $html_as_string)
Definition: Base.php:270
getModalFactory()
Definition: ModalBase.php:41
$this data['403_header']
Tests on implementation for the roundtrip modal.