testsyncjournaldb.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /*
  2. * This software is in the public domain, furnished "as is", without technical
  3. * support, and with no warranty, express or implied, as to its usefulness for
  4. * any purpose.
  5. * */
  6. #ifndef MIRALL_TESTSYNCJOURNALDB_H
  7. #define MIRALL_TESTSYNCJOURNALDB_H
  8. #include <QtTest>
  9. #include <sqlite3.h>
  10. #include "libsync/syncjournaldb.h"
  11. #include "libsync/syncjournalfilerecord.h"
  12. using namespace OCC;
  13. namespace {
  14. const char testdbC[] = "/tmp";
  15. }
  16. class TestSyncJournalDB : public QObject
  17. {
  18. Q_OBJECT
  19. public:
  20. TestSyncJournalDB()
  21. : _db(testdbC)
  22. {
  23. }
  24. QDateTime dropMsecs(QDateTime time)
  25. {
  26. return Utility::qDateTimeFromTime_t(Utility::qDateTimeToTime_t(time));
  27. }
  28. private slots:
  29. void initTestCase()
  30. {
  31. }
  32. void cleanupTestCase()
  33. {
  34. }
  35. void testFileRecord()
  36. {
  37. SyncJournalFileRecord record = _db.getFileRecord("nonexistant");
  38. QVERIFY(!record.isValid());
  39. record._path = "foo";
  40. record._inode = 1234;
  41. record._modtime = dropMsecs(QDateTime::currentDateTime());
  42. record._type = 5;
  43. record._etag = "789789";
  44. record._fileId = "abcd";
  45. record._remotePerm = "744";
  46. record._mode = -17;
  47. record._fileSize = 213089055;
  48. QVERIFY(_db.setFileRecord(record));
  49. SyncJournalFileRecord storedRecord = _db.getFileRecord("foo");
  50. QVERIFY(storedRecord == record);
  51. QVERIFY(_db.deleteFileRecord("foo"));
  52. record = _db.getFileRecord("foo");
  53. QVERIFY(!record.isValid());
  54. }
  55. void testDownloadInfo()
  56. {
  57. typedef SyncJournalDb::DownloadInfo Info;
  58. Info record = _db.getDownloadInfo("nonexistant");
  59. QVERIFY(!record._valid);
  60. record._errorCount = 5;
  61. record._etag = "ABCDEF";
  62. record._valid = true;
  63. record._tmpfile = "/tmp/foo";
  64. _db.setDownloadInfo("foo", record);
  65. Info storedRecord = _db.getDownloadInfo("foo");
  66. QVERIFY(storedRecord == record);
  67. _db.setDownloadInfo("foo", Info());
  68. Info wipedRecord = _db.getDownloadInfo("foo");
  69. QVERIFY(!wipedRecord._valid);
  70. }
  71. void testUploadInfo()
  72. {
  73. typedef SyncJournalDb::UploadInfo Info;
  74. Info record = _db.getUploadInfo("nonexistant");
  75. QVERIFY(!record._valid);
  76. record._errorCount = 5;
  77. record._chunk = 12;
  78. record._transferid = 812974891;
  79. record._size = 12894789147;
  80. record._modtime = dropMsecs(QDateTime::currentDateTime());
  81. record._valid = true;
  82. _db.setUploadInfo("foo", record);
  83. Info storedRecord = _db.getUploadInfo("foo");
  84. QVERIFY(storedRecord == record);
  85. _db.setUploadInfo("foo", Info());
  86. Info wipedRecord = _db.getUploadInfo("foo");
  87. QVERIFY(!wipedRecord._valid);
  88. }
  89. private:
  90. SyncJournalDb _db;
  91. };
  92. #endif