set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
-include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BUILD_DIR}/.. ${KDE4_INCLUDES} )
-# needed on windows to correctly use the files from dolphinprivate
-add_definitions(-DLIBDOLPHINPRIVATE_EXPORT=)
+find_package(Qt${QT_MAJOR_VERSION}Test CONFIG REQUIRED)
+include(ECMAddTests)
+
+include(FindGem) # For servicemenutest, see bottom of this file
# KItemSetTest
-set(kitemsettest_SRCS
- kitemsettest.cpp
- ../kitemviews/kitemset.cpp
-)
-kde4_add_unit_test(kitemsettest TEST ${kitemsettest_SRCS})
-target_link_libraries(kitemsettest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kitemsettest.cpp LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# KItemRangeTest
-set(kitemrangetest_SRCS
- kitemrangetest.cpp
-)
-kde4_add_unit_test(kitemrangetest TEST ${kitemrangetest_SRCS})
-target_link_libraries(kitemrangetest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kitemrangetest.cpp LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
+
# KItemListSelectionManagerTest
-set(kitemlistselectionmanagertest_SRCS
- kitemlistselectionmanagertest.cpp
- ../kitemviews/kitemlistselectionmanager.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
-)
-kde4_add_unit_test(kitemlistselectionmanagertest TEST ${kitemlistselectionmanagertest_SRCS})
-target_link_libraries(kitemlistselectionmanagertest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kitemlistselectionmanagertest.cpp LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# KItemListControllerTest
-set(kitemlistcontrollertest_SRCS
- kitemlistcontrollertest.cpp
- testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kfileitemlistwidget.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
-# ../kitemviews/kitemlistviewaccessible.cpp # TODO: enable once accessibility is ported to Qt5
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
-)
-kde4_add_unit_test(kitemlistcontrollertest TEST ${kitemlistcontrollertest_SRCS})
-target_link_libraries(kitemlistcontrollertest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kitemlistcontrollertest.cpp testdir.cpp
+TEST_NAME kitemlistcontrollertest
+LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# KFileItemListViewTest
-set(kfileitemlistviewtest_SRCS
- kfileitemlistviewtest.cpp
- testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kfileitemlistview.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemlistview.cpp
-# ../kitemviews/kitemlistviewaccessible.cpp # TODO: enable once accessibility is ported to Qt5
- ../kitemviews/kitemlistcontainer.cpp
- ../kitemviews/kitemlistwidget.cpp
- ../kitemviews/kitemset.cpp
- ../kitemviews/kstandarditemlistview.cpp
- ../kitemviews/kstandarditemlistwidget.cpp
-)
-kde4_add_unit_test(kfileitemlistviewtest TEST ${kfileitemlistviewtest_SRCS})
-target_link_libraries(kfileitemlistviewtest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kfileitemlistviewtest.cpp testdir.cpp
+TEST_NAME kfileitemlistviewtest
+LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# KFileItemModelTest
-set(kfileitemmodeltest_SRCS
- kfileitemmodeltest.cpp
- testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
- ../kitemviews/kitemset.cpp
-)
-kde4_add_unit_test(kfileitemmodeltest TEST ${kfileitemmodeltest_SRCS})
-target_link_libraries(kfileitemmodeltest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
-
-# KFileItemModelBenchmark
-set(kfileitemmodelbenchmark_SRCS
- kfileitemmodelbenchmark.cpp
- testdir.cpp
- ../kitemviews/kfileitemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
-)
-kde4_add_executable(kfileitemmodelbenchmark TEST ${kfileitemmodelbenchmark_SRCS})
-target_link_libraries(kfileitemmodelbenchmark dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kfileitemmodeltest.cpp testdir.cpp
+TEST_NAME kfileitemmodeltest
+LINK_LIBRARIES dolphinprivate dolphinstatic Qt${QT_MAJOR_VERSION}::Test)
+
+# KFileItemModelBenchmark, not run automatically with `ctest` or `make test`
+add_executable(kfileitemmodelbenchmark kfileitemmodelbenchmark.cpp testdir.cpp)
+target_link_libraries(kfileitemmodelbenchmark dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# KItemListKeyboardSearchManagerTest
-set(kitemlistkeyboardsearchmanagertest_SRCS
- kitemlistkeyboardsearchmanagertest.cpp
- ../kitemviews/private/kitemlistkeyboardsearchmanager.cpp
-)
-kde4_add_unit_test(kitemlistkeyboardsearchmanagertest TEST ${kitemlistkeyboardsearchmanagertest_SRCS})
-target_link_libraries(kitemlistkeyboardsearchmanagertest ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(kitemlistkeyboardsearchmanagertest.cpp LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
# DolphinSearchBox
-if (Baloo_FOUND)
- set(dolphinsearchboxtest_SRCS
- dolphinsearchboxtest.cpp
- ../search/dolphinfacetswidget.cpp
- ../search/dolphinsearchbox.cpp
- )
- kde4_add_kcfg_files(dolphinsearchboxtest_SRCS
- ../search/dolphin_searchsettings.kcfgc
- )
- kde4_add_unit_test(dolphinsearchboxtest TEST ${dolphinsearchboxtest_SRCS})
- target_link_libraries(dolphinsearchboxtest ${KDE4_KIO_LIBS} ${BALOO_FILE_LIBRARY} ${BALOO_CORE_LIBRARY} ${QT_QTTEST_LIBRARY})
-endif (Baloo_FOUND)
-
-# KStandardItemModelTest
-set(kstandarditemmodeltest_SRCS
- kstandarditemmodeltest.cpp
- ../kitemviews/kstandarditem.cpp
- ../kitemviews/kstandarditemmodel.cpp
- ../kitemviews/kitemmodelbase.cpp
-)
-kde4_add_unit_test(kstandarditemmodeltest TEST ${kstandarditemmodeltest_SRCS})
-target_link_libraries(kstandarditemmodeltest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+if (KF6Baloo_FOUND)
+ ecm_add_test(dolphinsearchboxtest.cpp
+ TEST_NAME dolphinsearchboxtest
+ LINK_LIBRARIES dolphinprivate dolphinstatic Qt${QT_MAJOR_VERSION}::Test)
+endif()
+
+# DolphinQuery
+if (KF6Baloo_FOUND)
+ ecm_add_test(dolphinquerytest.cpp
+ TEST_NAME dolphinquerytest
+ LINK_LIBRARIES dolphinprivate dolphinstatic Qt${QT_MAJOR_VERSION}::Test)
+endif()
# ViewPropertiesTest
-set(viewpropertiestest_SRCS
- viewpropertiestest.cpp
- testdir.cpp
- ../views/viewproperties.cpp
-)
-kde4_add_kcfg_files(viewpropertiestest_SRCS
- ../settings/dolphin_generalsettings.kcfgc
- ../settings/dolphin_directoryviewpropertysettings.kcfgc
-)
-kde4_add_unit_test(viewpropertiestest TEST ${viewpropertiestest_SRCS})
-target_link_libraries(viewpropertiestest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+ecm_add_test(viewpropertiestest.cpp testdir.cpp
+TEST_NAME viewpropertiestest
+LINK_LIBRARIES dolphinprivate dolphinstatic Qt${QT_MAJOR_VERSION}::Test)
+
+# DolphinMainWindowTest
+ecm_add_test(dolphinmainwindowtest.cpp testdir.cpp ${CMAKE_SOURCE_DIR}/src/dolphin.qrc
+TEST_NAME dolphinmainwindowtest
+LINK_LIBRARIES dolphinprivate dolphinstatic Qt${QT_MAJOR_VERSION}::Test)
+
+# DragAndDropHelperTest
+ecm_add_test(draganddrophelpertest.cpp LINK_LIBRARIES dolphinprivate Qt${QT_MAJOR_VERSION}::Test)
+
+find_gem(test-unit)
+set_package_properties(Gem:test-unit PROPERTIES
+ TYPE RECOMMENDED
+ DESCRIPTION "Ruby gem 'test-unit' required for testing of servicemenu helpers.")
+if (Gem:test-unit_FOUND)
+ add_test(NAME servicemenutest
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../settings/contextmenu/test/test_run.rb)
+endif()