mockApplication(); } public function testEncodeLabel() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => true, 'items' => [ [ 'encode' => false, 'label' => ' Users', 'url' => '#', ], [ 'encode' => true, 'label' => 'Authors & Publications', 'url' => '#', ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => false, 'items' => [ [ 'encode' => false, 'label' => ' Users', 'url' => '#', ], [ 'encode' => true, 'label' => 'Authors & Publications', 'url' => '#', ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); } /** * @see https://github.com/yiisoft/yii2/issues/8064 */ public function testTagOption() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => true, 'options' => [ 'tag' => false, ], 'items' => [ [ 'label' => 'item1', 'url' => '#', 'options' => ['tag' => 'div'], ], [ 'label' => 'item2', 'url' => '#', 'options' => ['tag' => false], ], ], ]); $expected = <<<'HTML'
item1
item2 HTML; $this->assertEqualsWithoutLE($expected, $output); $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => true, 'options' => [ 'tag' => false, ], 'items' => [ [ 'label' => 'item1', 'url' => '#', ], [ 'label' => 'item2', 'url' => '#', ], ], 'itemOptions' => ['tag' => false], ]); $expected = <<<'HTML' item1 item2 HTML; $this->assertEqualsWithoutLE($expected, $output); } public function testItemTemplate() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'linkTemplate' => '', 'labelTemplate' => '', 'items' => [ [ 'label' => 'item1', 'url' => '#', 'template' => 'label: {label}; url: {url}', ], [ 'label' => 'item2', 'template' => 'label: {label}', ], [ 'label' => 'item3 (no template)', ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); } public function testActiveItemClosure() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'linkTemplate' => '', 'labelTemplate' => '', 'items' => [ [ 'label' => 'item1', 'url' => '#', 'template' => 'label: {label}; url: {url}', 'active' => function ($item, $hasActiveChild, $isItemActive, $widget) { return isset($item, $hasActiveChild, $isItemActive, $widget); }, ], [ 'label' => 'item2', 'template' => 'label: {label}', 'active' => false, ], [ 'label' => 'item3 (no template)', 'active' => 'somestring', ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); } public function testItemClassAsArray() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => true, 'activeCssClass' => 'item-active', 'items' => [ [ 'label' => 'item1', 'url' => '#', 'active' => true, 'options' => [ 'class' => [ 'someclass', ], ], ], [ 'label' => 'item2', 'url' => '#', 'options' => [ 'class' => [ 'another-class', 'other--class', 'two classes', ], ], ], [ 'label' => 'item3', 'url' => '#', ], [ 'label' => 'item4', 'url' => '#', 'options' => [ 'class' => [ 'some-other-class', 'foo_bar_baz_class', ], ], ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); } public function testItemClassAsString() { $output = Menu::widget([ 'route' => 'test/test', 'params' => [], 'encodeLabels' => true, 'activeCssClass' => 'item-active', 'items' => [ [ 'label' => 'item1', 'url' => '#', 'options' => [ 'class' => 'someclass', ], ], [ 'label' => 'item2', 'url' => '#', ], [ 'label' => 'item3', 'url' => '#', 'options' => [ 'class' => 'some classes', ], ], [ 'label' => 'item4', 'url' => '#', 'active' => true, 'options' => [ 'class' => 'another-class other--class two classes', ], ], ], ]); $expected = <<<'HTML' HTML; $this->assertEqualsWithoutLE($expected, $output); } /*public function testIsItemActive() { // TODO: implement test of protected method isItemActive() }*/ }