1 set(TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestWebKitAPI")
2 set(TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY_WTF "${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WTF")
4 # This is necessary because it is possible to build TestWebKitAPI with WebKit2
5 # disabled and this triggers the inclusion of the WebKit2 headers.
6 add_definitions(-DBUILDING_WEBKIT2__)
8 add_custom_target(TestWebKitAPI-forwarding-headers
9 COMMAND ${PERL_EXECUTABLE} ${WEBKIT2_DIR}/Scripts/generate-forwarding-headers.pl --include-path ${TESTWEBKITAPI_DIR} --output ${FORWARDING_HEADERS_DIR} --platform gtk --platform soup
10 DEPENDS WebKit2-forwarding-headers
13 set(ForwardingHeadersForTestWebKitAPI_NAME TestWebKitAPI-forwarding-headers)
16 ${FORWARDING_HEADERS_DIR}
17 ${FORWARDING_HEADERS_DIR}/JavaScriptCore
18 ${WEBKIT2_DIR}/UIProcess/API/C/soup
19 ${WEBKIT2_DIR}/UIProcess/API/C/gtk
20 ${WEBKIT2_DIR}/UIProcess/API/gtk
23 include_directories(SYSTEM
27 ${LIBSOUP_INCLUDE_DIRS}
31 ${TESTWEBKITAPI_DIR}/gtk/main.cpp
34 set(bundle_harness_SOURCES
35 ${TESTWEBKITAPI_DIR}/gtk/InjectedBundleControllerGtk.cpp
36 ${TESTWEBKITAPI_DIR}/gtk/PlatformUtilitiesGtk.cpp
39 set(webkit2_api_harness_SOURCES
40 ${TESTWEBKITAPI_DIR}/gtk/PlatformUtilitiesGtk.cpp
41 ${TESTWEBKITAPI_DIR}/gtk/PlatformWebViewGtk.cpp
44 list(APPEND test_wtf_LIBRARIES
49 list(APPEND test_webkit2_api_LIBRARIES
54 list(APPEND test_webcore_LIBRARIES
60 list(APPEND TestWebKitAPI_LIBRARIES
65 list(APPEND TestJavaScriptCore_LIBRARIES
70 add_executable(TestWebKit2
71 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/AboutBlankLoad.cpp
72 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/CanHandleRequest.cpp
73 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/CookieManager.cpp
74 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp
75 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DOMWindowExtensionBasic.cpp
76 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DOMWindowExtensionNoCache.cpp
77 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DownloadDecideDestinationCrash.cpp
78 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/EvaluateJavaScript.cpp
79 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/FailedLoad.cpp
80 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/Find.cpp
81 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/ForceRepaint.cpp
82 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/FrameMIMETypeHTML.cpp
83 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/FrameMIMETypePNG.cpp
84 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/Geolocation.cpp
85 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback.cpp
86 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/HitTestResultNodeHandle.cpp
87 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/InjectedBundleBasic.cpp
88 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/InjectedBundleFrameHitTest.cpp
89 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins.cpp
90 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/LoadAlternateHTMLStringWithNonDirectoryURL.cpp
91 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/LoadCanceledNoServerRedirectCallback.cpp
92 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/LoadPageOnCrash.cpp
93 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/MouseMoveAfterCrash.cpp
94 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/NewFirstVisuallyNonEmptyLayout.cpp
95 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFails.cpp
96 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutForImages.cpp
97 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp
98 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/PageLoadBasic.cpp
99 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp
100 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/ParentFrame.cpp
101 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/PreventEmptyUserAgent.cpp
102 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/PrivateBrowsingPushStateNoHistoryCallback.cpp
103 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/ReloadPageAfterCrash.cpp
104 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/ResizeWindowAfterCrash.cpp
105 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/RestoreSessionStateContainingFormData.cpp
106 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/ShouldGoToBackForwardListItem.cpp
107 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp
108 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/UserMedia.cpp
109 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/UserMessage.cpp
110 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WillSendSubmitEvent.cpp
111 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKPageGetScaleFactorNotZero.cpp
112 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKPreferences.cpp
113 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKRetainPtr.cpp
114 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKString.cpp
115 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKStringJSString.cpp
116 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKURL.cpp
117 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/gtk/InputMethodFilter.cpp
120 target_link_libraries(TestWebKit2 ${test_webkit2_api_LIBRARIES})
121 add_test(TestWebKit2 ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit2/TestWebKit2)
122 set_tests_properties(TestWebKit2 PROPERTIES TIMEOUT 60)
123 set_target_properties(TestWebKit2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit2)
125 if (ENABLE_SECCOMP_FILTERS)
126 # This test needs to be in its own executable. It's a general test of the
127 # seccomp filter mechanism, and the filters it sets are incompatible with
128 # the correct operation of WebKit and the other tests.
129 add_executable(TestSeccompFilters
130 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/SeccompFilters.cpp
133 target_link_libraries(TestSeccompFilters ${test_webkit2_api_LIBRARIES})
134 add_test(TestSeccompFilters ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit2/TestWebKit2)
135 set_tests_properties(TestSeccompFilters PROPERTIES TIMEOUT 5)
136 set_target_properties(TestSeccompFilters PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebKit2)
139 set(TestWebCoreGtk_SOURCES
140 ${TESTWEBKITAPI_DIR}/Tests/WebCore/gtk/UserAgentQuirks.cpp
143 add_executable(TestWebCore
145 ${TestWebCoreGtk_SOURCES}
146 ${TESTWEBKITAPI_DIR}/TestsController.cpp
147 ${TESTWEBKITAPI_DIR}/Tests/WebCore/LayoutUnit.cpp
148 ${TESTWEBKITAPI_DIR}/Tests/WebCore/URL.cpp
149 ${TESTWEBKITAPI_DIR}/Tests/WebCore/SharedBuffer.cpp
150 ${TESTWEBKITAPI_DIR}/Tests/WebCore/FileSystem.cpp
151 ${TESTWEBKITAPI_DIR}/Tests/WebCore/PublicSuffix.cpp
154 target_link_libraries(TestWebCore ${test_webcore_LIBRARIES})
155 add_dependencies(TestWebCore ${ForwardingHeadersForTestWebKitAPI_NAME})
157 add_test(TestWebCore ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebCore/TestWebCore)
158 set_tests_properties(TestWebCore PROPERTIES TIMEOUT 60)
159 set_target_properties(TestWebCore PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${TESTWEBKITAPI_RUNTIME_OUTPUT_DIRECTORY}/WebCore)
161 list(APPEND TestWTF_SOURCES
162 ${TESTWEBKITAPI_DIR}/Tests/WTF/glib/GMainLoopSource.cpp
163 ${TESTWEBKITAPI_DIR}/Tests/WTF/glib/GUniquePtr.cpp
164 ${TESTWEBKITAPI_DIR}/Tests/WTF/glib/WorkQueueGLib.cpp