ButtonDropdown::DIRECTION_UP, 'options' => [ 'class' => $containerClass, ], 'label' => 'Action', 'dropdown' => [ 'items' => [ [ 'label' => 'DropdownA', 'url' => '/', ], [ 'label' => 'DropdownB', 'url' => '#', ], ], ], ]); $this->assertStringContainsString("$containerClass dropup btn-group", $out); } public function testDirection(): void { ButtonDropdown::$counter = 0; $out = ButtonDropdown::widget([ 'direction' => ButtonDropdown::DIRECTION_LEFT, 'label' => 'Action', 'dropdown' => [ 'items' => [ [ 'label' => 'ItemA', 'url' => '#', ], [ 'label' => 'ItemB', 'url' => '#', ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } public function testSplit(): void { ButtonDropdown::$counter = 0; $out = ButtonDropdown::widget([ 'direction' => ButtonDropdown::DIRECTION_DOWN, 'label' => 'Split dropdown', 'split' => true, 'dropdown' => [ 'items' => [ [ 'label' => 'ItemA', 'url' => '#', ], [ 'label' => 'ItemB', 'url' => '#', ], ], ], ]); $expected = << EXPECTED; $this->assertEqualsWithoutLE($expected, $out); } /** * @see https://github.com/yiisoft/yii2-bootstrap5/pull/88 fix */ public function testGeneratedJS(): void { ButtonDropdown::$counter = 0; $out = ButtonDropdown::widget([ 'direction' => ButtonDropdown::DIRECTION_DOWN, 'label' => 'Action', 'dropdown' => [ 'items' => [ [ 'label' => 'DropdownA', 'url' => '/', ], [ 'label' => 'DropdownB', 'url' => '#', ], ], ], ]); $js = array_shift(\Yii::$app->view->js); $this->assertIsArray($js); $this->assertNotContains('(new bootstrap.Button(\'#w0-button\', {}));', $js); $this->assertContains('(new bootstrap.Dropdown(\'#w0-button\', {}));', $js); } }