| Index: chrome/test/webdriver/commands/mouse_commands.cc
|
| diff --git a/chrome/test/webdriver/commands/mouse_commands.cc b/chrome/test/webdriver/commands/mouse_commands.cc
|
| index 70339b8e1420d80e9de58c6ca594cba749631abf..288ebcbb6e96bc224d59f147e1f5b036704fba19 100644
|
| --- a/chrome/test/webdriver/commands/mouse_commands.cc
|
| +++ b/chrome/test/webdriver/commands/mouse_commands.cc
|
| @@ -6,13 +6,13 @@
|
|
|
| #include "base/values.h"
|
| #include "chrome/common/automation_constants.h"
|
| +#include "chrome/test/automation/value_conversion_util.h"
|
| #include "chrome/test/webdriver/commands/response.h"
|
| #include "chrome/test/webdriver/session.h"
|
| -#include "chrome/test/webdriver/utility_functions.h"
|
| #include "chrome/test/webdriver/web_element_id.h"
|
| +#include "chrome/test/webdriver/webdriver_basic_types.h"
|
| #include "chrome/test/webdriver/webdriver_error.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "ui/gfx/size.h"
|
| +#include "chrome/test/webdriver/webdriver_util.h"
|
|
|
| namespace {
|
|
|
| @@ -46,29 +46,23 @@ void MoveAndClickCommand::ExecutePost(Response* response) {
|
|
|
| if (tag_name == "option") {
|
| const char* kCanOptionBeToggledScript =
|
| - "return (function(option) {"
|
| + "function(option) {"
|
| " var select = option.parentElement;"
|
| " if (!select || select.tagName.toLowerCase() != 'select')"
|
| " throw new Error('Option element is not in a select');"
|
| " return select.multiple;"
|
| - "}).apply(null, arguments);";
|
| - ListValue args;
|
| - args.Append(element.ToValue());
|
| - Value* value = NULL;
|
| - error = session_->ExecuteScript(
|
| - session_->current_target(), kCanOptionBeToggledScript, &args, &value);
|
| + "}";
|
| + bool can_be_toggled;
|
| + error = session_->ExecuteScriptAndParse(
|
| + session_->current_target(),
|
| + kCanOptionBeToggledScript,
|
| + "canOptionBeToggled",
|
| + CreateListValueFrom(element),
|
| + CreateDirectValueParser(&can_be_toggled));
|
| if (error) {
|
| response->SetError(error);
|
| return;
|
| }
|
| - scoped_ptr<Value> scoped_value(value);
|
| - bool can_be_toggled;
|
| - if (!value->GetAsBoolean(&can_be_toggled)) {
|
| - response->SetError(
|
| - new Error(kUnknownError, "canOptionBeToggled returned non-boolean: " +
|
| - JsonStringify(value)));
|
| - return;
|
| - }
|
|
|
| if (can_be_toggled) {
|
| error = session_->ToggleOptionElement(
|
| @@ -78,7 +72,7 @@ void MoveAndClickCommand::ExecutePost(Response* response) {
|
| session_->current_target(), element, true);
|
| }
|
| } else {
|
| - gfx::Point location;
|
| + Point location;
|
| error = session_->GetClickableLocation(element, &location);
|
| if (!error)
|
| error = session_->MouseMoveAndClick(location, automation::kLeftButton);
|
| @@ -101,7 +95,7 @@ bool HoverCommand::DoesPost() {
|
|
|
| void HoverCommand::ExecutePost(Response* response) {
|
| Error* error = NULL;
|
| - gfx::Point location;
|
| + Point location;
|
| error = session_->GetClickableLocation(element, &location);
|
| if (!error)
|
| error = session_->MouseMove(location);
|
| @@ -136,14 +130,14 @@ bool DragCommand::DoesPost() {
|
|
|
| void DragCommand::ExecutePost(Response* response) {
|
| Error* error = NULL;
|
| - gfx::Point drag_from;
|
| + Point drag_from;
|
| error = session_->GetClickableLocation(element, &drag_from);
|
| if (error) {
|
| response->SetError(error);
|
| return;
|
| }
|
|
|
| - gfx::Point drag_to(drag_from);
|
| + Point drag_to(drag_from);
|
| drag_to.Offset(drag_x_, drag_y_);
|
| if (drag_to.x() < 0 || drag_to.y() < 0)
|
| error = new Error(kBadRequest, "Invalid (x,y) coordinates");
|
| @@ -199,7 +193,7 @@ bool MoveToCommand::Init(Response* const response) {
|
| }
|
|
|
| void MoveToCommand::ExecutePost(Response* const response) {
|
| - gfx::Point location;
|
| + Point location;
|
| Error* error;
|
|
|
| if (has_element_) {
|
| @@ -221,7 +215,7 @@ void MoveToCommand::ExecutePost(Response* const response) {
|
| DCHECK(has_element_);
|
|
|
| // If not, calculate the half of the element size and translate by it.
|
| - gfx::Size size;
|
| + Size size;
|
| error = session_->GetElementSize(session_->current_target(),
|
| element_, &size);
|
| if (error) {
|
|
|