diff --git a/tests/unit/framework/caching/CacheTest.php b/tests/unit/framework/caching/CacheTest.php index c524956..4b34de0 100644 --- a/tests/unit/framework/caching/CacheTest.php +++ b/tests/unit/framework/caching/CacheTest.php @@ -1,5 +1,17 @@ mockApplication(); } + protected function tearDown() + { + static::$time = null; + } + /** * @return Cache */ diff --git a/tests/unit/framework/caching/DbCacheTest.php b/tests/unit/framework/caching/DbCacheTest.php index 36174b9..f5bbba5 100644 --- a/tests/unit/framework/caching/DbCacheTest.php +++ b/tests/unit/framework/caching/DbCacheTest.php @@ -1,5 +1,7 @@ _cacheInstance; } + + public function testExpire() + { + $cache = $this->getCacheInstance(); + + static::$time = \time(); + $this->assertTrue($cache->set('expire_test', 'expire_test', 2)); + static::$time++; + $this->assertEquals('expire_test', $cache->get('expire_test')); + static::$time++; + $this->assertFalse($cache->get('expire_test')); + } } diff --git a/tests/unit/framework/caching/FileCacheTest.php b/tests/unit/framework/caching/FileCacheTest.php index 99e3cbc..b3ac8b7 100644 --- a/tests/unit/framework/caching/FileCacheTest.php +++ b/tests/unit/framework/caching/FileCacheTest.php @@ -22,4 +22,16 @@ class FileCacheTest extends CacheTest } return $this->_cacheInstance; } + + public function testExpire() + { + $cache = $this->getCacheInstance(); + + static::$time = \time(); + $this->assertTrue($cache->set('expire_test', 'expire_test', 2)); + static::$time++; + $this->assertEquals('expire_test', $cache->get('expire_test')); + static::$time++; + $this->assertFalse($cache->get('expire_test')); + } } diff --git a/yii/base/View.php b/yii/base/View.php index f1a9a0f..84a6f11 100644 --- a/yii/base/View.php +++ b/yii/base/View.php @@ -771,7 +771,7 @@ class View extends Component if (!empty($this->js[self::POS_HEAD])) { $lines[] = implode("\n", $this->js[self::POS_HEAD]); } - return implode("\n", $lines); + return empty($lines) ? '' : implode("\n", $lines) . "\n"; } /** @@ -788,7 +788,7 @@ class View extends Component if (!empty($this->js[self::POS_BEGIN])) { $lines[] = implode("\n", $this->js[self::POS_BEGIN]); } - return implode("\n", $lines); + return empty($lines) ? '' : implode("\n", $lines) . "\n"; } /** @@ -805,6 +805,6 @@ class View extends Component if (!empty($this->js[self::POS_END])) { $lines[] = implode("\n", $this->js[self::POS_END]); } - return implode("\n", $lines); + return empty($lines) ? '' : implode("\n", $lines) . "\n"; } } diff --git a/yii/rbac/DbManager.php b/yii/rbac/DbManager.php index f3658b2..28b14d9 100644 --- a/yii/rbac/DbManager.php +++ b/yii/rbac/DbManager.php @@ -146,10 +146,7 @@ class DbManager extends Manager } $query = new Query; $rows = $query->from($this->itemTable) - ->where(array('or', 'name=:name1', 'name=:name2'), array( - ':name1' => $itemName, - ':name2' => $childName - )) + ->where(array('or', 'name=:name1', 'name=:name2'), array(':name1' => $itemName, ':name2' => $childName)) ->createCommand($this->db) ->queryAll(); if (count($rows) == 2) { @@ -165,10 +162,7 @@ class DbManager extends Manager throw new InvalidCallException("Cannot add '$childName' as a child of '$itemName'. A loop has been detected."); } $this->db->createCommand() - ->insert($this->itemChildTable, array( - 'parent' => $itemName, - 'child' => $childName, - )); + ->insert($this->itemChildTable, array('parent' => $itemName, 'child' => $childName)); return true; } else { throw new Exception("Either '$itemName' or '$childName' does not exist."); @@ -185,10 +179,7 @@ class DbManager extends Manager public function removeItemChild($itemName, $childName) { return $this->db->createCommand() - ->delete($this->itemChildTable, array( - 'parent' => $itemName, - 'child' => $childName - )) > 0; + ->delete($this->itemChildTable, array('parent' => $itemName, 'child' => $childName)) > 0; } /** @@ -202,10 +193,7 @@ class DbManager extends Manager $query = new Query; return $query->select(array('parent')) ->from($this->itemChildTable) - ->where(array( - 'parent' => $itemName, - 'child' => $childName - )) + ->where(array('parent' => $itemName, 'child' => $childName)) ->createCommand($this->db) ->queryScalar() !== false; } @@ -220,10 +208,7 @@ class DbManager extends Manager { $query = new Query; $rows = $query->select(array('name', 'type', 'description', 'bizrule', 'data')) - ->from(array( - $this->itemTable, - $this->itemChildTable - )) + ->from(array($this->itemTable, $this->itemChildTable)) ->where(array('parent' => $names, 'name' => new Expression('child'))) ->createCommand($this->db) ->queryAll(); @@ -257,7 +242,7 @@ class DbManager extends Manager 'user_id' => $userId, 'item_name' => $itemName, 'bizrule' => $bizRule, - 'data' => serialize($data) + 'data' => serialize($data), )); return new Assignment($this, $userId, $itemName, $bizRule, $data); } @@ -271,10 +256,7 @@ class DbManager extends Manager public function revoke($userId, $itemName) { return $this->db->createCommand() - ->delete($this->assignmentTable, array( - 'user_id' => $userId, - 'item_name' => $itemName - )) > 0; + ->delete($this->assignmentTable, array('user_id' => $userId, 'item_name' => $itemName)) > 0; } /** @@ -288,10 +270,7 @@ class DbManager extends Manager $query = new Query; return $query->select(array('item_name')) ->from($this->assignmentTable) - ->where(array( - 'user_id' => $userId, - 'item_name' => $itemName - )) + ->where(array('user_id' => $userId, 'item_name' => $itemName)) ->createCommand($this->db) ->queryScalar() !== false; } @@ -307,10 +286,7 @@ class DbManager extends Manager { $query = new Query; $row = $query->from($this->assignmentTable) - ->where(array( - 'user_id' => $userId, - 'item_name' => $itemName - )) + ->where(array('user_id' => $userId, 'item_name' => $itemName)) ->createCommand($this->db) ->queryRow(); if ($row !== false) { @@ -358,7 +334,7 @@ class DbManager extends Manager 'data' => serialize($assignment->getData()), ), array( 'user_id' => $assignment->getUserId(), - 'item_name' => $assignment->getItemName() + 'item_name' => $assignment->getItemName(), )); } @@ -382,23 +358,13 @@ class DbManager extends Manager ->createCommand($this->db); } elseif ($type === null) { $command = $query->select(array('name', 'type', 'description', 't1.bizrule', 't1.data')) - ->from(array( - $this->itemTable . ' t1', - $this->assignmentTable . ' t2' - )) + ->from(array($this->itemTable . ' t1', $this->assignmentTable . ' t2')) ->where(array('user_id' => $userId, 'name' => new Expression('item_name'))) ->createCommand($this->db); } else { $command = $query->select('name', 'type', 'description', 't1.bizrule', 't1.data') - ->from(array( - $this->itemTable . ' t1', - $this->assignmentTable . ' t2' - )) - ->where(array( - 'user_id' => $userId, - 'type' => $type, - 'name' => new Expression('item_name'), - )) + ->from(array($this->itemTable . ' t1', $this->assignmentTable . ' t2')) + ->where(array('user_id' => $userId, 'type' => $type, 'name' => new Expression('item_name'))) ->createCommand($this->db); } $items = array(); @@ -434,7 +400,7 @@ class DbManager extends Manager 'type' => $type, 'description' => $description, 'bizrule' => $bizRule, - 'data' => serialize($data) + 'data' => serialize($data), )); return new Item($this, $name, $type, $description, $bizRule, $data); } @@ -448,13 +414,12 @@ class DbManager extends Manager { if ($this->usingSqlite()) { $this->db->createCommand() - ->delete($this->itemChildTable, array('or', 'parent=:name1', 'child=:name2'), array( - ':name1' => $name, - ':name2' => $name - )); - $this->db->createCommand()->delete($this->assignmentTable, array('item_name' => $name)); + ->delete($this->itemChildTable, array('or', 'parent=:name', 'child=:name'), array(':name' => $name)); + $this->db->createCommand() + ->delete($this->assignmentTable, array('item_name' => $name)); } - return $this->db->createCommand()->delete($this->itemTable, array('name' => $name)) > 0; + return $this->db->createCommand() + ->delete($this->itemTable, array('name' => $name)) > 0; } /** @@ -488,23 +453,11 @@ class DbManager extends Manager { if ($this->usingSqlite() && $oldName !== null && $item->getName() !== $oldName) { $this->db->createCommand() - ->update($this->itemChildTable, array( - 'parent' => $item->getName(), - ), array( - 'parent' => $oldName, - )); + ->update($this->itemChildTable, array('parent' => $item->getName()), array('parent' => $oldName)); $this->db->createCommand() - ->update($this->itemChildTable, array( - 'child' => $item->getName(), - ), array( - 'child' => $oldName, - )); + ->update($this->itemChildTable, array('child' => $item->getName()), array('child' => $oldName)); $this->db->createCommand() - ->update($this->assignmentTable, array( - 'item_name' => $item->getName(), - ), array( - 'item_name' => $oldName, - )); + ->update($this->assignmentTable, array('item_name' => $item->getName()), array('item_name' => $oldName)); } $this->db->createCommand()