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

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChristian Kamm <kamm@incasoftware.de>2014-10-23 17:15:47 +0400
committerChristian Kamm <kamm@incasoftware.de>2014-10-23 17:15:47 +0400
commite5269a4151799ac442a47e011926feb98d7e5caa (patch)
treef2533edecd413ba79487e350d11f12962a9a3741 /test
parent81584c6d5162d19c6f810e04fbaaebea6c5da08b (diff)
Add SyncJournalDB autotests.
There also was a bug in syncjournaldb: in some error conditions the sql query wasn't reset properly. We now always reset a query before calling bindValue.
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt1
-rw-r--r--test/testsyncjournaldb.h118
2 files changed, 119 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index ad2a1e217..0868c2b27 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -28,6 +28,7 @@ endif(UNIX AND NOT APPLE)
owncloud_add_test(CSyncSqlite "")
owncloud_add_test(NetrcParser ../src/owncloudcmd/netrcparser.cpp)
owncloud_add_test(OwnSql ../src/mirall/ownsql.cpp)
+owncloud_add_test(SyncJournalDB ../src/mirall/syncjournaldb.cpp)
diff --git a/test/testsyncjournaldb.h b/test/testsyncjournaldb.h
new file mode 100644
index 000000000..88497c80c
--- /dev/null
+++ b/test/testsyncjournaldb.h
@@ -0,0 +1,118 @@
+/*
+ * This software is in the public domain, furnished "as is", without technical
+ * support, and with no warranty, express or implied, as to its usefulness for
+ * any purpose.
+ * */
+
+#ifndef MIRALL_TESTSYNCJOURNALDB_H
+#define MIRALL_TESTSYNCJOURNALDB_H
+
+#include <QtTest>
+
+#include <sqlite3.h>
+
+#include "mirall/syncjournaldb.h"
+#include "mirall/syncjournalfilerecord.h"
+
+using namespace Mirall;
+
+namespace {
+
+const char testdbC[] = "/tmp";
+}
+
+class TestSyncJournalDB : public QObject
+{
+ Q_OBJECT
+
+public:
+ TestSyncJournalDB()
+ : _db(testdbC)
+ {
+ }
+
+ QDateTime dropMsecs(QDateTime time)
+ {
+ return Utility::qDateTimeFromTime_t(Utility::qDateTimeToTime_t(time));
+ }
+
+private slots:
+
+ void initTestCase()
+ {
+ }
+
+ void cleanupTestCase()
+ {
+ }
+
+ void testFileRecord()
+ {
+ SyncJournalFileRecord record = _db.getFileRecord("nonexistant");
+ QVERIFY(!record.isValid());
+
+ record._path = "foo";
+ record._inode = 1234;
+ record._modtime = dropMsecs(QDateTime::currentDateTime());
+ record._type = 5;
+ record._etag = "789789";
+ record._fileId = "abcd";
+ record._remotePerm = "744";
+ record._mode = -17;
+ QVERIFY(_db.setFileRecord(record));
+
+ SyncJournalFileRecord storedRecord = _db.getFileRecord("foo");
+ QVERIFY(storedRecord == record);
+
+ QVERIFY(_db.deleteFileRecord("foo"));
+ record = _db.getFileRecord("foo");
+ QVERIFY(!record.isValid());
+ }
+
+ void testDownloadInfo()
+ {
+ typedef SyncJournalDb::DownloadInfo Info;
+ Info record = _db.getDownloadInfo("nonexistant");
+ QVERIFY(!record._valid);
+
+ record._errorCount = 5;
+ record._etag = "ABCDEF";
+ record._valid = true;
+ record._tmpfile = "/tmp/foo";
+ _db.setDownloadInfo("foo", record);
+
+ Info storedRecord = _db.getDownloadInfo("foo");
+ QVERIFY(storedRecord == record);
+
+ _db.setDownloadInfo("foo", Info());
+ Info wipedRecord = _db.getDownloadInfo("foo");
+ QVERIFY(!wipedRecord._valid);
+ }
+
+ void testUploadInfo()
+ {
+ typedef SyncJournalDb::UploadInfo Info;
+ Info record = _db.getUploadInfo("nonexistant");
+ QVERIFY(!record._valid);
+
+ record._errorCount = 5;
+ record._chunk = 12;
+ record._transferid = 812974891;
+ record._size = 12894789147;
+ record._modtime = dropMsecs(QDateTime::currentDateTime());
+ record._valid = true;
+ _db.setUploadInfo("foo", record);
+
+ Info storedRecord = _db.getUploadInfo("foo");
+ QVERIFY(storedRecord == record);
+
+ _db.setUploadInfo("foo", Info());
+ Info wipedRecord = _db.getUploadInfo("foo");
+ QVERIFY(!wipedRecord._valid);
+ }
+
+private:
+ SyncJournalDb _db;
+};
+
+#endif