OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #include "chrome/test/automation/dom_element_proxy.h" | 5 #include "chrome/test/automation/dom_element_proxy.h" |
6 | 6 |
7 #include "chrome/test/automation/javascript_execution_controller.h" | 7 #include "chrome/test/automation/javascript_execution_controller.h" |
8 #include "chrome/test/automation/javascript_message_utils.h" | 8 #include "chrome/test/automation/javascript_message_utils.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | 9 |
11 using javascript_utils::JavaScriptPrintf; | 10 using javascript_utils::JavaScriptPrintf; |
12 | 11 |
13 // JavaScriptObjectProxy methods | 12 // JavaScriptObjectProxy methods |
14 JavaScriptObjectProxy::JavaScriptObjectProxy( | 13 JavaScriptObjectProxy::JavaScriptObjectProxy( |
15 JavaScriptExecutionController* executor, int handle) | 14 JavaScriptExecutionController* executor, int handle) |
16 : executor_(executor->AsWeakPtr()), handle_(handle) {} | 15 : executor_(executor->AsWeakPtr()), handle_(handle) {} |
17 | 16 |
18 JavaScriptObjectProxy::~JavaScriptObjectProxy() { | 17 JavaScriptObjectProxy::~JavaScriptObjectProxy() { |
19 if (is_valid()) | 18 if (is_valid()) |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 } | 231 } |
233 | 232 |
234 bool DOMElementProxy::GetName(std::string* name) { | 233 bool DOMElementProxy::GetName(std::string* name) { |
235 return GetAttribute("name", name); | 234 return GetAttribute("name", name); |
236 } | 235 } |
237 | 236 |
238 bool DOMElementProxy::GetVisibility(bool* visibility) { | 237 bool DOMElementProxy::GetVisibility(bool* visibility) { |
239 return GetValue("visibility", visibility); | 238 return GetValue("visibility", visibility); |
240 } | 239 } |
241 | 240 |
242 void DOMElementProxy::EnsureFindNoElements(const By& by) { | 241 bool DOMElementProxy::DoesAttributeEventuallyMatch( |
243 std::vector<DOMElementProxyRef> elements; | |
244 ASSERT_TRUE(FindElements(by, &elements)); | |
245 ASSERT_EQ(0u, elements.size()); | |
246 } | |
247 | |
248 void DOMElementProxy::EnsureTextMatches(const std::string& expected_text) { | |
249 std::string text; | |
250 ASSERT_TRUE(GetText(&text)); | |
251 ASSERT_EQ(expected_text, text); | |
252 } | |
253 | |
254 void DOMElementProxy::EnsureInnerHTMLMatches(const std::string& expected_html) { | |
255 std::string html; | |
256 ASSERT_TRUE(GetInnerHTML(&html)); | |
257 ASSERT_EQ(expected_html, html); | |
258 } | |
259 | |
260 void DOMElementProxy::EnsureNameMatches(const std::string& expected_name) { | |
261 std::string name; | |
262 ASSERT_TRUE(GetName(&name)); | |
263 ASSERT_EQ(expected_name, name); | |
264 } | |
265 | |
266 void DOMElementProxy::EnsureVisibilityMatches(bool expected_visibility) { | |
267 bool visibility; | |
268 ASSERT_TRUE(GetVisibility(&visibility)); | |
269 ASSERT_EQ(expected_visibility, visibility); | |
270 } | |
271 | |
272 void DOMElementProxy::EnsureAttributeEventuallyMatches( | |
273 const std::string& attribute, const std::string& new_value) { | 242 const std::string& attribute, const std::string& new_value) { |
274 ASSERT_TRUE(is_valid()); | |
275 | |
276 const char* script = "domAutomation.waitForAttribute(" | 243 const char* script = "domAutomation.waitForAttribute(" |
277 "domAutomation.getObject(%s), %s, %s," | 244 "domAutomation.getObject(%s), %s, %s," |
278 "domAutomation.getCallId())"; | 245 "domAutomation.getCallId())"; |
279 if (!executor_->ExecuteAsyncJavaScript( | 246 return executor_->ExecuteAsyncJavaScript( |
280 JavaScriptPrintf(script, this->handle(), attribute, new_value))) { | 247 JavaScriptPrintf(script, this->handle(), attribute, new_value)); |
281 FAIL() << "Executing or parsing JavaScript failed"; | |
282 } | |
283 } | 248 } |
284 | 249 |
285 template <typename T> | 250 template <typename T> |
286 bool DOMElementProxy::GetValue(const std::string& type, T* value) { | 251 bool DOMElementProxy::GetValue(const std::string& type, T* value) { |
287 if (!value) { | 252 if (!value) { |
288 NOTREACHED(); | 253 NOTREACHED(); |
289 return false; | 254 return false; |
290 } | 255 } |
291 if (!is_valid()) | 256 if (!is_valid()) |
292 return false; | 257 return false; |
293 | 258 |
294 const char* script = "domAutomation.getValue(" | 259 const char* script = "domAutomation.getValue(" |
295 "domAutomation.getObject(%s), %s);"; | 260 "domAutomation.getObject(%s), %s);"; |
296 return executor_->ExecuteJavaScriptAndGetReturn( | 261 return executor_->ExecuteJavaScriptAndGetReturn( |
297 JavaScriptPrintf(script, this->handle(), type), value); | 262 JavaScriptPrintf(script, this->handle(), type), value); |
298 } | 263 } |
OLD | NEW |