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

Unified Diff: content/shell/renderer/test_runner/web_test_proxy.h

Issue 1167703002: Move test runner to a component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 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 side-by-side diff with in-line comments
Download patch
Index: content/shell/renderer/test_runner/web_test_proxy.h
diff --git a/content/shell/renderer/test_runner/web_test_proxy.h b/content/shell/renderer/test_runner/web_test_proxy.h
deleted file mode 100644
index 8d6bea88e8622d8131f51927dfc076a52ae4e885..0000000000000000000000000000000000000000
--- a/content/shell/renderer/test_runner/web_test_proxy.h
+++ /dev/null
@@ -1,401 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
-#define CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
-
-#include <deque>
-#include <map>
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/callback.h"
-#include "base/memory/scoped_ptr.h"
-#include "content/shell/renderer/test_runner/web_task.h"
-#include "third_party/WebKit/public/platform/WebImage.h"
-#include "third_party/WebKit/public/platform/WebRect.h"
-#include "third_party/WebKit/public/platform/WebScreenInfo.h"
-#include "third_party/WebKit/public/platform/WebURLError.h"
-#include "third_party/WebKit/public/platform/WebURLRequest.h"
-#include "third_party/WebKit/public/web/WebAXEnums.h"
-#include "third_party/WebKit/public/web/WebDOMMessageEvent.h"
-#include "third_party/WebKit/public/web/WebDataSource.h"
-#include "third_party/WebKit/public/web/WebDragOperation.h"
-#include "third_party/WebKit/public/web/WebFrame.h"
-#include "third_party/WebKit/public/web/WebFrameClient.h"
-#include "third_party/WebKit/public/web/WebHistoryCommitType.h"
-#include "third_party/WebKit/public/web/WebIconURL.h"
-#include "third_party/WebKit/public/web/WebNavigationPolicy.h"
-#include "third_party/WebKit/public/web/WebNavigationType.h"
-#include "third_party/WebKit/public/web/WebSecurityOrigin.h"
-#include "third_party/WebKit/public/web/WebTextAffinity.h"
-#include "third_party/WebKit/public/web/WebTextDirection.h"
-
-class SkBitmap;
-class SkCanvas;
-
-namespace blink {
-class WebAXObject;
-class WebAudioDevice;
-class WebCachedURLRequest;
-class WebColorChooser;
-class WebColorChooserClient;
-class WebDataSource;
-class WebDragData;
-class WebFileChooserCompletion;
-class WebFrame;
-class WebLocalFrame;
-class WebMIDIAccessor;
-class WebMIDIAccessorClient;
-class WebNode;
-class WebPlugin;
-class WebRange;
-class WebSerializedScriptValue;
-class WebSpeechRecognizer;
-class WebSpellCheckClient;
-class WebString;
-class WebURL;
-class WebURLResponse;
-class WebUserMediaClient;
-class WebView;
-class WebWidget;
-struct WebColorSuggestion;
-struct WebConsoleMessage;
-struct WebContextMenuData;
-struct WebFileChooserParams;
-struct WebPluginParams;
-struct WebPoint;
-struct WebSize;
-struct WebWindowFeatures;
-typedef unsigned WebColor;
-}
-
-namespace content {
-
-class MockCredentialManagerClient;
-class MockScreenOrientationClient;
-class MockWebSpeechRecognizer;
-class MockWebUserMediaClient;
-class RenderFrame;
-class SpellCheckClient;
-class TestInterfaces;
-class WebTestDelegate;
-class WebTestInterfaces;
-
-// WebTestProxyBase is the "brain" of WebTestProxy in the sense that
-// WebTestProxy does the bridge between RenderViewImpl and WebTestProxyBase and
-// when it requires a behavior to be different from the usual, it will call
-// WebTestProxyBase that implements the expected behavior.
-// See WebTestProxy class comments for more information.
-class WebTestProxyBase {
- public:
- void SetInterfaces(WebTestInterfaces* interfaces);
- void SetDelegate(WebTestDelegate* delegate);
- void set_widget(blink::WebWidget* widget) { web_widget_ = widget; }
-
- void Reset();
-
- blink::WebSpellCheckClient* GetSpellCheckClient() const;
- blink::WebColorChooser* CreateColorChooser(
- blink::WebColorChooserClient* client,
- const blink::WebColor& color,
- const blink::WebVector<blink::WebColorSuggestion>& suggestions);
- bool RunFileChooser(const blink::WebFileChooserParams& params,
- blink::WebFileChooserCompletion* completion);
- void ShowValidationMessage(const base::string16& message,
- const base::string16& sub_message);
- void HideValidationMessage();
- void MoveValidationMessage(const blink::WebRect& anchor_in_root_view);
-
- std::string CaptureTree(bool debug_render_tree);
- void CapturePixelsForPrinting(
- const base::Callback<void(const SkBitmap&)>& callback);
- void CopyImageAtAndCapturePixels(
- int x, int y, const base::Callback<void(const SkBitmap&)>& callback);
- void CapturePixelsAsync(
- const base::Callback<void(const SkBitmap&)>& callback);
-
- void SetLogConsoleOutput(bool enabled);
-
- void DidOpenChooser();
- void DidCloseChooser();
- bool IsChooserShown();
-
- void LayoutAndPaintAsyncThen(const base::Closure& callback);
-
- void GetScreenOrientationForTesting(blink::WebScreenInfo&);
- MockScreenOrientationClient* GetScreenOrientationClientMock();
- MockWebSpeechRecognizer* GetSpeechRecognizerMock();
- MockCredentialManagerClient* GetCredentialManagerClientMock();
-
- WebTaskList* mutable_task_list() { return &task_list_; }
-
- blink::WebView* GetWebView() const;
-
- void PostSpellCheckEvent(const blink::WebString& event_name);
-
- void SetAcceptLanguages(const std::string& accept_languages);
-
- protected:
- WebTestProxyBase();
- ~WebTestProxyBase();
-
- void ScheduleAnimation();
- void PostAccessibilityEvent(const blink::WebAXObject&, blink::WebAXEvent);
- void StartDragging(blink::WebLocalFrame* frame,
- const blink::WebDragData& data,
- blink::WebDragOperationsMask mask,
- const blink::WebImage& image,
- const blink::WebPoint& point);
- void DidChangeSelection(bool isEmptySelection);
- void DidChangeContents();
- void DidEndEditing();
- bool CreateView(blink::WebLocalFrame* creator,
- const blink::WebURLRequest& request,
- const blink::WebWindowFeatures& features,
- const blink::WebString& frame_name,
- blink::WebNavigationPolicy policy,
- bool suppress_opener);
- blink::WebPlugin* CreatePlugin(blink::WebLocalFrame* frame,
- const blink::WebPluginParams& params);
- void SetStatusText(const blink::WebString& text);
- void DidStopLoading();
- void ShowContextMenu(blink::WebLocalFrame* frame,
- const blink::WebContextMenuData& data);
- blink::WebUserMediaClient* GetUserMediaClient();
- void PrintPage(blink::WebLocalFrame* frame);
- blink::WebSpeechRecognizer* GetSpeechRecognizer();
- bool RequestPointerLock();
- void RequestPointerUnlock();
- bool IsPointerLocked();
- void DidFocus();
- void DidBlur();
- void SetToolTipText(const blink::WebString& text,
- blink::WebTextDirection direction);
- void DidAddMessageToConsole(const blink::WebConsoleMessage& text,
- const blink::WebString& source_name,
- unsigned source_line);
- void LoadURLExternally(blink::WebLocalFrame* frame,
- const blink::WebURLRequest& request,
- blink::WebNavigationPolicy policy,
- const blink::WebString& suggested_name);
- void DidStartProvisionalLoad(blink::WebLocalFrame*);
- void DidReceiveServerRedirectForProvisionalLoad(blink::WebLocalFrame* frame);
- bool DidFailProvisionalLoad(blink::WebLocalFrame* frame,
- const blink::WebURLError& error,
- blink::WebHistoryCommitType commit_type);
- void DidCommitProvisionalLoad(blink::WebLocalFrame* frame,
- const blink::WebHistoryItem& history_item,
- blink::WebHistoryCommitType history_type);
- void DidReceiveTitle(blink::WebLocalFrame* frame,
- const blink::WebString& title,
- blink::WebTextDirection text_direction);
- void DidChangeIcon(blink::WebLocalFrame* frame,
- blink::WebIconURL::Type icon_type);
- void DidFinishDocumentLoad(blink::WebLocalFrame* frame);
- void DidHandleOnloadEvents(blink::WebLocalFrame* frame);
- void DidFailLoad(blink::WebLocalFrame* frame,
- const blink::WebURLError& error,
- blink::WebHistoryCommitType commit_type);
- void DidFinishLoad(blink::WebLocalFrame* frame);
- void DidChangeLocationWithinPage(blink::WebLocalFrame* frame);
- void DidDetectXSS(blink::WebLocalFrame* frame,
- const blink::WebURL& insecure_url,
- bool did_block_entire_page);
- void DidDispatchPingLoader(blink::WebLocalFrame* frame,
- const blink::WebURL& url);
- void WillRequestResource(blink::WebLocalFrame* frame,
- const blink::WebCachedURLRequest& url_request);
- void WillSendRequest(blink::WebLocalFrame* frame,
- unsigned identifier,
- blink::WebURLRequest& request,
- const blink::WebURLResponse& redirect_response);
- void DidReceiveResponse(blink::WebLocalFrame* frame,
- unsigned identifier,
- const blink::WebURLResponse& response);
- void DidChangeResourcePriority(blink::WebLocalFrame* frame,
- unsigned identifier,
- const blink::WebURLRequest::Priority& priority,
- int intra_priority_value);
- void DidFinishResourceLoad(blink::WebLocalFrame* frame, unsigned identifier);
- blink::WebNavigationPolicy DecidePolicyForNavigation(
- const blink::WebFrameClient::NavigationPolicyInfo& info);
- bool WillCheckAndDispatchMessageEvent(blink::WebLocalFrame* source_frame,
- blink::WebFrame* target_frame,
- blink::WebSecurityOrigin target,
- blink::WebDOMMessageEvent event);
- void ResetInputMethod();
-
- blink::WebString acceptLanguages();
-
- private:
- template <class, typename, typename>
- friend class WebFrameTestProxy;
-
- enum CheckDoneReason {
- LoadFinished,
- MainResourceLoadFailed,
- ResourceLoadCompleted
- };
- void CheckDone(blink::WebLocalFrame* frame, CheckDoneReason reason);
- void AnimateNow();
- void DrawSelectionRect(SkCanvas* canvas);
- void DidCapturePixelsAsync(
- const base::Callback<void(const SkBitmap&)>& callback,
- const SkBitmap& bitmap);
-
- blink::WebWidget* web_widget() const { return web_widget_; }
-
- TestInterfaces* test_interfaces_;
- WebTestDelegate* delegate_;
- blink::WebWidget* web_widget_;
-
- WebTaskList task_list_;
-
- blink::WebImage drag_image_;
-
- scoped_ptr<SpellCheckClient> spellcheck_;
- scoped_ptr<MockWebUserMediaClient> user_media_client_;
-
- bool animate_scheduled_;
- std::map<unsigned, std::string> resource_identifier_map_;
-
- bool log_console_output_;
- int chooser_count_;
-
- scoped_ptr<MockCredentialManagerClient> credential_manager_client_;
- scoped_ptr<MockWebSpeechRecognizer> speech_recognizer_;
- scoped_ptr<MockScreenOrientationClient> screen_orientation_client_;
-
- std::string accept_languages_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(WebTestProxyBase);
-};
-
-// WebTestProxy is used during LayoutTests and always instantiated, at time of
-// writing with Base=RenderViewImpl. It does not directly inherit from it for
-// layering purposes.
-// The intent of that class is to wrap RenderViewImpl for tests purposes in
-// order to reduce the amount of test specific code in the production code.
-// WebTestProxy is only doing the glue between RenderViewImpl and
-// WebTestProxyBase, that means that there is no logic living in this class
-// except deciding which base class should be called (could be both).
-//
-// Examples of usage:
-// * when a fooClient has a mock implementation, WebTestProxy can override the
-// fooClient() call and have WebTestProxyBase return the mock implementation.
-// * when a value needs to be overridden by LayoutTests, WebTestProxy can
-// override RenderViewImpl's getter and call a getter from WebTestProxyBase
-// instead. In addition, WebTestProxyBase will have a public setter that
-// could be called from the TestRunner.
-template <class Base, typename T>
-class WebTestProxy : public Base, public WebTestProxyBase {
- public:
- explicit WebTestProxy(T t) : Base(t) {}
-
- // WebWidgetClient implementation.
- virtual blink::WebScreenInfo screenInfo() {
- blink::WebScreenInfo info = Base::screenInfo();
- WebTestProxyBase::GetScreenOrientationForTesting(info);
- return info;
- }
-
- // WebViewClient implementation.
- virtual void scheduleAnimation() { WebTestProxyBase::ScheduleAnimation(); }
- virtual void postAccessibilityEvent(const blink::WebAXObject& object,
- blink::WebAXEvent event) {
- WebTestProxyBase::PostAccessibilityEvent(object, event);
- Base::postAccessibilityEvent(object, event);
- }
- virtual void startDragging(blink::WebLocalFrame* frame,
- const blink::WebDragData& data,
- blink::WebDragOperationsMask mask,
- const blink::WebImage& image,
- const blink::WebPoint& point) {
- WebTestProxyBase::StartDragging(frame, data, mask, image, point);
- // Don't forward this call to Base because we don't want to do a real
- // drag-and-drop.
- }
- virtual void didChangeContents() {
- WebTestProxyBase::DidChangeContents();
- Base::didChangeContents();
- }
- virtual blink::WebView* createView(blink::WebLocalFrame* creator,
- const blink::WebURLRequest& request,
- const blink::WebWindowFeatures& features,
- const blink::WebString& frame_name,
- blink::WebNavigationPolicy policy,
- bool suppress_opener) {
- if (!WebTestProxyBase::CreateView(
- creator, request, features, frame_name, policy, suppress_opener))
- return 0;
- return Base::createView(
- creator, request, features, frame_name, policy, suppress_opener);
- }
- virtual void setStatusText(const blink::WebString& text) {
- WebTestProxyBase::SetStatusText(text);
- Base::setStatusText(text);
- }
- virtual void printPage(blink::WebLocalFrame* frame) {
- WebTestProxyBase::PrintPage(frame);
- }
- virtual blink::WebSpeechRecognizer* speechRecognizer() {
- return WebTestProxyBase::GetSpeechRecognizer();
- }
- virtual bool requestPointerLock() {
- return WebTestProxyBase::RequestPointerLock();
- }
- virtual void requestPointerUnlock() {
- WebTestProxyBase::RequestPointerUnlock();
- }
- virtual bool isPointerLocked() { return WebTestProxyBase::IsPointerLocked(); }
- virtual void didFocus() {
- WebTestProxyBase::DidFocus();
- Base::didFocus();
- }
- virtual void didBlur() {
- WebTestProxyBase::DidBlur();
- Base::didBlur();
- }
- virtual void setToolTipText(const blink::WebString& text,
- blink::WebTextDirection hint) {
- WebTestProxyBase::SetToolTipText(text, hint);
- Base::setToolTipText(text, hint);
- }
- virtual void resetInputMethod() { WebTestProxyBase::ResetInputMethod(); }
- virtual bool runFileChooser(const blink::WebFileChooserParams& params,
- blink::WebFileChooserCompletion* completion) {
- return WebTestProxyBase::RunFileChooser(params, completion);
- }
- virtual void showValidationMessage(const blink::WebRect& anchor_in_root_view,
- const blink::WebString& main_message,
- blink::WebTextDirection main_message_hint,
- const blink::WebString& sub_message,
- blink::WebTextDirection sub_message_hint) {
- base::string16 wrapped_main_text = main_message;
- base::string16 wrapped_sub_text = sub_message;
-
- Base::SetValidationMessageDirection(
- &wrapped_main_text, main_message_hint, &wrapped_sub_text, sub_message_hint);
-
- WebTestProxyBase::ShowValidationMessage(
- wrapped_main_text, wrapped_sub_text);
- }
- virtual void postSpellCheckEvent(const blink::WebString& event_name) {
- WebTestProxyBase::PostSpellCheckEvent(event_name);
- }
- virtual blink::WebString acceptLanguages() {
- return WebTestProxyBase::acceptLanguages();
- }
-
- private:
- virtual ~WebTestProxy() {}
-
- DISALLOW_COPY_AND_ASSIGN(WebTestProxy);
-};
-
-} // namespace content
-
-#endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_WEB_TEST_PROXY_H_
« no previous file with comments | « content/shell/renderer/test_runner/web_test_interfaces.cc ('k') | content/shell/renderer/test_runner/web_test_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698