diff --git a/CMakeLists.txt b/CMakeLists.txt index b544184..ba8f1c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,7 @@ qt_add_resources(SagoImageBrowser "icons" PREFIX "/icons" FILES extra/icons/sago target_include_directories(SagoImageBrowser PRIVATE ${EXIV2_INCLUDE_DIRS}) target_link_libraries(SagoImageBrowser PRIVATE Qt6::Widgets ${EXIV2_LIBRARIES}) -add_executable(test_exifreader test_exifreader.cpp src/exifreader.cpp) +add_executable(test_exifreader test/test_exifreader.cpp src/exifreader.cpp) target_include_directories(test_exifreader PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${EXIV2_INCLUDE_DIRS}) target_link_libraries(test_exifreader PRIVATE Qt6::Widgets ${EXIV2_LIBRARIES}) diff --git a/test/test_exifreader.cpp b/test/test_exifreader.cpp new file mode 100644 index 0000000..a135a68 --- /dev/null +++ b/test/test_exifreader.cpp @@ -0,0 +1,35 @@ +#include +#include +#include +#include "exifreader.h" + +int main(int argc, char *argv[]) { + QCoreApplication app(argc, argv); + + qDebug() << "Running ExifReader test..."; + + // Test ExifData::isEmpty() + ExifData data; + assert(data.isEmpty()); + qDebug() << "ExifData::isEmpty() passed for empty data."; + + data.filename = "test.jpg"; + assert(!data.isEmpty()); + qDebug() << "ExifData::isEmpty() passed for non-empty data."; + + // Test ExifData::toList() + data.fileSize = "1.2 MiB"; + auto list = data.toList(); + bool foundFilename = false; + bool foundSize = false; + for (const auto &pair : list) { + if (pair.first == "Filename" && pair.second == "test.jpg") foundFilename = true; + if (pair.first == "File Size" && pair.second == "1.2 MiB") foundSize = true; + } + assert(foundFilename); + assert(foundSize); + qDebug() << "ExifData::toList() passed."; + + qDebug() << "All ExifReader tests passed!"; + return 0; +}