ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
DrilldownSlateTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 require_once("vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ . "/../../../Base.php");
23 
24 use ILIAS\UI\Component as C;
27 
32 {
33  public function getUIFactory(): NoUIFactory
34  {
35  return new class () extends NoUIFactory {
36  protected function getSigGen()
37  {
38  return new I\SignalGenerator();
39  }
40 
41  public function menu(): I\Menu\Factory
42  {
43  return new I\Menu\Factory(
44  $this->getSigGen(),
45  );
46  }
47 
48  public function symbol(): I\Symbol\Factory
49  {
50  return new I\Symbol\Factory(
51  new I\Symbol\Icon\Factory(),
52  new I\Symbol\Glyph\Factory(),
53  new I\Symbol\Avatar\Factory()
54  );
55  }
56 
57  public function mainControls(): I\MainControls\Factory
58  {
59  $slate_factory = new I\MainControls\Slate\Factory(
60  $this->getSigGen(),
61  new I\Counter\Factory(),
62  $this->symbol()
63  );
64  return new I\MainControls\Factory($this->getSigGen(), $slate_factory);
65  }
66 
67  public function button(): I\Button\Factory
68  {
69  return new I\Button\Factory();
70  }
71  };
72  }
73 
75  {
76  $f = $this->getUIFactory();
77  $slate = $f->mainControls()->slate()->drilldown(
78  "ddslate",
79  $f->symbol()->icon()->custom('', ''),
80  $f->menu()->drilldown('ddmenu', [])
81  );
82  $this->assertInstanceOf("ILIAS\\UI\\Component\\MainControls\\Slate\\Drilldown", $slate);
83  return $slate;
84  }
85 
86  #[\PHPUnit\Framework\Attributes\Depends('testImplementsFactoryInterface')]
87  public function testRendering(Drilldown $slate): void
88  {
89  $r = $this->getDefaultRenderer();
90  $html = $r->render($slate);
91 
92  $expected = '
93  <div class="il-maincontrols-slate disengaged" id="id_4">
94  <div class="il-maincontrols-slate-content" data-replace-marker="content">
95  <section class="c-drilldown" id="id_2">
96  <header class="c-drilldown__header--showbacknav">
97  <div></div>
98  <div></div>
99  <div class="c-drilldown__filter">
100  <label for=\'id_3\' class="control-label">filter_nodes_in</label>
101  <input id=\'id_3\' type="text" class="form-control" />
102  </div>
103  <div class="c-drilldown__backnav">
104  <button class="btn btn-bulky" id="id_1" aria-label="back">
105  <span class="glyph" aria-label="collapse/back" role="img">
106  <span class="glyphicon glyphicon-triangle-left" aria-hidden="true"></span>
107  </span>
108  <span class="bulky-label"></span>
109  </button>
110  </div>
111  </header>
112  <div class="c-drilldown__menu">
113  <ul aria-live="polite" aria-label="ddmenu">
114  <li class="c-drilldown__menu--no-items"> drilldown_no_items</li>
115  </ul>
116  </div>
117  </section>
118  </div>
119  </div>
120  ';
121  $this->assertEquals(
122  $this->brutallyTrimHTML($expected),
123  $this->brutallyTrimHTML($html)
124  );
125  }
126 }
button(string $caption, string $cmd)
testRendering(Drilldown $slate)
Tests for the DrilldownSlate.
$r