Title: [233074] trunk/Tools
Revision
233074
Author
[email protected]
Date
2018-06-22 02:32:10 -0700 (Fri, 22 Jun 2018)

Log Message

Unreviewed. Fix GLib test /webkit/WebKitSecurityManager/file-xhr after r231000

We are now receiving two console messages instead of one. Simply update the test to check both messages.

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
(consoleMessageReceivedCallback):
(testWebContextSecurityFileXHR):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (233073 => 233074)


--- trunk/Tools/ChangeLog	2018-06-22 08:52:55 UTC (rev 233073)
+++ trunk/Tools/ChangeLog	2018-06-22 09:32:10 UTC (rev 233074)
@@ -1,5 +1,15 @@
 2018-06-22  Carlos Garcia Campos  <[email protected]>
 
+        Unreviewed. Fix GLib test /webkit/WebKitSecurityManager/file-xhr after r231000
+
+        We are now receiving two console messages instead of one. Simply update the test to check both messages.
+
+        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:
+        (consoleMessageReceivedCallback):
+        (testWebContextSecurityFileXHR):
+
+2018-06-22  Carlos Garcia Campos  <[email protected]>
+
         Unreviewed GLib gardening. Update expectations of TestSSL.
 
         /webkit/WebKitWebView/tls-errors-policy and /webkit/WebKitWebView/load-failed-with-tls-errors are failing only

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp (233073 => 233074)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp	2018-06-22 08:52:55 UTC (rev 233073)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp	2018-06-22 09:32:10 UTC (rev 233074)
@@ -580,11 +580,11 @@
         | SecurityPolicyTest::CORSEnabled | SecurityPolicyTest::EmptyDocument);
 }
 
-static void consoleMessageReceivedCallback(WebKitUserContentManager*, WebKitJavascriptResult* message, WebKitJavascriptResult** result)
+static void consoleMessageReceivedCallback(WebKitUserContentManager*, WebKitJavascriptResult* message, Vector<WebKitJavascriptResult*>* result)
 {
+    g_assert(message);
     g_assert(result);
-    g_assert(!*result);
-    *result = webkit_javascript_result_ref(message);
+    result->append(webkit_javascript_result_ref(message));
 }
 
 static void testWebContextSecurityFileXHR(WebViewTest* test, gconstpointer)
@@ -596,9 +596,9 @@
     GUniquePtr<char> jsonURL(g_strdup_printf("file://%s/simple.json", Test::getResourcesDir().data()));
     GUniquePtr<char> xhr(g_strdup_printf("var xhr = new XMLHttpRequest; xhr.open(\"GET\", \"%s\"); xhr.send();", jsonURL.get()));
 
-    WebKitJavascriptResult* consoleMessage = nullptr;
+    Vector<WebKitJavascriptResult*> consoleMessages;
     webkit_user_content_manager_register_script_message_handler(test->m_userContentManager.get(), "console");
-    g_signal_connect(test->m_userContentManager.get(), "script-message-received::console", G_CALLBACK(consoleMessageReceivedCallback), &consoleMessage);
+    g_signal_connect(test->m_userContentManager.get(), "script-message-received::console", G_CALLBACK(consoleMessageReceivedCallback), &consoleMessages);
 
     // By default file access is not allowed, this will show a console message with a cross-origin error.
     GUniqueOutPtr<GError> error;
@@ -605,21 +605,24 @@
     WebKitJavascriptResult* _javascript_Result = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr());
     g_assert(_javascript_Result);
     g_assert(!error);
-    g_assert(consoleMessage);
-    GUniquePtr<char> messageString(WebViewTest::_javascript_ResultToCString(consoleMessage));
-    GRefPtr<GVariant> variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr);
-    g_assert(variant.get());
-    unsigned level;
-    const char* messageText;
-    g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr);
-    g_assert_cmpuint(level, ==, 3); // Console error message.
-    GUniquePtr<char> expectedErrorMessage(g_strdup_printf("XMLHttpRequest cannot load %s. Cross origin requests are only supported for HTTP.", jsonURL.get()));
-    g_assert_cmpstr(messageText, ==, expectedErrorMessage.get());
-    webkit_javascript_result_unref(consoleMessage);
-    consoleMessage = nullptr;
-    level = 0;
-    messageText = nullptr;
-    variant = nullptr;
+    g_assert_cmpuint(consoleMessages.size(), ==, 2);
+    Vector<GUniquePtr<char>, 2> expectedMessages;
+    expectedMessages.append(g_strdup("Cross origin requests are only supported for HTTP."));
+    expectedMessages.append(g_strdup_printf("XMLHttpRequest cannot load %s due to access control checks.", jsonURL.get()));
+    unsigned i = 0;
+    for (auto* consoleMessage : consoleMessages) {
+        g_assert(consoleMessage);
+        GUniquePtr<char> messageString(WebViewTest::_javascript_ResultToCString(consoleMessage));
+        GRefPtr<GVariant> variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr);
+        g_assert(variant.get());
+        unsigned level;
+        const char* messageText;
+        g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr);
+        g_assert_cmpuint(level, ==, 3); // Console error message.
+        g_assert_cmpstr(messageText, ==, expectedMessages[i++].get());
+        webkit_javascript_result_unref(consoleMessage);
+    }
+    consoleMessages.clear();
 
     // Allow file access from file URLs.
     webkit_settings_set_allow_file_access_from_file_urls(webkit_web_view_get_settings(test->m_webView), TRUE);
@@ -635,15 +638,22 @@
     _javascript_Result = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr());
     g_assert(_javascript_Result);
     g_assert(!error);
-    g_assert(consoleMessage);
-    variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr);
-    g_assert(variant.get());
-    g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr);
-    g_assert_cmpuint(level, ==, 3); // Console error message.
-    g_assert_cmpstr(messageText, ==, expectedErrorMessage.get());
-    webkit_javascript_result_unref(consoleMessage);
+    i = 0;
+    for (auto* consoleMessage : consoleMessages) {
+        g_assert(consoleMessage);
+        GUniquePtr<char> messageString(WebViewTest::_javascript_ResultToCString(consoleMessage));
+        GRefPtr<GVariant> variant = g_variant_parse(G_VARIANT_TYPE("(uusus)"), messageString.get(), nullptr, nullptr, nullptr);
+        g_assert(variant.get());
+        unsigned level;
+        const char* messageText;
+        g_variant_get(variant.get(), "(uu&su&s)", nullptr, &level, &messageText, nullptr, nullptr);
+        g_assert_cmpuint(level, ==, 3); // Console error message.
+        g_assert_cmpstr(messageText, ==, expectedMessages[i++].get());
+        webkit_javascript_result_unref(consoleMessage);
+    }
+    consoleMessages.clear();
 
-    g_signal_handlers_disconnect_matched(test->m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, &consoleMessage);
+    g_signal_handlers_disconnect_matched(test->m_userContentManager.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, &consoleMessages);
     webkit_user_content_manager_unregister_script_message_handler(test->m_userContentManager.get(), "console");
 
     webkit_settings_set_allow_file_access_from_file_urls(webkit_web_view_get_settings(test->m_webView), FALSE);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to