summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp201
1 files changed, 0 insertions, 201 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
deleted file mode 100644
index db6ccc852..000000000
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2012 Igalia S.L.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include "LoadTrackingTest.h"
-#include "WebKitTestServer.h"
-#include <gtk/gtk.h>
-
-static WebKitTestServer* kHttpsServer;
-static WebKitTestServer* kHttpServer;
-
-static const char* indexHTML = "<html><body>Testing WebKit2GTK+ SSL</body></htmll>";
-static const char* insecureContentHTML = "<html><script src=\"%s\"></script><body><p>Text + image <img src=\"%s\" align=\"right\"/></p></body></html>";
-
-class SSLTest: public LoadTrackingTest {
-public:
- MAKE_GLIB_TEST_FIXTURE(SSLTest);
-
- SSLTest()
- : m_tlsErrors(static_cast<GTlsCertificateFlags>(0))
- {
- }
-
- virtual void provisionalLoadFailed(const gchar* failingURI, GError* error)
- {
- g_assert_error(error, SOUP_HTTP_ERROR, SOUP_STATUS_SSL_FAILED);
- LoadTrackingTest::provisionalLoadFailed(failingURI, error);
- }
-
- virtual void loadCommitted()
- {
- GTlsCertificate* certificate = 0;
- webkit_web_view_get_tls_info(m_webView, &certificate, &m_tlsErrors);
- m_certificate = certificate;
- LoadTrackingTest::loadCommitted();
- }
-
- void waitUntilLoadFinished()
- {
- m_certificate = 0;
- m_tlsErrors = static_cast<GTlsCertificateFlags>(0);
- LoadTrackingTest::waitUntilLoadFinished();
- }
-
- GRefPtr<GTlsCertificate> m_certificate;
- GTlsCertificateFlags m_tlsErrors;
-};
-
-static void testSSL(SSLTest* test, gconstpointer)
-{
- test->loadURI(kHttpsServer->getURIForPath("/").data());
- test->waitUntilLoadFinished();
- g_assert(test->m_certificate);
- // We always expect errors because we are using a self-signed certificate,
- // but only G_TLS_CERTIFICATE_UNKNOWN_CA flags should be present.
- g_assert(test->m_tlsErrors);
- g_assert_cmpuint(test->m_tlsErrors, ==, G_TLS_CERTIFICATE_UNKNOWN_CA);
-
- // Non HTTPS loads shouldn't have a certificate nor errors.
- test->loadHtml(indexHTML, 0);
- test->waitUntilLoadFinished();
- g_assert(!test->m_certificate);
- g_assert(!test->m_tlsErrors);
-}
-
-class InsecureContentTest: public WebViewTest {
-public:
- MAKE_GLIB_TEST_FIXTURE(InsecureContentTest);
-
- InsecureContentTest()
- : m_insecureContentRun(false)
- , m_insecureContentDisplayed(false)
- {
- g_signal_connect(m_webView, "insecure-content-detected", G_CALLBACK(insecureContentDetectedCallback), this);
- }
-
- static void insecureContentDetectedCallback(WebKitWebView* webView, WebKitInsecureContentEvent event, InsecureContentTest* test)
- {
- g_assert(webView == test->m_webView);
-
- if (event == WEBKIT_INSECURE_CONTENT_RUN)
- test->m_insecureContentRun = true;
-
- if (event == WEBKIT_INSECURE_CONTENT_DISPLAYED)
- test->m_insecureContentDisplayed = true;
- }
-
- bool m_insecureContentRun;
- bool m_insecureContentDisplayed;
-};
-
-static void testInsecureContent(InsecureContentTest* test, gconstpointer)
-{
- test->loadURI(kHttpsServer->getURIForPath("/insecure-content/").data());
- test->waitUntilLoadFinished();
-
- g_assert(test->m_insecureContentRun);
- g_assert(test->m_insecureContentDisplayed);
-}
-
-static void testTLSErrorsPolicy(SSLTest* test, gconstpointer)
-{
- WebKitWebContext* context = webkit_web_view_get_context(test->m_webView);
- // TLS errors are ignored by default.
- g_assert(webkit_web_context_get_tls_errors_policy(context) == WEBKIT_TLS_ERRORS_POLICY_IGNORE);
- test->loadURI(kHttpsServer->getURIForPath("/").data());
- test->waitUntilLoadFinished();
- g_assert(!test->m_loadFailed);
-
- webkit_web_context_set_tls_errors_policy(context, WEBKIT_TLS_ERRORS_POLICY_FAIL);
- test->loadURI(kHttpsServer->getURIForPath("/").data());
- test->waitUntilLoadFinished();
- g_assert(test->m_loadFailed);
- g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
- g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadCommitted));
-}
-
-static void httpsServerCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
-{
- if (message->method != SOUP_METHOD_GET) {
- soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED);
- return;
- }
-
- if (g_str_equal(path, "/")) {
- soup_message_set_status(message, SOUP_STATUS_OK);
- soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, indexHTML, strlen(indexHTML));
- soup_message_body_complete(message->response_body);
- } else if (g_str_equal(path, "/insecure-content/")) {
- GOwnPtr<char> responseHTML(g_strdup_printf(insecureContentHTML, kHttpServer->getURIForPath("/test-script").data(), kHttpServer->getURIForPath("/test-image").data()));
- soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, responseHTML.get(), strlen(responseHTML.get()));
- soup_message_set_status(message, SOUP_STATUS_OK);
- soup_message_body_complete(message->response_body);
- } else
- soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
-}
-
-static void httpServerCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
-{
- if (message->method != SOUP_METHOD_GET) {
- soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED);
- return;
- }
-
- if (g_str_equal(path, "/test-script")) {
- GOwnPtr<char> pathToFile(g_build_filename(Test::getResourcesDir().data(), "link-title.js", NULL));
- char* contents;
- gsize length;
- g_file_get_contents(pathToFile.get(), &contents, &length, 0);
-
- soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, contents, length);
- soup_message_set_status(message, SOUP_STATUS_OK);
- soup_message_body_complete(message->response_body);
- } else if (g_str_equal(path, "/test-image")) {
- GOwnPtr<char> pathToFile(g_build_filename(Test::getWebKit1TestResoucesDir().data(), "blank.ico", NULL));
- char* contents;
- gsize length;
- g_file_get_contents(pathToFile.get(), &contents, &length, 0);
-
- soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, contents, length);
- soup_message_set_status(message, SOUP_STATUS_OK);
- soup_message_body_complete(message->response_body);
- } else
- soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
-}
-
-void beforeAll()
-{
- kHttpsServer = new WebKitTestServer(WebKitTestServer::ServerHTTPS);
- kHttpsServer->run(httpsServerCallback);
-
- kHttpServer = new WebKitTestServer(WebKitTestServer::ServerHTTP);
- kHttpServer->run(httpServerCallback);
-
- SSLTest::add("WebKitWebView", "ssl", testSSL);
- InsecureContentTest::add("WebKitWebView", "insecure-content", testInsecureContent);
- SSLTest::add("WebKitWebContext", "tls-errors-policy", testTLSErrorsPolicy);
-}
-
-void afterAll()
-{
- delete kHttpsServer;
- delete kHttpServer;
-}