diff --git a/autotests/exiv2extractortest.h b/autotests/exiv2extractortest.h --- a/autotests/exiv2extractortest.h +++ b/autotests/exiv2extractortest.h @@ -31,6 +31,7 @@ private Q_SLOTS: void test(); + void testGPS(); }; #endif // EXIV2EXTRACTORTEST_H diff --git a/autotests/exiv2extractortest.cpp b/autotests/exiv2extractortest.cpp --- a/autotests/exiv2extractortest.cpp +++ b/autotests/exiv2extractortest.cpp @@ -28,6 +28,7 @@ #include using namespace KFileMetaData; +using namespace KFileMetaData::Property; QString Exiv2ExtractorTest::testFilePath(const QString& fileName) const { @@ -44,15 +45,37 @@ QCOMPARE(result.types().size(), 1); QCOMPARE(result.types().constFirst(), Type::Image); - using namespace KFileMetaData::Property; - - QCOMPARE(result.properties().value(PhotoGpsLatitude).toDouble(), 41.411); - QCOMPARE(result.properties().value(PhotoGpsLongitude).toDouble(), 2.173); - QVERIFY(qAbs(result.properties().value(PhotoGpsAltitude).toDouble() - 12.2) < 0.0001); QCOMPARE(result.properties().value(Artist).toString(), QStringLiteral("Artist")); QCOMPARE(result.properties().value(Description).toString(), QStringLiteral("Description")); QCOMPARE(result.properties().value(Copyright).toString(), QStringLiteral("Copyright")); QCOMPARE(result.properties().value(Generator).toString(), QStringLiteral("digiKam-5.9.0")); } +void Exiv2ExtractorTest::testGPS() +{ + Exiv2Extractor plugin{this}; + + SimpleExtractionResult result(testFilePath("test.jpg"), "image/jpeg"); + plugin.extract(&result); + + QCOMPARE(result.properties().value(PhotoGpsLatitude).toDouble(), 41.411); + QCOMPARE(result.properties().value(PhotoGpsLongitude).toDouble(), 2.173); + QCOMPARE(result.properties().value(PhotoGpsAltitude).toDouble(), 12.2); + + SimpleExtractionResult resultEmpty(testFilePath("test_no_gps.jpg"), "image/jpeg"); + plugin.extract(&resultEmpty); + QVERIFY(!resultEmpty.properties().contains(PhotoGpsLatitude)); + QVERIFY(!resultEmpty.properties().contains(PhotoGpsLongitude)); + QVERIFY(!resultEmpty.properties().contains(PhotoGpsAltitude)); + + SimpleExtractionResult resultZero(testFilePath("test_zero_gps.jpg"), "image/jpeg"); + plugin.extract(&resultZero); + QVERIFY(resultZero.properties().contains(PhotoGpsLatitude)); + QVERIFY(resultZero.properties().contains(PhotoGpsLongitude)); + QVERIFY(resultZero.properties().contains(PhotoGpsAltitude)); + QCOMPARE(resultZero.properties().value(PhotoGpsLatitude).toDouble(), 0.0); + QCOMPARE(resultZero.properties().value(PhotoGpsLongitude).toDouble(), 0.0); + QCOMPARE(resultZero.properties().value(PhotoGpsAltitude).toDouble(), 0.0); +} + QTEST_GUILESS_MAIN(Exiv2ExtractorTest) diff --git a/autotests/samplefiles/test_no_gps.jpg b/autotests/samplefiles/test_no_gps.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@