mockWebApplication([ 'components' => [ 'request' => [ 'class' => 'yii\web\Request', 'scriptUrl' => '/base/index.php', 'hostInfo' => 'http://example.com/', 'url' => '/base/index.php&r=site%2Fcurrent&id=42' ], 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'baseUrl' => '/base', 'scriptUrl' => '/base/index.php', 'hostInfo' => 'http://example.com/', ] ], ]); } public function testIds() { Nav::$counter = 0; $out = Nav::widget( [ 'items' => [ [ 'label' => 'Page1', 'content' => 'Page1', ], [ 'label' => 'Dropdown1', 'items' => [ ['label' => 'Page2', 'content' => 'Page2'], ['label' => 'Page3', 'content' => 'Page3'], ] ], [ 'label' => 'Dropdown2', 'visible' => false, 'items' => [ ['label' => 'Page4', 'content' => 'Page4'], ['label' => 'Page5', 'content' => 'Page5'], ] ] ] ] ); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } public function testRenderDropdownWithDropdownOptions() { Nav::$counter = 0; $out = Nav::widget( [ 'items' => [ [ 'label' => 'Page1', 'content' => 'Page1', ], [ 'label' => 'Dropdown1', 'dropdownOptions' => ['class' => 'test', 'data-id' => 't1', 'id' => 'test1'], 'items' => [ ['label' => 'Page2', 'content' => 'Page2'], ['label' => 'Page3', 'content' => 'Page3'], ] ], [ 'label' => 'Dropdown2', 'visible' => false, 'items' => [ ['label' => 'Page4', 'content' => 'Page4'], ['label' => 'Page5', 'content' => 'Page5'], ] ] ] ] ); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } public function testEmptyItems() { Nav::$counter = 0; $out = Nav::widget([ 'items' => [ [ 'label' => 'Page1', 'items' => null, ], [ 'label' => 'Dropdown1', 'items' => [ ['label' => 'Page2', 'content' => 'Page2'], ['label' => 'Page3', 'content' => 'Page3'], ], ], [ 'label' => 'Page4', 'items' => [], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } public function testActive() { $this->mockAction('site', 'users'); Nav::$counter = 0; $out = Nav::widget([ 'items' => [ [ 'label' => 'Main', 'url' => ['site/index'], ], [ 'label' => 'Admin', 'items' => [ ['label' => 'Users', 'url' => ['site/users']], ['label' => 'Roles', 'url' => ['site/roles']], ['label' => 'Statuses', 'url' => ['site/statuses']] ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } /** * @see https://github.com/yiisoft/yii2-bootstrap/issues/162 */ public function testExplicitActive() { $this->mockAction('site', 'index'); Nav::$counter = 0; $out = Nav::widget([ 'activateItems' => false, 'items' => [ [ 'label' => 'Item1', 'active' => true, ], [ 'label' => 'Item2', 'url' => ['site/index'], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } /** * @see https://github.com/yiisoft/yii2-bootstrap/issues/162 */ public function testImplicitActive() { $this->mockAction('site', 'index'); Nav::$counter = 0; $out = Nav::widget([ 'items' => [ [ 'label' => 'Item1', 'active' => true, ], [ 'label' => 'Item2', 'url' => ['site/index'], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } /** * @see https://github.com/yiisoft/yii2-bootstrap/issues/162 */ public function testExplicitActiveSubitems() { $this->mockAction('site', 'index'); Nav::$counter = 0; $out = Nav::widget([ 'activateItems' => false, 'items' => [ [ 'label' => 'Item1', ], [ 'label' => 'Item2', 'items' => [ ['label' => 'Page2', 'content' => 'Page2', 'url' => ['site/index']], ['label' => 'Page3', 'content' => 'Page3', 'active' => true], ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } /** * @see https://github.com/yiisoft/yii2-bootstrap/issues/162 */ public function testImplicitActiveSubitems() { $this->mockAction('site', 'index'); Nav::$counter = 0; $out = Nav::widget([ 'items' => [ [ 'label' => 'Item1', ], [ 'label' => 'Item2', 'items' => [ ['label' => 'Page2', 'content' => 'Page2', 'url' => ['site/index']], ['label' => 'Page3', 'content' => 'Page3', 'active' => true], ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } public function testDisabled() { $this->mockAction('site', 'index'); Nav::$counter = 0; $out = Nav::widget([ 'items' => [ [ 'label' => 'Item1', 'disabled' => true ], [ 'label' => 'Item2', 'items' => [ ['label' => 'Page2', 'content' => 'Page2', 'url' => ['site/index'], 'disabled' => true], ['label' => 'Page3', 'content' => 'Page3', 'active' => true], ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); $this->removeMockedAction(); } /** * @see https://github.com/yiisoft/yii2-bootstrap/issues/96 * @see https://github.com/yiisoft/yii2-bootstrap/issues/157 */ public function testDeepActivateParents() { Nav::$counter = 0; $out = Nav::widget([ 'activateParents' => true, 'items' => [ [ 'label' => 'Dropdown', 'items' => [ [ 'label' => 'Sub-dropdown', 'items' => [ ['label' => 'Page', 'content' => 'Page', 'active' => true], ], ], ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } }