From c62e0cbbfb165e015b679d1d90ea10a921cb2071 Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Mon, 28 Oct 2013 10:48:18 +0100 Subject: [PATCH 1/2] added unit test to verify AR afterSave isNewRecord value closes #1084 --- tests/unit/data/ar/Customer.php | 10 ++++++++++ tests/unit/framework/db/ActiveRecordTest.php | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/tests/unit/data/ar/Customer.php b/tests/unit/data/ar/Customer.php index 60a68b5..0d2add1 100644 --- a/tests/unit/data/ar/Customer.php +++ b/tests/unit/data/ar/Customer.php @@ -17,6 +17,9 @@ class Customer extends ActiveRecord public $status2; + public static $afterSaveInsert = null; + public static $afterSaveNewRecord = null; + public static function tableName() { return 'tbl_customer'; @@ -31,4 +34,11 @@ class Customer extends ActiveRecord { $query->andWhere('status=1'); } + + public function afterSave($insert) + { + static::$afterSaveInsert = $insert; + static::$afterSaveNewRecord = $this->isNewRecord; + parent::afterSave($insert); + } } diff --git a/tests/unit/framework/db/ActiveRecordTest.php b/tests/unit/framework/db/ActiveRecordTest.php index eb9d425..d8d8f8f 100644 --- a/tests/unit/framework/db/ActiveRecordTest.php +++ b/tests/unit/framework/db/ActiveRecordTest.php @@ -295,10 +295,14 @@ class ActiveRecordTest extends DatabaseTestCase $this->assertNull($customer->id); $this->assertTrue($customer->isNewRecord); + Customer::$afterSaveNewRecord = null; + Customer::$afterSaveInsert = null; $customer->save(); $this->assertEquals(4, $customer->id); + $this->assertFalse(Customer::$afterSaveNewRecord); + $this->assertTrue(Customer::$afterSaveInsert); $this->assertFalse($customer->isNewRecord); } @@ -309,10 +313,15 @@ class ActiveRecordTest extends DatabaseTestCase $this->assertTrue($customer instanceof Customer); $this->assertEquals('user2', $customer->name); $this->assertFalse($customer->isNewRecord); + Customer::$afterSaveNewRecord = null; + Customer::$afterSaveInsert = null; + $customer->name = 'user2x'; $customer->save(); $this->assertEquals('user2x', $customer->name); $this->assertFalse($customer->isNewRecord); + $this->assertFalse(Customer::$afterSaveNewRecord); + $this->assertFalse(Customer::$afterSaveInsert); $customer2 = Customer::find(2); $this->assertEquals('user2x', $customer2->name); From 3b05e71561afcea47884eeedf843cb9eea0c003f Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Mon, 28 Oct 2013 11:01:38 +0100 Subject: [PATCH 2/2] ensure parameter types in baselistview message fixes #1072 --- framework/yii/data/ActiveDataProvider.php | 2 +- framework/yii/widgets/BaseListView.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/yii/data/ActiveDataProvider.php b/framework/yii/data/ActiveDataProvider.php index e95e4b8..012b7dd 100644 --- a/framework/yii/data/ActiveDataProvider.php +++ b/framework/yii/data/ActiveDataProvider.php @@ -158,7 +158,7 @@ class ActiveDataProvider extends BaseDataProvider throw new InvalidConfigException('The "query" property must be an instance of Query or its subclass.'); } $query = clone $this->query; - return $query->limit(-1)->offset(-1)->count('*', $this->db); + return (int) $query->limit(-1)->offset(-1)->count('*', $this->db); } /** diff --git a/framework/yii/widgets/BaseListView.php b/framework/yii/widgets/BaseListView.php index 27b2eaf..ffbba38 100644 --- a/framework/yii/widgets/BaseListView.php +++ b/framework/yii/widgets/BaseListView.php @@ -139,7 +139,7 @@ abstract class BaseListView extends Widget $pageCount = $pagination->pageCount; if (($summaryContent = $this->summary) === null) { $summaryContent = '
' - . Yii::t('yii', 'Showing {totalCount, plural, =0{0} other{{begin}-{end}}} of {totalCount} {totalCount, plural, one{item} other{items}}.') + . Yii::t('yii', 'Showing {totalCount, plural, =0{0} other{{begin, number, integer}-{end, number, integer}}} of {totalCount, number, integer} {totalCount, plural, one{item} other{items}}.') . '
'; } } else {