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

Side by Side Diff: content/shell/renderer/test_runner/web_test_proxy.h

Issue 297043002: Some class comments for WebTestProxy and WebTestProxyBase. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@notify_language_changed
Patch Set: Created 6 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_ 5 #ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_ 6 #define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 namespace content { 75 namespace content {
76 76
77 class MockWebSpeechRecognizer; 77 class MockWebSpeechRecognizer;
78 class RenderFrame; 78 class RenderFrame;
79 class SpellCheckClient; 79 class SpellCheckClient;
80 class TestInterfaces; 80 class TestInterfaces;
81 class WebTestDelegate; 81 class WebTestDelegate;
82 class WebTestInterfaces; 82 class WebTestInterfaces;
83 class WebUserMediaClientMock; 83 class WebUserMediaClientMock;
84 84
85 // WebTestProxyBase is the "brain" of WebTestProxy in the sense that
86 // WebTestProxy does the bridge between RenderViewImpl and WebTestProxyBase and
87 // when it requires a behavior to be different from the usual, it will call
88 // WebTestProxyBase that implements the expected behavior.
89 // See WebTestProxy class comments for more information.
85 class WebTestProxyBase : public blink::WebCompositeAndReadbackAsyncCallback { 90 class WebTestProxyBase : public blink::WebCompositeAndReadbackAsyncCallback {
86 public: 91 public:
87 void SetInterfaces(WebTestInterfaces* interfaces); 92 void SetInterfaces(WebTestInterfaces* interfaces);
88 void SetDelegate(WebTestDelegate* delegate); 93 void SetDelegate(WebTestDelegate* delegate);
89 void set_widget(blink::WebWidget* widget) { web_widget_ = widget; } 94 void set_widget(blink::WebWidget* widget) { web_widget_ = widget; }
90 95
91 void Reset(); 96 void Reset();
92 97
93 blink::WebSpellCheckClient* GetSpellCheckClient() const; 98 blink::WebSpellCheckClient* GetSpellCheckClient() const;
94 blink::WebColorChooser* CreateColorChooser( 99 blink::WebColorChooser* CreateColorChooser(
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 244
240 scoped_ptr<blink::WebMIDIClientMock> m_midiClient; 245 scoped_ptr<blink::WebMIDIClientMock> m_midiClient;
241 scoped_ptr<MockWebSpeechRecognizer> m_speechRecognizer; 246 scoped_ptr<MockWebSpeechRecognizer> m_speechRecognizer;
242 247
243 std::string accept_languages_; 248 std::string accept_languages_;
244 249
245 private: 250 private:
246 DISALLOW_COPY_AND_ASSIGN(WebTestProxyBase); 251 DISALLOW_COPY_AND_ASSIGN(WebTestProxyBase);
247 }; 252 };
248 253
249 // Use this template to inject methods into your WebViewClient/WebFrameClient 254 // WebTestProxy is used during LayoutTests and always instantiated, at time of
250 // implementation required for the running layout tests. 255 // writing with Base=RenderViewImpl. It does not directly inherit from it for
256 // layering purposes.
257 // The intent of that class is to wrap RenderViewImpl for tests purposes in
258 // order to reduce the amount of test specific code in the production code.
259 // WebTestProxy is only doing the glue between RenderViewImpl and
260 // WebTestProxyBase, that means that there is no logic living in this class
261 // except deciding which base class should be called (could be both).
262 //
263 // Examples of usage:
264 // * when a fooClient has a mock implementation, WebTestProxy can override the
265 // fooClient() call and have WebTestProxyBase return the mock implementation.
266 // * when a value needs to be overridden by LayoutTests, WebTestProxy can
267 // override RenderViewImpl's getter and call a getter from WebTestProxyBase
268 // instead. In addition, WebTestProxyBase will have a public setter that
269 // could be called from the TestRunner.
251 template <class Base, typename T> 270 template <class Base, typename T>
252 class WebTestProxy : public Base, public WebTestProxyBase { 271 class WebTestProxy : public Base, public WebTestProxyBase {
253 public: 272 public:
254 explicit WebTestProxy(T t) : Base(t) {} 273 explicit WebTestProxy(T t) : Base(t) {}
255 274
256 virtual ~WebTestProxy() {} 275 virtual ~WebTestProxy() {}
257 276
258 // WebViewClient implementation. 277 // WebViewClient implementation.
259 virtual void scheduleAnimation() { WebTestProxyBase::ScheduleAnimation(); } 278 virtual void scheduleAnimation() { WebTestProxyBase::ScheduleAnimation(); }
260 virtual void postAccessibilityEvent(const blink::WebAXObject& object, 279 virtual void postAccessibilityEvent(const blink::WebAXObject& object,
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 return WebTestProxy::acceptLanguages(); 367 return WebTestProxy::acceptLanguages();
349 } 368 }
350 369
351 private: 370 private:
352 DISALLOW_COPY_AND_ASSIGN(WebTestProxy); 371 DISALLOW_COPY_AND_ASSIGN(WebTestProxy);
353 }; 372 };
354 373
355 } // namespace content 374 } // namespace content
356 375
357 #endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_ 376 #endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698