summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@owncloud.com>2013-09-12 22:36:28 +0200
committerAndreas Fischer <bantu@owncloud.com>2013-09-12 23:43:21 +0200
commitbd1163b7d571f13d7a2a90e559661b4b2e955917 (patch)
treee22c0421526290fa1b0a08e5490695b899bd5020 /tests
parent786017c2472067997239f7b225ed22fd24cab264 (diff)
downloadnextcloud-server-bd1163b7d571f13d7a2a90e559661b4b2e955917.tar.gz
nextcloud-server-bd1163b7d571f13d7a2a90e559661b4b2e955917.zip
Add database tests for INSERT/SELECT date format.
Diffstat (limited to 'tests')
-rw-r--r--tests/data/db_structure.xml21
-rw-r--r--tests/data/db_structure2.xml21
-rw-r--r--tests/lib/db.php38
3 files changed, 80 insertions, 0 deletions
diff --git a/tests/data/db_structure.xml b/tests/data/db_structure.xml
index 8f6dc5e2ecd..2e83bbb78c7 100644
--- a/tests/data/db_structure.xml
+++ b/tests/data/db_structure.xml
@@ -178,4 +178,25 @@
</declaration>
</table>
+ <table>
+ <name>*dbprefix*timestamp</name>
+ <declaration>
+ <field>
+ <name>id</name>
+ <autoincrement>1</autoincrement>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>timestamptest</name>
+ <type>timestamp</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+ </declaration>
+ </table>
+
</database>
diff --git a/tests/data/db_structure2.xml b/tests/data/db_structure2.xml
index 6f12f81f477..bbfb24985cb 100644
--- a/tests/data/db_structure2.xml
+++ b/tests/data/db_structure2.xml
@@ -75,4 +75,25 @@
</table>
+ <table>
+ <name>*dbprefix*timestamp</name>
+ <declaration>
+ <field>
+ <name>id</name>
+ <autoincrement>1</autoincrement>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>timestamptest</name>
+ <type>timestamp</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+ </declaration>
+ </table>
+
</database>
diff --git a/tests/lib/db.php b/tests/lib/db.php
index 1977025cf12..befb52ee198 100644
--- a/tests/lib/db.php
+++ b/tests/lib/db.php
@@ -145,4 +145,42 @@ 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';
+ $now = new \DateTime;
+
+ $query = OC_DB::prepare("INSERT INTO `$table` (`$column`) VALUES (?)");
+ $result = $query->execute(array($now->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();
+
+ $dateFromDb = \DateTime::createFromFormat($expectedFormat, $row[$column]);
+ $this->assertInstanceOf(
+ '\DateTime',
+ $dateFromDb,
+ "Database failed to return dates in the format '$expectedFormat'."
+ );
+
+ $this->assertEquals(
+ $now->format('c u'),
+ $dateFromDb->format('c u'),
+ 'Failed asserting that the returned date is the same as the inserted.'
+ );
+ }
}