Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-12-01 13:29:35 +0400
committerThomas Müller <thomas.mueller@tmit.eu>2013-12-01 13:29:35 +0400
commit832be7c908b99bcc5ff93305e638086cc5784dd9 (patch)
treea7c710696ed0b3dbc83b1dfbb654b82672c57616
parentc2b11cae83eb986f16253aa13f0b7cf494e1c680 (diff)
parent06df3822a0c52c44df4d5c8cc99576f5ac15864f (diff)
Merge pull request #6052 from owncloud/datetime-doctrine
Get rid of date strings for DB. Completely use Doctrine and DateTime.
-rw-r--r--lib/public/share.php8
-rw-r--r--tests/lib/db.php38
2 files changed, 5 insertions, 41 deletions
diff --git a/lib/public/share.php b/lib/public/share.php
index d33b16148db..6dbcd5b67bf 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -827,11 +827,12 @@ class Share {
$date = null;
} else {
$date = new \DateTime($date);
- $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset());
}
$query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?');
+ $query->bindValue(1, $date, 'datetime');
foreach ($items as $item) {
- $query->execute(array($date, $item['id']));
+ $query->bindValue(2, (int) $item['id']);
+ $query->execute();
}
return true;
}
@@ -847,7 +848,8 @@ class Share {
protected static function expireItem(array $item) {
if (!empty($item['expiration'])) {
$now = new \DateTime();
- $expirationDate = new \DateTime($item['expiration'], new \DateTimeZone('UTC'));
+ $expirationDate = \Doctrine\DBAL\Types\Type::getType('datetime')
+ ->convertToPhpValue($item['expiration'], \OC_DB::getConnection()->getDatabasePlatform());
if ($now > $expirationDate) {
self::unshareItem($item);
return true;
diff --git a/tests/lib/db.php b/tests/lib/db.php
index c87bee4ab99..1977025cf12 100644
--- a/tests/lib/db.php
+++ b/tests/lib/db.php
@@ -145,42 +145,4 @@ class Test_DB extends PHPUnit_Framework_TestCase {
$this->assertEquals(1, $result->numRows());
}
-
- /**
- * Tests whether the database is configured so it accepts and returns dates
- * in the expected format.
- */
- public function testTimestampDateFormat() {
- $table = '*PREFIX*'.$this->test_prefix.'timestamp';
- $column = 'timestamptest';
-
- $expectedFormat = 'Y-m-d H:i:s';
- $expected = new \DateTime;
-
- $query = OC_DB::prepare("INSERT INTO `$table` (`$column`) VALUES (?)");
- $result = $query->execute(array($expected->format($expectedFormat)));
- $this->assertEquals(
- 1,
- $result,
- "Database failed to accept dates in the format '$expectedFormat'."
- );
-
- $id = OC_DB::insertid($table);
- $query = OC_DB::prepare("SELECT * FROM `$table` WHERE `id` = ?");
- $result = $query->execute(array($id));
- $row = $result->fetchRow();
-
- $actual = \DateTime::createFromFormat($expectedFormat, $row[$column]);
- $this->assertInstanceOf(
- '\DateTime',
- $actual,
- "Database failed to return dates in the format '$expectedFormat'."
- );
-
- $this->assertEquals(
- $expected,
- $actual,
- 'Failed asserting that the returned date is the same as the inserted.'
- );
- }
}