set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-permissive -pedantic -Wall -Wextra")

include_directories(
    ${CMAKE_SOURCE_DIR}/modules/Lomiri/Components/Extras/Printers
)

find_package(Qt5Gui REQUIRED)
find_package(Qt5Test REQUIRED)

set(MOCK_SOURCES
    mockbackend.h
)

add_executable(testPrintersPrinter tst_printer.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersPrinter LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printer testPrintersPrinter)

add_executable(testPrintersPrinterJob tst_printerjob.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersPrinterJob LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printerjob testPrintersPrinterJob)

add_executable(testPrintersPrinters tst_printers.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersPrinters LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printers testPrintersPrinters)
set_tests_properties(tst_printers PROPERTIES
    ENVIRONMENT "XDG_DATA_DIRS=${CMAKE_CURRENT_SOURCE_DIR}/testdata")

add_executable(testPrintersPrinterModel tst_printermodel.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersPrinterModel LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printermodel testPrintersPrinterModel)

add_executable(testPrintersPrinterFilter tst_printerfilter.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersPrinterFilter LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printerfilter testPrintersPrinterFilter)

add_executable(testPrintersDriverModel tst_drivermodel.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersDriverModel LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_drivermodel testPrintersDriverModel)

add_executable(testPrintersJobModel tst_jobmodel.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersJobModel LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_jobmodel testPrintersJobModel)

add_executable(testPrintersJobFilter tst_jobfilter.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersJobFilter LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_jobfilter testPrintersJobFilter)

add_executable(testPrintersSignalRateLimiter tst_signalratelimiter.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersSignalRateLimiter LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_signalratelimiter testPrintersSignalRateLimiter)

add_executable(testPrintersDevice tst_printerdevice.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersDevice LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printerdevice testPrintersDevice)

add_executable(testPrintersDeviceModel tst_printerdevicemodel.cpp ${MOCK_SOURCES})
target_link_libraries(testPrintersDeviceModel LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
add_test(tst_printerdevicemodel testPrintersDeviceModel)
