pkg_check_modules(SIGNONQT libsignon-qt${QT_VERSION} REQUIRED)
pkg_check_modules(SIGNONPLUGINSCOMMON signon-plugins-common REQUIRED)

include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/..
    ${CMAKE_SOURCE_DIR}
    ${LomiriOnlineAccountsUi_SOURCE_DIR}
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/../common
    ${LomiriOnlineAccountsPlugin_SOURCE_DIR}/..
    ${SIGNONQT_INCLUDE_DIRS}
    ${SIGNONPLUGINSCOMMON_INCLUDE_DIRS}
)

# tst_service

set(TEST tst_browser_request)
set(SOURCES
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/browser-request.cpp
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/browser-request.h
    ${CMAKE_SOURCE_DIR}/online-accounts-common/debug.cpp
    ${CMAKE_SOURCE_DIR}/online-accounts-common/debug.h
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/dialog.cpp
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/dialog.h
    ${CMAKE_SOURCE_DIR}/online-accounts-common/i18n.cpp
    ${CMAKE_SOURCE_DIR}/online-accounts-common/i18n.h
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/request.h
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/signonui-request.h
    ${LomiriOnlineAccountsUi_SOURCE_DIR}/ui-server.h
    ../mock/request-mock.cpp
    ../mock/request-mock.h
    ../mock/signonui-request-mock.cpp
    ../mock/signonui-request-mock.h
    ../mock/ui-server-mock.cpp
    ../mock/ui-server-mock.h
    tst_browser_request.cpp
)

add_definitions(-DNO_REQUEST_FACTORY)
add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="/tmp")
add_definitions(-DSIGNONUI_FAIL_TIMEOUT=100)
add_definitions(-DSIGNONUI_I18N_DOMAIN="${SIGNONUI_I18N_DOMAIN}")
add_definitions(-DTEST_DATA_DIR="${CMAKE_CURRENT_BINARY_DIR}/data")

add_executable(${TEST} ${SOURCES})
target_link_libraries(${TEST}
    Qt${QT_VERSION}::Core
    Qt${QT_VERSION}::DBus
    Qt${QT_VERSION}::Gui
    Qt${QT_VERSION}::Network
    Qt${QT_VERSION}::Quick
    Qt${QT_VERSION}::Test
    lomiri-online-accounts-plugin
    ${SIGNONQT_LIBRARIES}
    ${SIGNONPLUGINSCOMMON_LIBRARIES}
)
add_test(${TEST} ${XVFB_COMMAND} dbus-test-runner -t ${CMAKE_CURRENT_BINARY_DIR}/${TEST})
