diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
commit | dd91e772430dc294e3bf478c119ef8d43c0a3358 (patch) | |
tree | 6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp | |
parent | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff) | |
download | qtwebkit-dd91e772430dc294e3bf478c119ef8d43c0a3358.tar.gz |
Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422)
This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API.
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp | 99 |
1 files changed, 51 insertions, 48 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp index 47da98eb3..bfeda169f 100644 --- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp @@ -71,24 +71,22 @@ static void testWebViewSettings(WebViewTest* test, gconstpointer) g_assert(webkit_settings_get_enable_javascript(settings)); } -static void replaceContentTitleChangedCallback(WebViewTest* test) +static void replaceContentLoadCallback(WebKitWebView* webView, WebKitLoadEvent loadEvent, WebViewTest* test) { - g_main_loop_quit(test->m_mainLoop); -} - -static void replaceContentLoadCallback() -{ - g_assert_not_reached(); + // There might be an event from a previous load, + // but never a WEBKIT_LOAD_STARTED after webkit_web_view_replace_content(). + g_assert_cmpint(loadEvent, !=, WEBKIT_LOAD_STARTED); } static void testWebViewReplaceContent(WebViewTest* test, gconstpointer) { - g_signal_connect_swapped(test->m_webView, "notify::title", G_CALLBACK(replaceContentTitleChangedCallback), test); + test->loadHtml("<html><head><title>Replace Content Test</title></head><body>Content to replace</body></html>", 0); + test->waitUntilTitleChangedTo("Replace Content Test"); + g_signal_connect(test->m_webView, "load-changed", G_CALLBACK(replaceContentLoadCallback), test); - g_signal_connect(test->m_webView, "load-failed", G_CALLBACK(replaceContentLoadCallback), test); - test->replaceContent("<html><head><title>Content Replaced</title></head><body>New Content</body></html>", + test->replaceContent("<html><body onload='document.title=\"Content Replaced\"'>New Content</body></html>", "http://foo.com/bar", 0); - g_main_loop_run(test->m_mainLoop); + test->waitUntilTitleChangedTo("Content Replaced"); } static const char* kAlertDialogMessage = "WebKitGTK+ alert dialog message"; @@ -106,12 +104,6 @@ public: Close }; - enum ScriptType { - Alert, - Confirm, - Prompt - }; - class WindowProperties { public: WindowProperties() @@ -226,43 +218,52 @@ public: return newWebView; } - static gboolean scriptAlert(WebKitWebView*, const char* message, UIClientTest* test) + void scriptAlert(WebKitScriptDialog* dialog) { - switch (test->m_scriptType) { - case UIClientTest::Alert: - g_assert_cmpstr(message, ==, kAlertDialogMessage); + switch (m_scriptDialogType) { + case WEBKIT_SCRIPT_DIALOG_ALERT: + g_assert_cmpstr(webkit_script_dialog_get_message(dialog), ==, kAlertDialogMessage); break; - case UIClientTest::Confirm: - g_assert(test->m_scriptDialogConfirmed); - g_assert_cmpstr(message, ==, "confirmed"); + case WEBKIT_SCRIPT_DIALOG_CONFIRM: + g_assert(m_scriptDialogConfirmed); + g_assert_cmpstr(webkit_script_dialog_get_message(dialog), ==, "confirmed"); break; - case UIClientTest::Prompt: - g_assert_cmpstr(message, ==, kPromptDialogReturnedText); + case WEBKIT_SCRIPT_DIALOG_PROMPT: + g_assert_cmpstr(webkit_script_dialog_get_message(dialog), ==, kPromptDialogReturnedText); break; } - g_main_loop_quit(test->m_mainLoop); - - return TRUE; + g_main_loop_quit(m_mainLoop); } - static gboolean scriptConfirm(WebKitWebView*, const char* message, gboolean* confirmed, UIClientTest* test) + void scriptConfirm(WebKitScriptDialog* dialog) { - g_assert_cmpstr(message, ==, kConfirmDialogMessage); - g_assert(confirmed); - test->m_scriptDialogConfirmed = !test->m_scriptDialogConfirmed; - *confirmed = test->m_scriptDialogConfirmed; + g_assert_cmpstr(webkit_script_dialog_get_message(dialog), ==, kConfirmDialogMessage); + m_scriptDialogConfirmed = !m_scriptDialogConfirmed; + webkit_script_dialog_confirm_set_confirmed(dialog, m_scriptDialogConfirmed); + } - return TRUE; + void scriptPrompt(WebKitScriptDialog* dialog) + { + g_assert_cmpstr(webkit_script_dialog_get_message(dialog), ==, kPromptDialogMessage); + g_assert_cmpstr(webkit_script_dialog_prompt_get_default_text(dialog), ==, "default"); + webkit_script_dialog_prompt_set_text(dialog, kPromptDialogReturnedText); } - static gboolean scriptPrompt(WebKitWebView*, const char* message, const char* defaultText, char **text, UIClientTest* test) + static gboolean scriptDialog(WebKitWebView*, WebKitScriptDialog* dialog, UIClientTest* test) { - g_assert_cmpstr(message, ==, kPromptDialogMessage); - g_assert_cmpstr(defaultText, ==, "default"); - g_assert(text); - *text = g_strdup(kPromptDialogReturnedText); + switch (webkit_script_dialog_get_dialog_type(dialog)) { + case WEBKIT_SCRIPT_DIALOG_ALERT: + test->scriptAlert(dialog); + break; + case WEBKIT_SCRIPT_DIALOG_CONFIRM: + test->scriptConfirm(dialog); + break; + case WEBKIT_SCRIPT_DIALOG_PROMPT: + test->scriptPrompt(dialog); + break; + } return TRUE; } @@ -278,15 +279,13 @@ public: } UIClientTest() - : m_scriptType(Alert) + : m_scriptDialogType(WEBKIT_SCRIPT_DIALOG_ALERT) , m_scriptDialogConfirmed(true) , m_mouseTargetModifiers(0) { webkit_settings_set_javascript_can_open_windows_automatically(webkit_web_view_get_settings(m_webView), TRUE); g_signal_connect(m_webView, "create", G_CALLBACK(viewCreate), this); - g_signal_connect(m_webView, "script-alert", G_CALLBACK(scriptAlert), this); - g_signal_connect(m_webView, "script-confirm", G_CALLBACK(scriptConfirm), this); - g_signal_connect(m_webView, "script-prompt", G_CALLBACK(scriptPrompt), this); + g_signal_connect(m_webView, "script-dialog", G_CALLBACK(scriptDialog), this); g_signal_connect(m_webView, "mouse-target-changed", G_CALLBACK(mouseTargetChanged), this); } @@ -313,7 +312,7 @@ public: } Vector<WebViewEvents> m_webViewEvents; - ScriptType m_scriptType; + WebKitScriptDialogType m_scriptDialogType; bool m_scriptDialogConfirmed; WindowProperties m_windowProperties; HashSet<WTF::String> m_windowPropertiesChanged; @@ -340,19 +339,19 @@ static void testWebViewJavaScriptDialogs(UIClientTest* test, gconstpointer) static const char* jsConfirmFormat = "do { confirmed = confirm('%s'); } while (!confirmed); alert('confirmed');"; static const char* jsPromptFormat = "alert(prompt('%s', 'default'));"; - test->m_scriptType = UIClientTest::Alert; + test->m_scriptDialogType = WEBKIT_SCRIPT_DIALOG_ALERT; GOwnPtr<char> alertDialogMessage(g_strdup_printf(jsAlertFormat, kAlertDialogMessage)); GOwnPtr<char> alertHTML(g_strdup_printf(htmlOnLoadFormat, alertDialogMessage.get())); test->loadHtml(alertHTML.get(), 0); test->waitUntilMainLoopFinishes(); - test->m_scriptType = UIClientTest::Confirm; + test->m_scriptDialogType = WEBKIT_SCRIPT_DIALOG_CONFIRM; GOwnPtr<char> confirmDialogMessage(g_strdup_printf(jsConfirmFormat, kConfirmDialogMessage)); GOwnPtr<char> confirmHTML(g_strdup_printf(htmlOnLoadFormat, confirmDialogMessage.get())); test->loadHtml(confirmHTML.get(), 0); test->waitUntilMainLoopFinishes(); - test->m_scriptType = UIClientTest::Prompt; + test->m_scriptDialogType = WEBKIT_SCRIPT_DIALOG_PROMPT; GOwnPtr<char> promptDialogMessage(g_strdup_printf(jsPromptFormat, kPromptDialogMessage)); GOwnPtr<char> promptHTML(g_strdup_printf(htmlOnLoadFormat, promptDialogMessage.get())); test->loadHtml(promptHTML.get(), 0); @@ -447,6 +446,10 @@ static void testWebViewZoomLevel(WebViewTest* test, gconstpointer) g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 1); webkit_web_view_set_zoom_level(test->m_webView, 2.5); g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); + + webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(test->m_webView), TRUE); + // The zoom level shouldn't change when zoom-text-only setting changes. + g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); } void beforeAll() |