1 // Copyright 2017 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 #ifndef CONTENT_TEST_MOCK_RENDER_WIDGET_HOST_DELEGATE_H_ 6 #define CONTENT_TEST_MOCK_RENDER_WIDGET_HOST_DELEGATE_H_ 7 8 #include <memory> 9 10 #include "base/macros.h" 11 #include "content/browser/renderer_host/render_widget_host_delegate.h" 12 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" 13 #include "content/browser/renderer_host/text_input_manager.h" 14 #include "content/public/browser/keyboard_event_processing_result.h" 15 #include "content/test/stub_render_view_host_delegate_view.h" 16 17 namespace content { 18 19 class FrameTree; 20 class RenderWidgetHostImpl; 21 22 class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { 23 public: 24 MockRenderWidgetHostDelegate(); 25 ~MockRenderWidgetHostDelegate() override; 26 last_event()27 const NativeWebKeyboardEvent* last_event() const { return last_event_.get(); } set_widget_host(RenderWidgetHostImpl * rwh)28 void set_widget_host(RenderWidgetHostImpl* rwh) { rwh_ = rwh; } set_is_fullscreen(bool is_fullscreen)29 void set_is_fullscreen(bool is_fullscreen) { is_fullscreen_ = is_fullscreen; } set_focused_widget(RenderWidgetHostImpl * focused_widget)30 void set_focused_widget(RenderWidgetHostImpl* focused_widget) { 31 focused_widget_ = focused_widget; 32 } set_pre_handle_keyboard_event_result(KeyboardEventProcessingResult result)33 void set_pre_handle_keyboard_event_result( 34 KeyboardEventProcessingResult result) { 35 pre_handle_keyboard_event_result_ = result; 36 } set_frame_tree(FrameTree * frame_tree)37 void set_frame_tree(FrameTree* frame_tree) { frame_tree_ = frame_tree; } set_should_ignore_input_events(bool ignore)38 void set_should_ignore_input_events(bool ignore) { 39 should_ignore_input_events_ = ignore; 40 } 41 void CreateInputEventRouter(); 42 43 // RenderWidgetHostDelegate: 44 void ResizeDueToAutoResize(RenderWidgetHostImpl* render_widget_host, 45 const gfx::Size& new_size) override; 46 KeyboardEventProcessingResult PreHandleKeyboardEvent( 47 const NativeWebKeyboardEvent& event) override; 48 void ExecuteEditCommand(const std::string& command, 49 const base::Optional<base::string16>& value) override; 50 void Undo() override; 51 void Redo() override; 52 void Cut() override; 53 void Copy() override; 54 void Paste() override; 55 void PasteAndMatchStyle() override; 56 void SelectAll() override; 57 RenderWidgetHostInputEventRouter* GetInputEventRouter() override; 58 RenderWidgetHostImpl* GetFocusedRenderWidgetHost( 59 RenderWidgetHostImpl* widget_host) override; 60 void SendScreenRects() override; 61 TextInputManager* GetTextInputManager() override; 62 bool IsFullscreen() override; 63 RenderViewHostDelegateView* GetDelegateView() override; 64 FrameTree* GetFrameTree() override; 65 bool ShouldIgnoreInputEvents() override; 66 67 private: 68 std::unique_ptr<NativeWebKeyboardEvent> last_event_; 69 RenderWidgetHostImpl* rwh_ = nullptr; 70 std::unique_ptr<RenderWidgetHostInputEventRouter> rwh_input_event_router_; 71 bool is_fullscreen_ = false; 72 TextInputManager text_input_manager_; 73 RenderWidgetHostImpl* focused_widget_ = nullptr; 74 KeyboardEventProcessingResult pre_handle_keyboard_event_result_ = 75 KeyboardEventProcessingResult::NOT_HANDLED; 76 StubRenderViewHostDelegateView rvh_delegate_view_; 77 FrameTree* frame_tree_ = nullptr; 78 bool should_ignore_input_events_ = false; 79 80 DISALLOW_COPY_AND_ASSIGN(MockRenderWidgetHostDelegate); 81 }; 82 83 } // namespace content 84 85 #endif // CONTENT_TEST_MOCK_RENDER_WIDGET_HOST_DELEGATE_H_ 86