Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Side by Side Diff: content/shell/renderer/test_runner/TestInterfaces.cpp

Issue 458723002: TestInterfaces to chromium c++ style, rename methods and remove un-used header. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/shell/renderer/test_runner/TestInterfaces.h"
6
7 #include <string>
8
9 #include "base/logging.h"
10 #include "base/command_line.h"
11 #include "base/strings/stringprintf.h"
12 #include "content/shell/common/shell_switches.h"
13 #include "content/shell/renderer/test_runner/accessibility_controller.h"
14 #include "content/shell/renderer/test_runner/event_sender.h"
15 #include "content/shell/renderer/test_runner/gamepad_controller.h"
16 #include "content/shell/renderer/test_runner/text_input_controller.h"
17 #include "content/shell/renderer/test_runner/test_runner.h"
18 #include "content/shell/renderer/test_runner/web_test_proxy.h"
19 #include "third_party/WebKit/public/platform/WebString.h"
20 #include "third_party/WebKit/public/platform/WebURL.h"
21 #include "third_party/WebKit/public/web/WebCache.h"
22 #include "third_party/WebKit/public/web/WebKit.h"
23 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
24 #include "third_party/WebKit/public/web/WebView.h"
25
26 using namespace blink;
27
28 namespace content {
29
30 TestInterfaces::TestInterfaces()
31 : m_accessibilityController(new AccessibilityController())
32 , m_eventSender(new EventSender(this))
33 , m_gamepadController(new GamepadController())
34 , m_textInputController(new TextInputController())
35 , m_testRunner(new TestRunner(this))
36 , m_delegate(0)
37 {
38 blink::setLayoutTestMode(true);
39 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kEnableFontAntiali asing))
40 blink::setFontAntialiasingEnabledForTest(true);
41
42 // NOTE: please don't put feature specific enable flags here,
43 // instead add them to RuntimeEnabledFeatures.in
44
45 resetAll();
46 }
47
48 TestInterfaces::~TestInterfaces()
49 {
50 m_accessibilityController->SetWebView(0);
51 m_eventSender->SetWebView(0);
52 // m_gamepadController doesn't depend on WebView.
53 m_textInputController->SetWebView(NULL);
54 m_testRunner->SetWebView(0, 0);
55
56 m_accessibilityController->SetDelegate(0);
57 m_eventSender->SetDelegate(0);
58 m_gamepadController->SetDelegate(0);
59 // m_textInputController doesn't depend on WebTestDelegate.
60 m_testRunner->SetDelegate(0);
61 }
62
63 void TestInterfaces::setWebView(WebView* webView, WebTestProxyBase* proxy)
64 {
65 m_proxy = proxy;
66 m_accessibilityController->SetWebView(webView);
67 m_eventSender->SetWebView(webView);
68 // m_gamepadController doesn't depend on WebView.
69 m_textInputController->SetWebView(webView);
70 m_testRunner->SetWebView(webView, proxy);
71 }
72
73 void TestInterfaces::setDelegate(WebTestDelegate* delegate)
74 {
75 m_accessibilityController->SetDelegate(delegate);
76 m_eventSender->SetDelegate(delegate);
77 m_gamepadController->SetDelegate(delegate);
78 // m_textInputController doesn't depend on WebTestDelegate.
79 m_testRunner->SetDelegate(delegate);
80 m_delegate = delegate;
81 }
82
83 void TestInterfaces::bindTo(WebFrame* frame)
84 {
85 m_accessibilityController->Install(frame);
86 m_eventSender->Install(frame);
87 m_gamepadController->Install(frame);
88 m_textInputController->Install(frame);
89 m_testRunner->Install(frame);
90 }
91
92 void TestInterfaces::resetTestHelperControllers()
93 {
94 m_accessibilityController->Reset();
95 m_eventSender->Reset();
96 m_gamepadController->Reset();
97 // m_textInputController doesn't have any state to reset.
98 WebCache::clear();
99 }
100
101 void TestInterfaces::resetAll()
102 {
103 resetTestHelperControllers();
104 m_testRunner->Reset();
105 }
106
107 void TestInterfaces::setTestIsRunning(bool running)
108 {
109 m_testRunner->SetTestIsRunning(running);
110 }
111
112 void TestInterfaces::configureForTestWithURL(const WebURL& testURL, bool generat ePixels)
113 {
114 std::string spec = GURL(testURL).spec();
115 m_testRunner->setShouldGeneratePixelResults(generatePixels);
116 if (spec.find("loading/") != std::string::npos)
117 m_testRunner->setShouldDumpFrameLoadCallbacks(true);
118 if (spec.find("/dumpAsText/") != std::string::npos) {
119 m_testRunner->setShouldDumpAsText(true);
120 m_testRunner->setShouldGeneratePixelResults(false);
121 }
122 if (spec.find("/inspector/") != std::string::npos
123 || spec.find("/inspector-enabled/") != std::string::npos)
124 m_testRunner->clearDevToolsLocalStorage();
125 if (spec.find("/inspector/") != std::string::npos) {
126 // Subfolder name determines default panel to open.
127 std::string settings = "";
128 std::string test_path = spec.substr(spec.find("/inspector/") + 11);
129 size_t slash_index = test_path.find("/");
130 if (slash_index != std::string::npos) {
131 settings = base::StringPrintf(
132 "{\"lastActivePanel\":\"\\\"%s\\\"\"}",
133 test_path.substr(0, slash_index).c_str());
134 }
135 m_testRunner->showDevTools(settings, std::string());
136 }
137 if (spec.find("/viewsource/") != std::string::npos) {
138 m_testRunner->setShouldEnableViewSource(true);
139 m_testRunner->setShouldGeneratePixelResults(false);
140 m_testRunner->setShouldDumpAsMarkup(true);
141 }
142 }
143
144 void TestInterfaces::windowOpened(WebTestProxyBase* proxy)
145 {
146 m_windowList.push_back(proxy);
147 }
148
149 void TestInterfaces::windowClosed(WebTestProxyBase* proxy)
150 {
151 std::vector<WebTestProxyBase*>::iterator pos = std::find(m_windowList.begin( ), m_windowList.end(), proxy);
152 if (pos == m_windowList.end()) {
153 NOTREACHED();
154 return;
155 }
156 m_windowList.erase(pos);
157 }
158
159 AccessibilityController* TestInterfaces::accessibilityController()
160 {
161 return m_accessibilityController.get();
162 }
163
164 EventSender* TestInterfaces::eventSender()
165 {
166 return m_eventSender.get();
167 }
168
169 TestRunner* TestInterfaces::testRunner()
170 {
171 return m_testRunner.get();
172 }
173
174 WebTestDelegate* TestInterfaces::delegate()
175 {
176 return m_delegate;
177 }
178
179 WebTestProxyBase* TestInterfaces::proxy()
180 {
181 return m_proxy;
182 }
183
184 const std::vector<WebTestProxyBase*>& TestInterfaces::windowList()
185 {
186 return m_windowList;
187 }
188
189 WebThemeEngine* TestInterfaces::themeEngine()
190 {
191 if (!m_testRunner->UseMockTheme())
192 return 0;
193 #if defined(__APPLE__)
194 if (!m_themeEngine.get())
195 m_themeEngine.reset(new MockWebThemeEngineMac());
196 #else
197 if (!m_themeEngine.get())
198 m_themeEngine.reset(new MockWebThemeEngine());
199 #endif
200 return m_themeEngine.get();
201 }
202
203 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/TestInterfaces.h ('k') | content/shell/renderer/test_runner/WebTestInterfaces.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698