testcsyncsqlite.cpp 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. #include "csync_statedb.h"
  7. #include "csync_private.h"
  8. #include <QtTest>
  9. class TestCSyncSqlite : public QObject
  10. {
  11. Q_OBJECT
  12. private:
  13. CSYNC _ctx;
  14. private slots:
  15. void initTestCase() {
  16. int rc;
  17. memset(&_ctx, 0, sizeof(CSYNC));
  18. _ctx.statedb.file = c_strdup("./test_journal.db");
  19. rc = csync_statedb_load((CSYNC*)(&_ctx), _ctx.statedb.file, &(_ctx.statedb.db));
  20. Q_ASSERT(rc == 0);
  21. }
  22. void testFullResult() {
  23. csync_file_stat_t *st = csync_statedb_get_stat_by_hash((CSYNC*)(&_ctx), 2081025720555645157 );
  24. QVERIFY(st);
  25. QCOMPARE( QString::number(st->phash), QString::number(2081025720555645157) );
  26. QCOMPARE( QString::number(st->pathlen), QString::number(13));
  27. QCOMPARE( QString::fromUtf8(st->path), QLatin1String("test2/zu/zuzu") );
  28. QCOMPARE( QString::number(st->inode), QString::number(1709554));
  29. QCOMPARE( QString::number(st->mode), QString::number(0));
  30. QCOMPARE( QString::number(st->modtime), QString::number(1384415006));
  31. QCOMPARE( QString::number(st->type), QString::number(2));
  32. QCOMPARE( QString::fromUtf8(st->etag), QLatin1String("52847f2090665"));
  33. QCOMPARE( QString::fromUtf8(st->file_id), QLatin1String("00000557525d5af3d9625"));
  34. }
  35. void testByHash() {
  36. csync_file_stat_t *st = csync_statedb_get_stat_by_hash((CSYNC*)(&_ctx), -7147279406142960289);
  37. QVERIFY(st);
  38. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("documents/c1"));
  39. csync_file_stat_free(st);
  40. st = csync_statedb_get_stat_by_hash((CSYNC*)(&_ctx), 5426481156826978940);
  41. QVERIFY(st);
  42. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("documents/c1/c2"));
  43. csync_file_stat_free(st);
  44. }
  45. void testByInode() {
  46. csync_file_stat_t *st = csync_statedb_get_stat_by_inode((CSYNC*)(&_ctx), 1709555);
  47. QVERIFY(st);
  48. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("test2/zu/zuzu/zuzuzu"));
  49. csync_file_stat_free(st);
  50. st = csync_statedb_get_stat_by_inode((CSYNC*)(&_ctx), 1706571);
  51. QVERIFY(st);
  52. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("Shared/for_kf/a2"));
  53. csync_file_stat_free(st);
  54. }
  55. void testByFileId() {
  56. csync_file_stat_t *st = csync_statedb_get_stat_by_file_id((CSYNC*)(&_ctx), "00000556525d5af3d9625");
  57. QVERIFY(st);
  58. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("test2/zu"));
  59. csync_file_stat_free(st);
  60. st = csync_statedb_get_stat_by_file_id((CSYNC*)(&_ctx), "-0000001525d5af3d9625");
  61. QVERIFY(st);
  62. QCOMPARE(QString::fromUtf8(st->path), QLatin1String("Shared"));
  63. csync_file_stat_free(st);
  64. }
  65. void cleanupTestCase() {
  66. SAFE_FREE(_ctx.statedb.file);
  67. csync_statedb_close((CSYNC*)(&_ctx));
  68. }
  69. };
  70. QTEST_APPLESS_MAIN(TestCSyncSqlite)
  71. #include "testcsyncsqlite.moc"