getConnection();
        $this->mockWebApplication();
    }
    public function testLabelsSimple()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Order::find(),
            'models' => [new Order()],
            'totalCount' => 1,
            'sort' => [
                'route' => 'site/index',
            ],
        ]);
        ob_start();
        echo ListView::widget([
            'dataProvider' => $dataProvider,
            'layout' => '{sorter}',
        ]);
        $actualHtml = ob_get_clean();
        $this->assertNotFalse(strpos($actualHtml,
            'Customer'));
        $this->assertNotFalse(strpos($actualHtml,
            'Invoice Total'));
    }
    public function testLabelsExplicit()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Order::find(),
            'models' => [new Order()],
            'totalCount' => 1,
            'sort' => [
                'attributes' => ['total'],
                'route' => 'site/index',
            ],
        ]);
        ob_start();
        echo ListView::widget([
            'dataProvider' => $dataProvider,
            'layout' => '{sorter}',
        ]);
        $actualHtml = ob_get_clean();
        $this->assertFalse(strpos($actualHtml,
            'Customer'));
        $this->assertNotFalse(strpos($actualHtml,
            'Invoice Total'));
    }
    /**
     * @see https://github.com/yiisoft/yii2/issues/15536
     */
    public function testShouldTriggerInitEvent()
    {
        $initTriggered = false;
        new LinkSorter(
            [
                'sort' => [
                    'attributes' => ['total'],
                    'route' => 'site/index',
                ],
                'on init' => function () use (&$initTriggered) {
                    $initTriggered = true;
                }
            ]
        );
        $this->assertTrue($initTriggered);
    }
}