OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_PUBLIC_TEST_TEST_RENDERER_HOST_H_ | 5 #ifndef CONTENT_PUBLIC_TEST_TEST_RENDERER_HOST_H_ |
6 #define CONTENT_PUBLIC_TEST_TEST_RENDERER_HOST_H_ | 6 #define CONTENT_PUBLIC_TEST_TEST_RENDERER_HOST_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "content/public/browser/render_frame_host.h" | 10 #include "content/public/browser/render_frame_host.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 // An interface and utility for driving tests of RenderFrameHost. | 42 // An interface and utility for driving tests of RenderFrameHost. |
43 class RenderFrameHostTester { | 43 class RenderFrameHostTester { |
44 public: | 44 public: |
45 // Retrieves the RenderFrameHostTester that drives the specified | 45 // Retrieves the RenderFrameHostTester that drives the specified |
46 // RenderFrameHost. The RenderFrameHost must have been created while | 46 // RenderFrameHost. The RenderFrameHost must have been created while |
47 // RenderFrameHost testing was enabled; use a | 47 // RenderFrameHost testing was enabled; use a |
48 // RenderViewHostTestEnabler instance (see below) to do this. | 48 // RenderViewHostTestEnabler instance (see below) to do this. |
49 static RenderFrameHostTester* For(RenderFrameHost* host); | 49 static RenderFrameHostTester* For(RenderFrameHost* host); |
50 | 50 |
| 51 // If the given NavigationController has a pending main frame, returns it, |
| 52 // otherwise NULL. This is an alternative to |
| 53 // WebContentsTester::GetPendingMainFrame() when your WebContents was not |
| 54 // created via a TestWebContents. |
| 55 static RenderFrameHost* GetPendingForController( |
| 56 NavigationController* controller); |
| 57 |
51 virtual ~RenderFrameHostTester() {} | 58 virtual ~RenderFrameHostTester() {} |
52 | 59 |
53 // Gives tests access to RenderFrameHostImpl::OnCreateChild. The returned | 60 // Gives tests access to RenderFrameHostImpl::OnCreateChild. The returned |
54 // RenderFrameHost is owned by the parent RenderFrameHost. | 61 // RenderFrameHost is owned by the parent RenderFrameHost. |
55 virtual RenderFrameHost* AppendChild(const std::string& frame_name) = 0; | 62 virtual RenderFrameHost* AppendChild(const std::string& frame_name) = 0; |
56 | 63 |
57 // Calls OnDidCommitProvisionalLoad on the RenderFrameHost with the given | 64 // Calls OnDidCommitProvisionalLoad on the RenderFrameHost with the given |
| 65 // information. Sets the rest of the parameters in the message to the |
| 66 // "typical" values. This is a helper function for simulating the most common |
| 67 // types of loads. |
| 68 virtual void SendNavigate(int page_id, const GURL& url) = 0; |
| 69 virtual void SendFailedNavigate(int page_id, const GURL& url) = 0; |
| 70 |
| 71 // Calls OnDidCommitProvisionalLoad on the RenderFrameHost with the given |
58 // information, including a custom PageTransition. Sets the rest of the | 72 // information, including a custom PageTransition. Sets the rest of the |
59 // parameters in the message to the "typical" values. This is a helper | 73 // parameters in the message to the "typical" values. This is a helper |
60 // function for simulating the most common types of loads. | 74 // function for simulating the most common types of loads. |
61 virtual void SendNavigateWithTransition(int page_id, | 75 virtual void SendNavigateWithTransition(int page_id, |
62 const GURL& url, | 76 const GURL& url, |
63 ui::PageTransition transition) = 0; | 77 ui::PageTransition transition) = 0; |
64 | 78 |
| 79 // If set, future loads will have |mime_type| set as the mime type. |
| 80 // If not set, the mime type will default to "text/html". |
| 81 virtual void SetContentsMimeType(const std::string& mime_type) = 0; |
| 82 |
65 // Calls OnBeforeUnloadACK on this RenderFrameHost with the given parameter. | 83 // Calls OnBeforeUnloadACK on this RenderFrameHost with the given parameter. |
66 virtual void SendBeforeUnloadACK(bool proceed) = 0; | 84 virtual void SendBeforeUnloadACK(bool proceed) = 0; |
67 | 85 |
68 // Simulates the SwapOut_ACK that fires if you commit a cross-site | 86 // Simulates the SwapOut_ACK that fires if you commit a cross-site |
69 // navigation without making any network requests. | 87 // navigation without making any network requests. |
70 virtual void SimulateSwapOutACK() = 0; | 88 virtual void SimulateSwapOutACK() = 0; |
71 }; | 89 }; |
72 | 90 |
73 // An interface and utility for driving tests of RenderViewHost. | 91 // An interface and utility for driving tests of RenderViewHost. |
74 class RenderViewHostTester { | 92 class RenderViewHostTester { |
75 public: | 93 public: |
76 // Retrieves the RenderViewHostTester that drives the specified | 94 // Retrieves the RenderViewHostTester that drives the specified |
77 // RenderViewHost. The RenderViewHost must have been created while | 95 // RenderViewHost. The RenderViewHost must have been created while |
78 // RenderViewHost testing was enabled; use a | 96 // RenderViewHost testing was enabled; use a |
79 // RenderViewHostTestEnabler instance (see below) to do this. | 97 // RenderViewHostTestEnabler instance (see below) to do this. |
80 static RenderViewHostTester* For(RenderViewHost* host); | 98 static RenderViewHostTester* For(RenderViewHost* host); |
81 | 99 |
82 // If the given WebContentsImpl has a pending RVH, returns it, otherwise NULL. | |
83 static RenderViewHost* GetPendingForController( | |
84 NavigationController* controller); | |
85 | |
86 // This removes the need to expose | 100 // This removes the need to expose |
87 // RenderViewHostImpl::is_swapped_out() outside of content. | 101 // RenderViewHostImpl::is_swapped_out() outside of content. |
88 // | 102 // |
89 // This is safe to call on any RenderViewHost, not just ones | 103 // This is safe to call on any RenderViewHost, not just ones |
90 // constructed while a RenderViewHostTestEnabler is in play. | 104 // constructed while a RenderViewHostTestEnabler is in play. |
91 static bool IsRenderViewHostSwappedOut(RenderViewHost* rvh); | 105 static bool IsRenderViewHostSwappedOut(RenderViewHost* rvh); |
92 | 106 |
93 // Calls the RenderViewHosts' private OnMessageReceived function with the | 107 // Calls the RenderViewHosts' private OnMessageReceived function with the |
94 // given message. | 108 // given message. |
95 static bool TestOnMessageReceived(RenderViewHost* rvh, | 109 static bool TestOnMessageReceived(RenderViewHost* rvh, |
96 const IPC::Message& msg); | 110 const IPC::Message& msg); |
97 | 111 |
98 // Returns whether the underlying web-page has any touch-event handlers. | 112 // Returns whether the underlying web-page has any touch-event handlers. |
99 static bool HasTouchEventHandler(RenderViewHost* rvh); | 113 static bool HasTouchEventHandler(RenderViewHost* rvh); |
100 | 114 |
101 virtual ~RenderViewHostTester() {} | 115 virtual ~RenderViewHostTester() {} |
102 | 116 |
103 // Gives tests access to RenderViewHostImpl::CreateRenderView. | 117 // Gives tests access to RenderViewHostImpl::CreateRenderView. |
104 virtual bool CreateRenderView(const base::string16& frame_name, | 118 virtual bool CreateRenderView(const base::string16& frame_name, |
105 int opener_route_id, | 119 int opener_route_id, |
106 int proxy_routing_id, | 120 int proxy_routing_id, |
107 int32 max_page_id, | 121 int32 max_page_id, |
108 bool created_with_opener) = 0; | 122 bool created_with_opener) = 0; |
109 | 123 |
110 // Calls OnMsgNavigate on the RenderViewHost with the given information, | |
111 // setting the rest of the parameters in the message to the "typical" values. | |
112 // This is a helper function for simulating the most common types of loads. | |
113 virtual void SendNavigate(int page_id, const GURL& url) = 0; | |
114 virtual void SendFailedNavigate(int page_id, const GURL& url) = 0; | |
115 | |
116 // Calls OnMsgNavigate on the RenderViewHost with the given information, | |
117 // including a custom PageTransition. Sets the rest of the | |
118 // parameters in the message to the "typical" values. This is a helper | |
119 // function for simulating the most common types of loads. | |
120 virtual void SendNavigateWithTransition(int page_id, const GURL& url, | |
121 ui::PageTransition transition) = 0; | |
122 | |
123 // If set, future loads will have |mime_type| set as the mime type. | |
124 // If not set, the mime type will default to "text/html". | |
125 virtual void SetContentsMimeType(const std::string& mime_type) = 0; | |
126 | |
127 // Makes the WasHidden/WasShown calls to the RenderWidget that | 124 // Makes the WasHidden/WasShown calls to the RenderWidget that |
128 // tell it it has been hidden or restored from having been hidden. | 125 // tell it it has been hidden or restored from having been hidden. |
129 virtual void SimulateWasHidden() = 0; | 126 virtual void SimulateWasHidden() = 0; |
130 virtual void SimulateWasShown() = 0; | 127 virtual void SimulateWasShown() = 0; |
131 }; | 128 }; |
132 | 129 |
133 // You can instantiate only one class like this at a time. During its | 130 // You can instantiate only one class like this at a time. During its |
134 // lifetime, RenderViewHost and RenderFrameHost objects created may be used via | 131 // lifetime, RenderViewHost and RenderFrameHost objects created may be used via |
135 // RenderViewHostTester and RenderFrameHostTester respectively. | 132 // RenderViewHostTester and RenderFrameHostTester respectively. |
136 class RenderViewHostTestEnabler { | 133 class RenderViewHostTestEnabler { |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 | 239 |
243 int thread_bundle_options_; | 240 int thread_bundle_options_; |
244 scoped_ptr<TestBrowserThreadBundle> thread_bundle_; | 241 scoped_ptr<TestBrowserThreadBundle> thread_bundle_; |
245 | 242 |
246 DISALLOW_COPY_AND_ASSIGN(RenderViewHostTestHarness); | 243 DISALLOW_COPY_AND_ASSIGN(RenderViewHostTestHarness); |
247 }; | 244 }; |
248 | 245 |
249 } // namespace content | 246 } // namespace content |
250 | 247 |
251 #endif // CONTENT_PUBLIC_TEST_TEST_RENDERER_HOST_H_ | 248 #endif // CONTENT_PUBLIC_TEST_TEST_RENDERER_HOST_H_ |
OLD | NEW |