diff options
Diffstat (limited to 'Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp')
-rw-r--r-- | Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp index 16db87d98..886356b7e 100644 --- a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp +++ b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp @@ -41,7 +41,7 @@ static void testWebKitDOMNodeInsertion(WebViewTest* test, gconstpointer) g_assert(test->runWebProcessTest("WebKitDOMNode", "insertion")); } -static void testWebKitDOMNodeTagNames(WebViewTest* test, gconstpointer) +static void prepareDOMForTagNamesTests(WebViewTest* test) { static const char* testHTML = "<html><head></head><body>" "<video id='video' preload='none'>" @@ -53,19 +53,44 @@ static void testWebKitDOMNodeTagNames(WebViewTest* test, gconstpointer) " Your browser does not support the video tag." "</video>" "<input type='hidden' id='test' name='finish' value='false'></body></html>"; - test->loadHtml(testHTML, 0); + test->loadHtml(testHTML, nullptr); test->waitUntilLoadFinished(); +} - g_assert(test->runWebProcessTest("WebKitDOMNode", "tag-names")); +static void testWebKitDOMNodeTagNamesNodeList(WebViewTest* test, gconstpointer) +{ + prepareDOMForTagNamesTests(test); + g_assert(test->runWebProcessTest("WebKitDOMNode", "tag-names-node-list")); } -void beforeAll() +static void testWebKitDOMNodeTagNamesHTMLCollection(WebViewTest* test, gconstpointer) +{ + prepareDOMForTagNamesTests(test); + g_assert(test->runWebProcessTest("WebKitDOMNode", "tag-names-html-collection")); +} + +static void testWebKitDOMObjectCache(WebViewTest* test, gconstpointer) { - webkit_web_context_set_web_extensions_directory(webkit_web_context_get_default(), WEBKIT_TEST_WEB_EXTENSIONS_DIR); + static const char* testHTML = "<html><body><div id='container'><p>DOM Cache test</p><a id='link href='#'>link</a></div></body></html>"; + // Run the test 3 times to make sure the DOM objects are correctly released when the + // document is detached from the frame for every new document created. + for (unsigned i = 0; i < 3; ++i) { + test->loadHtml(testHTML, nullptr); + test->waitUntilLoadFinished(); + + g_assert(test->runWebProcessTest("WebKitDOMNode", "dom-cache")); + } +} + + +void beforeAll() +{ WebViewTest::add("WebKitDOMNode", "hierarchy-navigation", testWebKitDOMNodeHierarchyNavigation); WebViewTest::add("WebKitDOMNode", "insertion", testWebKitDOMNodeInsertion); - WebViewTest::add("WebKitDOMNode", "tag-names", testWebKitDOMNodeTagNames); + WebViewTest::add("WebKitDOMNode", "tag-names-node-list", testWebKitDOMNodeTagNamesNodeList); + WebViewTest::add("WebKitDOMNode", "tag-names-html-collection", testWebKitDOMNodeTagNamesHTMLCollection); + WebViewTest::add("WebKitDOMNode", "dom-cache", testWebKitDOMObjectCache); } void afterAll() |