summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp99
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()