Browse Source

Fix #18472: Fix initializing db component configuration

tags/2.0.41
Bizley 4 years ago committed by GitHub
parent
commit
f544883148
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      framework/data/ActiveDataProvider.php
  2. 10
      tests/framework/data/ActiveDataProviderCloningTest.php
  3. 8
      tests/framework/data/ActiveDataProviderTest.php
  4. 2
      tests/framework/widgets/LinkSorterTest.php

4
framework/data/ActiveDataProvider.php

@ -88,9 +88,7 @@ class ActiveDataProvider extends BaseDataProvider
public function init()
{
parent::init();
if ($this->db !== null) {
$this->db = Instance::ensure($this->db, Connection::className());
}
$this->db = Instance::ensure($this->db === null ? 'db' : $this->db, Connection::className());
}
/**

10
tests/framework/data/ActiveDataProviderCloningTest.php

@ -8,6 +8,7 @@
namespace yiiunit\framework\data;
use yii\data\ActiveDataProvider;
use yii\db\Connection;
use yii\db\Query;
use yiiunit\TestCase;
@ -19,15 +20,16 @@ class ActiveDataProviderCloningTest extends TestCase
public function testClone()
{
$queryFirst = new Query();
$dataProviderFirst = new ActiveDataProvider([
'db' => new Connection(),
'query' => $queryFirst
]);
$dataProviderSecond = clone $dataProviderFirst;
$querySecond = $dataProviderSecond->query;
$this->assertNotSame($querySecond, $queryFirst);
}
}

8
tests/framework/data/ActiveDataProviderTest.php

@ -35,6 +35,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
public function testActiveQuery()
{
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find()->orderBy('id'),
]);
$orders = $provider->getModels();
@ -45,6 +46,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([1, 2, 3], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'pagination' => [
'pageSize' => 2,
@ -59,6 +61,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $customer Customer */
$customer = Customer::findOne(2);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $customer->getOrders(),
]);
$orders = $provider->getModels();
@ -68,6 +71,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([2, 3], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $customer->getOrders(),
'pagination' => [
'pageSize' => 1,
@ -82,6 +86,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $order Order */
$order = Order::findOne(2);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getItems(),
]);
$items = $provider->getModels();
@ -92,6 +97,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertEquals([3, 4, 5], $provider->getKeys());
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getItems(),
'pagination' => [
'pageSize' => 2,
@ -106,6 +112,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
/* @var $order Order */
$order = Order::findOne(1);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getBooks(),
]);
$items = $provider->getModels();
@ -114,6 +121,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
$this->assertInstanceOf(Item::className(), $items[1]);
$provider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => $order->getBooks(),
'pagination' => [
'pageSize' => 1,

2
tests/framework/widgets/LinkSorterTest.php

@ -34,6 +34,7 @@ class LinkSorterTest extends DatabaseTestCase
public function testLabelsSimple()
{
$dataProvider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'models' => [new Order()],
'totalCount' => 1,
@ -58,6 +59,7 @@ class LinkSorterTest extends DatabaseTestCase
public function testLabelsExplicit()
{
$dataProvider = new ActiveDataProvider([
'db' => $this->getConnection(),
'query' => Order::find(),
'models' => [new Order()],
'totalCount' => 1,

Loading…
Cancel
Save