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_BROWSER_TEST_UTILS_H_ | 5 #ifndef CONTENT_PUBLIC_TEST_BROWSER_TEST_UTILS_H_ |
6 #define CONTENT_PUBLIC_TEST_BROWSER_TEST_UTILS_H_ | 6 #define CONTENT_PUBLIC_TEST_BROWSER_TEST_UTILS_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 // native key code: 0x001e (for Windows). | 150 // native key code: 0x001e (for Windows). |
151 // native key code: 0x0026 (for Linux). | 151 // native key code: 0x0026 (for Linux). |
152 void SimulateKeyPressWithCode(WebContents* web_contents, | 152 void SimulateKeyPressWithCode(WebContents* web_contents, |
153 ui::KeyboardCode key_code, | 153 ui::KeyboardCode key_code, |
154 const char* code, | 154 const char* code, |
155 bool control, | 155 bool control, |
156 bool shift, | 156 bool shift, |
157 bool alt, | 157 bool alt, |
158 bool command); | 158 bool command); |
159 | 159 |
160 namespace internal { | |
161 // Allow ExecuteScript* methods to target either a WebContents or a | 160 // Allow ExecuteScript* methods to target either a WebContents or a |
162 // RenderFrameHost. Targetting a WebContents means executing the script in the | 161 // RenderFrameHost. Targetting a WebContents means executing the script in the |
163 // RenderFrameHost returned by WebContents::GetMainFrame(), which is the | 162 // RenderFrameHost returned by WebContents::GetMainFrame(), which is the |
164 // main frame. Pass a specific RenderFrameHost to target it. | 163 // main frame. Pass a specific RenderFrameHost to target it. |
165 class ToRenderFrameHost { | 164 class ToRenderFrameHost { |
166 public: | 165 public: |
167 ToRenderFrameHost(WebContents* web_contents); | 166 ToRenderFrameHost(WebContents* web_contents); |
168 ToRenderFrameHost(RenderViewHost* render_view_host); | 167 ToRenderFrameHost(RenderViewHost* render_view_host); |
169 ToRenderFrameHost(RenderFrameHost* render_frame_host); | 168 ToRenderFrameHost(RenderFrameHost* render_frame_host); |
170 | 169 |
171 RenderFrameHost* render_frame_host() const { return render_frame_host_; } | 170 RenderFrameHost* render_frame_host() const { return render_frame_host_; } |
172 | 171 |
173 private: | 172 private: |
174 RenderFrameHost* render_frame_host_; | 173 RenderFrameHost* render_frame_host_; |
175 }; | 174 }; |
176 } // namespace internal | |
177 | 175 |
178 // Executes the passed |script| in the specified frame. The |script| should not | 176 // Executes the passed |script| in the specified frame. The |script| should not |
179 // invoke domAutomationController.send(); otherwise, your test will hang or be | 177 // invoke domAutomationController.send(); otherwise, your test will hang or be |
180 // flaky. If you want to extract a result, use one of the below functions. | 178 // flaky. If you want to extract a result, use one of the below functions. |
181 // Returns true on success. | 179 // Returns true on success. |
182 bool ExecuteScript(const internal::ToRenderFrameHost& adapter, | 180 bool ExecuteScript(const ToRenderFrameHost& adapter, |
183 const std::string& script) WARN_UNUSED_RESULT; | 181 const std::string& script) WARN_UNUSED_RESULT; |
184 | 182 |
185 // The following methods executes the passed |script| in the specified frame and | 183 // The following methods executes the passed |script| in the specified frame and |
186 // sets |result| to the value passed to "window.domAutomationController.send" by | 184 // sets |result| to the value passed to "window.domAutomationController.send" by |
187 // the executed script. They return true on success, false if the script | 185 // the executed script. They return true on success, false if the script |
188 // execution failed or did not evaluate to the expected type. | 186 // execution failed or did not evaluate to the expected type. |
189 bool ExecuteScriptAndExtractInt(const internal::ToRenderFrameHost& adapter, | 187 bool ExecuteScriptAndExtractInt(const ToRenderFrameHost& adapter, |
190 const std::string& script, | 188 const std::string& script, |
191 int* result) WARN_UNUSED_RESULT; | 189 int* result) WARN_UNUSED_RESULT; |
192 bool ExecuteScriptAndExtractBool(const internal::ToRenderFrameHost& adapter, | 190 bool ExecuteScriptAndExtractBool(const ToRenderFrameHost& adapter, |
193 const std::string& script, | 191 const std::string& script, |
194 bool* result) WARN_UNUSED_RESULT; | 192 bool* result) WARN_UNUSED_RESULT; |
195 bool ExecuteScriptAndExtractString(const internal::ToRenderFrameHost& adapter, | 193 bool ExecuteScriptAndExtractString(const ToRenderFrameHost& adapter, |
196 const std::string& script, | 194 const std::string& script, |
197 std::string* result) WARN_UNUSED_RESULT; | 195 std::string* result) WARN_UNUSED_RESULT; |
198 | 196 |
199 // Walks the frame tree of the specified WebContents and returns the sole frame | 197 // Walks the frame tree of the specified WebContents and returns the sole frame |
200 // that matches the specified predicate function. This function will DCHECK if | 198 // that matches the specified predicate function. This function will DCHECK if |
201 // no frames match the specified predicate, or if more than one frame matches. | 199 // no frames match the specified predicate, or if more than one frame matches. |
202 RenderFrameHost* FrameMatchingPredicate( | 200 RenderFrameHost* FrameMatchingPredicate( |
203 WebContents* web_contents, | 201 WebContents* web_contents, |
204 const base::Callback<bool(RenderFrameHost*)>& predicate); | 202 const base::Callback<bool(RenderFrameHost*)>& predicate); |
205 | 203 |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 | 428 |
431 int frames_to_wait_; | 429 int frames_to_wait_; |
432 base::Closure quit_; | 430 base::Closure quit_; |
433 | 431 |
434 DISALLOW_COPY_AND_ASSIGN(FrameWatcher); | 432 DISALLOW_COPY_AND_ASSIGN(FrameWatcher); |
435 }; | 433 }; |
436 | 434 |
437 } // namespace content | 435 } // namespace content |
438 | 436 |
439 #endif // CONTENT_PUBLIC_TEST_BROWSER_TEST_UTILS_H_ | 437 #endif // CONTENT_PUBLIC_TEST_BROWSER_TEST_UTILS_H_ |
OLD | NEW |