File indexing completed on 2024-05-12 15:55:37

0001 // SPDX-FileCopyrightText: 2021 Johannes Zarl-Zierl <johannes@zarl-zierl.at>
0002 //
0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL
0004 
0005 #include "TestExifDatabase.h"
0006 
0007 #include "Database.h"
0008 
0009 #include <kpabase/SettingsData.h>
0010 #include <kpabase/UIDelegate.h>
0011 
0012 #include <QLoggingCategory>
0013 #include <QRegularExpression>
0014 #include <QSignalSpy>
0015 
0016 namespace
0017 {
0018 constexpr auto msgPreconditionFailed = "Precondition for test failed - please fix unit test!";
0019 }
0020 
0021 void KPATest::TestExifDatabase::initTestCase()
0022 {
0023     // ThumbnailCache uses QHash, which is randomized by default
0024     qSetGlobalQHashSeed(0);
0025 
0026     QVERIFY2(Exif::Database::isAvailable(), msgPreconditionFailed);
0027 }
0028 
0029 void KPATest::TestExifDatabase::trivialTests()
0030 {
0031     QTemporaryDir tmpDir;
0032     QVERIFY2(tmpDir.isValid(), msgPreconditionFailed);
0033 
0034     DB::DummyUIDelegate uiDelegate;
0035     Settings::SettingsData::setup(tmpDir.path(), uiDelegate);
0036 
0037     // create a new, empty db:
0038     Exif::Database db(tmpDir.filePath(QStringLiteral("exif-db.sqlite")), uiDelegate);
0039 
0040     // this should be usable
0041     QVERIFY(db.isUsable());
0042     // its version should not surprise us
0043     QCOMPARE(db.DBFileVersion(), Exif::Database::DBVersion());
0044     QCOMPARE(db.DBFileVersionGuaranteed(), Exif::Database::DBVersion());
0045 
0046     QCOMPARE(db.size(), 0);
0047     QVERIFY(db.cameras().isEmpty());
0048     QVERIFY(db.lenses().isEmpty());
0049 
0050     DB::DummyProgressIndicator progress;
0051     db.recreate(DB::FileNameList(), progress);
0052 
0053     QVERIFY(db.isUsable());
0054     QCOMPARE(db.size(), 0);
0055     QCOMPARE(progress.value(), 0);
0056     QCOMPARE(progress.minimum(), 0);
0057     QCOMPARE(progress.maximum(), 0);
0058 }
0059 
0060 QTEST_MAIN(KPATest::TestExifDatabase)
0061 
0062 // vi:expandtab:tabstop=4 shiftwidth=4:
0063 
0064 #include "moc_TestExifDatabase.cpp"