diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
commit | d6a599dbc9d824a462b2b206316e102bf8136446 (patch) | |
tree | ecb257a5e55b2239d74b90fdad62fccd661cf286 /Source/WebKit2/UIProcess/API/gtk/tests | |
parent | 3ccc3a85f09a83557b391aae380d3bf5f81a2911 (diff) | |
download | qtwebkit-d6a599dbc9d824a462b2b206316e102bf8136446.tar.gz |
Imported WebKit commit 8ff1f22783a32de82fee915abd55bd1b298f2644 (http://svn.webkit.org/repository/webkit/trunk@122325)
New snapshot that should work with the latest Qt build system changes
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/tests')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/tests/TestContextMenu.cpp | 67 | ||||
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp | 10 |
2 files changed, 76 insertions, 1 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestContextMenu.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestContextMenu.cpp index f74016006..876685712 100644 --- a/Source/WebKit2/UIProcess/API/gtk/tests/TestContextMenu.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestContextMenu.cpp @@ -49,11 +49,17 @@ public: return test->contextMenu(contextMenu, event, hitTestResult); } + static void contextMenuDismissedCallback(WebKitWebView*, ContextMenuTest* test) + { + test->contextMenuDismissed(); + } + ContextMenuTest() : m_menuPositionX(0) , m_menuPositionY(0) { g_signal_connect(m_webView, "context-menu", G_CALLBACK(contextMenuCallback), this); + g_signal_connect(m_webView, "context-menu-dismissed", G_CALLBACK(contextMenuDismissedCallback), this); } ~ContextMenuTest() @@ -63,6 +69,11 @@ public: virtual bool contextMenu(WebKitContextMenu*, GdkEvent*, WebKitHitTestResult*) = 0; + virtual void contextMenuDismissed() + { + quitMainLoop(); + } + bool shouldShowInputMethodsMenu() { GtkSettings* settings = gtk_widget_get_settings(GTK_WIDGET(m_webView)); @@ -183,6 +194,18 @@ public: showContextMenuAtPositionAndWaitUntilFinished(0, 0); } + static gboolean simulateEscKeyIdleCallback(ContextMenuTest* test) + { + test->keyStroke(GDK_KEY_Escape); + return FALSE; + } + + void dismissContextMenuAndWaitUntilFinished() + { + g_idle_add(reinterpret_cast<GSourceFunc>(simulateEscKeyIdleCallback), this); + g_main_loop_run(m_mainLoop); + } + double m_menuPositionX; double m_menuPositionY; }; @@ -405,7 +428,6 @@ public: GtkMenuItem* item = getMenuItem(menu, m_itemToActivateLabel); gtk_menu_shell_activate_item(GTK_MENU_SHELL(menu), GTK_WIDGET(item), TRUE); m_itemToActivateLabel = 0; - quitMainLoop(); } static gboolean activateMenuItemIdleCallback(gpointer userData) @@ -657,6 +679,48 @@ static void testContextMenuSubMenu(ContextMenuSubmenuTest* test, gconstpointer) test->showContextMenuAndWaitUntilFinished(); } +class ContextMenuDismissedTest: public ContextMenuTest { +public: + MAKE_GLIB_TEST_FIXTURE(ContextMenuDismissedTest); + + ContextMenuDismissedTest() + : m_dismissed(false) + { + } + + bool contextMenu(WebKitContextMenu* contextMenu, GdkEvent*, WebKitHitTestResult*) + { + quitMainLoop(); + // Show the default context menu. + return false; + } + + void contextMenuDismissed() + { + m_dismissed = true; + ContextMenuTest::contextMenuDismissed(); + } + + void showContextMenuAndWaitUntilDismissed() + { + showContextMenuAndWaitUntilFinished(); + dismissContextMenuAndWaitUntilFinished(); + } + + bool m_dismissed; +}; + +static void testContextMenuDismissed(ContextMenuDismissedTest* test, gconstpointer) +{ + test->showInWindowAndWaitUntilMapped(); + + test->loadHtml("<html><body>WebKitGTK+ Context menu tests</body></html>", "file:///"); + test->waitUntilLoadFinished(); + + test->showContextMenuAndWaitUntilDismissed(); + g_assert(test->m_dismissed); +} + void beforeAll() { ContextMenuDefaultTest::add("WebKitWebView", "default-menu", testContextMenuDefaultMenu); @@ -664,6 +728,7 @@ void beforeAll() ContextMenuCustomFullTest::add("WebKitWebView", "custom-menu", testContextMenuCustomMenu); ContextMenuDisabledTest::add("WebKitWebView", "disable-menu", testContextMenuDisableMenu); ContextMenuSubmenuTest::add("WebKitWebView", "submenu", testContextMenuSubMenu); + ContextMenuDismissedTest::add("WebKitWebView", "menu-dismissed", testContextMenuDismissed); } void afterAll() diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp index 2cebdd995..5e6e91b09 100644 --- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp @@ -229,6 +229,16 @@ static void testWebKitSettings(Test*, gconstpointer) webkit_settings_set_draw_compositing_indicators(settings, TRUE); g_assert(webkit_settings_get_draw_compositing_indicators(settings)); + // By default, site specific quirks are disabled. + g_assert(!webkit_settings_get_enable_site_specific_quirks(settings)); + webkit_settings_set_enable_site_specific_quirks(settings, TRUE); + g_assert(webkit_settings_get_enable_site_specific_quirks(settings)); + + // By default, page cache is enabled. + g_assert(webkit_settings_get_enable_page_cache(settings)); + webkit_settings_set_enable_page_cache(settings, FALSE); + g_assert(!webkit_settings_get_enable_page_cache(settings)); + g_object_unref(G_OBJECT(settings)); } |