| 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
|
| deleted file mode 100644
|
| index 6cd75d50f5ad7e8c05b1d34a4cdabb1d0bd878dc..0000000000000000000000000000000000000000
|
| --- a/chrome/test/webdriver/commands/mouse_commands.cc
|
| +++ /dev/null
|
| @@ -1,315 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/test/webdriver/commands/mouse_commands.h"
|
| -
|
| -#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/webdriver_basic_types.h"
|
| -#include "chrome/test/webdriver/webdriver_element_id.h"
|
| -#include "chrome/test/webdriver/webdriver_error.h"
|
| -#include "chrome/test/webdriver/webdriver_session.h"
|
| -#include "chrome/test/webdriver/webdriver_util.h"
|
| -
|
| -namespace {
|
| -
|
| -const int kLeftButton = 0;
|
| -const int kMiddleButton = 1;
|
| -const int kRightButton = 2;
|
| -
|
| -} // namespace
|
| -
|
| -namespace webdriver {
|
| -
|
| -MoveAndClickCommand::MoveAndClickCommand(
|
| - const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : WebElementCommand(path_segments, parameters) {}
|
| -
|
| -MoveAndClickCommand::~MoveAndClickCommand() {}
|
| -
|
| -bool MoveAndClickCommand::DoesPost() {
|
| - return true;
|
| -}
|
| -
|
| -void MoveAndClickCommand::ExecutePost(Response* response) {
|
| - std::string tag_name;
|
| - Error* error = session_->GetElementTagName(
|
| - session_->current_target(), element, &tag_name);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -
|
| - if (tag_name == "option") {
|
| - const char* kCanOptionBeToggledScript =
|
| - "function(option) {"
|
| - " for (var parent = option.parentElement;"
|
| - " parent;"
|
| - " parent = parent.parentElement) {"
|
| - " if (parent.tagName.toLowerCase() == 'select') {"
|
| - " return parent.multiple;"
|
| - " }"
|
| - " }"
|
| - " throw new Error('Option element is not in a select');"
|
| - "}";
|
| - bool can_be_toggled;
|
| - error = session_->ExecuteScriptAndParse(
|
| - session_->current_target(),
|
| - kCanOptionBeToggledScript,
|
| - "canOptionBeToggled",
|
| - CreateListValueFrom(element),
|
| - CreateDirectValueParser(&can_be_toggled));
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -
|
| - if (can_be_toggled) {
|
| - error = session_->ToggleOptionElement(
|
| - session_->current_target(), element);
|
| - } else {
|
| - error = session_->SetOptionElementSelected(
|
| - session_->current_target(), element, true);
|
| - }
|
| - } else {
|
| - Point location;
|
| - error = session_->GetClickableLocation(element, &location);
|
| - if (!error)
|
| - error = session_->MouseMoveAndClick(location, automation::kLeftButton);
|
| - }
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -HoverCommand::HoverCommand(const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : WebElementCommand(path_segments, parameters) {}
|
| -
|
| -HoverCommand::~HoverCommand() {}
|
| -
|
| -bool HoverCommand::DoesPost() {
|
| - return true;
|
| -}
|
| -
|
| -void HoverCommand::ExecutePost(Response* response) {
|
| - Error* error = NULL;
|
| - Point location;
|
| - error = session_->GetClickableLocation(element, &location);
|
| - if (!error)
|
| - error = session_->MouseMove(location);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -DragCommand::DragCommand(const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : WebElementCommand(path_segments, parameters) {}
|
| -
|
| -DragCommand::~DragCommand() {}
|
| -
|
| -bool DragCommand::Init(Response* const response) {
|
| - if (!WebElementCommand::Init(response))
|
| - return false;
|
| -
|
| - if (!GetIntegerParameter("x", &drag_x_) ||
|
| - !GetIntegerParameter("y", &drag_y_)) {
|
| - response->SetError(new Error(kBadRequest, "Missing (x,y) coordinates"));
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool DragCommand::DoesPost() {
|
| - return true;
|
| -}
|
| -
|
| -void DragCommand::ExecutePost(Response* response) {
|
| - Error* error = NULL;
|
| - Point drag_from;
|
| - error = session_->GetClickableLocation(element, &drag_from);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -
|
| - 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");
|
| - if (!error)
|
| - error = session_->MouseDrag(drag_from, drag_to);
|
| -
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -AdvancedMouseCommand::AdvancedMouseCommand(
|
| - const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : WebDriverCommand(path_segments, parameters) {}
|
| -
|
| -AdvancedMouseCommand::~AdvancedMouseCommand() {}
|
| -
|
| -bool AdvancedMouseCommand::DoesPost() {
|
| - return true;
|
| -}
|
| -
|
| -MoveToCommand::MoveToCommand(
|
| - const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : AdvancedMouseCommand(path_segments, parameters), has_element_(false),
|
| - has_offset_(false), x_offset_(0), y_offset_(0) {}
|
| -
|
| -MoveToCommand::~MoveToCommand() {}
|
| -
|
| -bool MoveToCommand::Init(Response* const response) {
|
| - if (!AdvancedMouseCommand::Init(response))
|
| - return false;
|
| -
|
| - std::string element_name;
|
| - has_element_ = GetStringParameter("element", &element_name);
|
| -
|
| - if (has_element_) {
|
| - element_ = ElementId(element_name);
|
| - }
|
| -
|
| - has_offset_ = GetIntegerParameter("xoffset", &x_offset_) &&
|
| - GetIntegerParameter("yoffset", &y_offset_);
|
| -
|
| - if (!has_element_ && !has_offset_) {
|
| - response->SetError(new Error(
|
| - kBadRequest, "Invalid command arguments"));
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -void MoveToCommand::ExecutePost(Response* const response) {
|
| - Point location;
|
| - Error* error;
|
| -
|
| - if (has_element_) {
|
| - // If an element is specified, calculate the coordinate.
|
| - error = session_->GetElementLocationInView(element_, &location);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| - } else {
|
| - // If not, use the current mouse position.
|
| - location = session_->get_mouse_position();
|
| - }
|
| -
|
| - if (has_offset_) {
|
| - // If an offset is specified, translate by the offset.
|
| - location.Offset(x_offset_, y_offset_);
|
| - } else {
|
| - DCHECK(has_element_);
|
| -
|
| - // If not, calculate the half of the element size and translate by it.
|
| - Size size;
|
| - error = session_->GetElementSize(session_->current_target(),
|
| - element_, &size);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -
|
| - location.Offset(size.width() / 2, size.height() / 2);
|
| - }
|
| -
|
| - error = session_->MouseMove(location);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -ClickCommand::ClickCommand(const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : AdvancedMouseCommand(path_segments, parameters) {}
|
| -
|
| -ClickCommand::~ClickCommand() {}
|
| -
|
| -bool ClickCommand::Init(Response* const response) {
|
| - if (!AdvancedMouseCommand::Init(response))
|
| - return false;
|
| -
|
| - if (!GetIntegerParameter("button", &button_)) {
|
| - response->SetError(new Error(kBadRequest, "Missing mouse button argument"));
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -void ClickCommand::ExecutePost(Response* const response) {
|
| - // Convert the button argument to a constant value in automation.
|
| - automation::MouseButton button;
|
| - if (button_ == kLeftButton) {
|
| - button = automation::kLeftButton;
|
| - } else if (button_ == kMiddleButton) {
|
| - button = automation::kMiddleButton;
|
| - } else if (button_ == kRightButton) {
|
| - button = automation::kRightButton;
|
| - } else {
|
| - response->SetError(new Error(kBadRequest, "Invalid mouse button"));
|
| - return;
|
| - }
|
| -
|
| - Error* error = session_->MouseClick(button);
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -ButtonDownCommand::ButtonDownCommand(
|
| - const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : AdvancedMouseCommand(path_segments, parameters) {}
|
| -
|
| -ButtonDownCommand::~ButtonDownCommand() {}
|
| -
|
| -void ButtonDownCommand::ExecutePost(Response* const response) {
|
| - session_->MouseButtonDown();
|
| -}
|
| -
|
| -ButtonUpCommand::ButtonUpCommand(const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : AdvancedMouseCommand(path_segments, parameters) {}
|
| -
|
| -ButtonUpCommand::~ButtonUpCommand() {}
|
| -
|
| -void ButtonUpCommand::ExecutePost(Response* const response) {
|
| - session_->MouseButtonUp();
|
| -}
|
| -
|
| -DoubleClickCommand::DoubleClickCommand(
|
| - const std::vector<std::string>& path_segments,
|
| - const DictionaryValue* const parameters)
|
| - : AdvancedMouseCommand(path_segments, parameters) {}
|
| -
|
| -DoubleClickCommand::~DoubleClickCommand() {}
|
| -
|
| -void DoubleClickCommand::ExecutePost(Response* const response) {
|
| - Error* error = session_->MouseDoubleClick();
|
| - if (error) {
|
| - response->SetError(error);
|
| - return;
|
| - }
|
| -}
|
| -
|
| -} // namespace webdriver
|
|
|