set(CMAKE_AUTOMOC on)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Test DBus Widgets REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test DBus Widgets)

add_executable(recentFilesServiceTest
        recent-files-service-test.cpp)

target_include_directories(recentFilesServiceTest PRIVATE
        ..
        ${CMAKE_SOURCE_DIR}/framework/config
        /usr/include/ukui-file-metadata
)

target_link_libraries(recentFilesServiceTest PRIVATE
        ukui-task-manager
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::DBus
        Qt${QT_VERSION_MAJOR}::Widgets
        Qt${QT_VERSION_MAJOR}::Test
        ukui-file-metadata
)

add_test(NAME recentFilesServiceTest COMMAND $<TARGET_FILE:recentFilesServiceTest>)
set_tests_properties(recentFilesServiceTest PROPERTIES
        ENVIRONMENT "QT_QPA_PLATFORM=offscreen")

add_executable(taskManagerFilterModelTest
        task-manager-filter-model-test.cpp)

target_include_directories(taskManagerFilterModelTest PRIVATE
        ..
)

target_link_libraries(taskManagerFilterModelTest PRIVATE
        ukui-task-manager
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Gui
        Qt${QT_VERSION_MAJOR}::Widgets
        Qt${QT_VERSION_MAJOR}::Quick
        Qt${QT_VERSION_MAJOR}::Qml
        Qt${QT_VERSION_MAJOR}::Test
        ukui-quick::framework
)

add_test(NAME taskManagerFilterModelTest COMMAND $<TARGET_FILE:taskManagerFilterModelTest>)
set_tests_properties(taskManagerFilterModelTest PROPERTIES
        ENVIRONMENT "QT_QPA_PLATFORM=offscreen")

add_executable(taskManagerDragModelTest
        task-manager-drag-model-test.cpp
        ../task-manager-drag-model.cpp)

target_include_directories(taskManagerDragModelTest PRIVATE
        ..
)

target_link_libraries(taskManagerDragModelTest PRIVATE
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::CorePrivate
        Qt${QT_VERSION_MAJOR}::Test
        Qt${QT_VERSION_MAJOR}::Quick
        Qt${QT_VERSION_MAJOR}::Qml
        Qt${QT_VERSION_MAJOR}::QmlPrivate
        Qt${QT_VERSION_MAJOR}::QmlModels
        Qt${QT_VERSION_MAJOR}::QmlModelsPrivate
)

add_test(taskManagerDragModelTest ${CMAKE_CURRENT_BINARY_DIR}/taskManagerDragModelTest)
set_tests_properties(taskManagerDragModelTest PROPERTIES
        ENVIRONMENT "QT_QPA_PLATFORM=offscreen;QT_QUICK_BACKEND=software")

add_executable(taskManagerFocusStateTest
        taskManagerFocusStateTest.cpp)
target_link_libraries(taskManagerFocusStateTest
        PRIVATE
        Qt${QT_VERSION_MAJOR}::Core
        Qt${QT_VERSION_MAJOR}::Test)
add_test(NAME taskManagerFocusStateTest COMMAND ${CMAKE_CURRENT_BINARY_DIR}/taskManagerFocusStateTest)
