[GTK] Use custom JavaScript instead of DBus to implement WebProcess tests
[WebKit-https.git] / Tools / TestWebKitAPI / Tests / WebKit2Gtk / FrameTest.cpp
1 /*
2  * Copyright (C) 2013 Igalia S.L.
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #include "config.h"
21
22 #include "WebProcessTest.h"
23 #include <gio/gio.h>
24 #include <webkit2/webkit-web-extension.h>
25
26 class WebKitFrameTest : public WebProcessTest {
27 public:
28     static std::unique_ptr<WebProcessTest> create() { return std::unique_ptr<WebProcessTest>(new WebKitFrameTest()); }
29
30 private:
31     bool testMainFrame(WebKitWebPage* page)
32     {
33         WebKitFrame* frame = webkit_web_page_get_main_frame(page);
34         g_assert(WEBKIT_IS_FRAME(frame));
35         g_assert(webkit_frame_is_main_frame(frame));
36
37         return true;
38     }
39
40     bool testURI(WebKitWebPage* page)
41     {
42         WebKitFrame* frame = webkit_web_page_get_main_frame(page);
43         g_assert(WEBKIT_IS_FRAME(frame));
44         g_assert_cmpstr(webkit_web_page_get_uri(page), ==, webkit_frame_get_uri(frame));
45
46         return true;
47     }
48
49     bool testJavaScriptContext(WebKitWebPage* page)
50     {
51         WebKitFrame* frame = webkit_web_page_get_main_frame(page);
52         g_assert(WEBKIT_IS_FRAME(frame));
53         g_assert(webkit_frame_get_javascript_global_context(frame));
54
55         return true;
56     }
57
58     bool runTest(const char* testName, WebKitWebPage* page) override
59     {
60         if (!strcmp(testName, "main-frame"))
61             return testMainFrame(page);
62         if (!strcmp(testName, "uri"))
63             return testURI(page);
64         if (!strcmp(testName, "javascript-context"))
65             return testJavaScriptContext(page);
66
67         g_assert_not_reached();
68         return false;
69     }
70 };
71
72 static void __attribute__((constructor)) registerTests()
73 {
74     REGISTER_TEST(WebKitFrameTest, "WebKitFrame/main-frame");
75     REGISTER_TEST(WebKitFrameTest, "WebKitFrame/uri");
76     REGISTER_TEST(WebKitFrameTest, "WebKitFrame/javascript-context");
77 }