Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1748)

Unified Diff: content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc

Issue 2336803003: Make SyntheticPointerAction to flush the pointer action sequence (Closed)
Patch Set: controller Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
diff --git a/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc b/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
index 48694180c123a2037fe64616d028b5e6d5b56e05..3ef3d6f0fa9e45ec9a7f3be6fe4ed720b36ba2cf 100644
--- a/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
+++ b/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
@@ -33,7 +33,6 @@ WebTouchPoint::State ToWebTouchPointState(
return WebTouchPoint::StateReleased;
case SyntheticPointerActionParams::PointerActionType::IDLE:
return WebTouchPoint::StateStationary;
- case SyntheticPointerActionParams::PointerActionType::FINISH:
case SyntheticPointerActionParams::PointerActionType::NOT_INITIALIZED:
NOTREACHED()
<< "Invalid SyntheticPointerActionParams::PointerActionType.";
@@ -53,7 +52,6 @@ WebInputEvent::Type ToWebMouseEventType(
case SyntheticPointerActionParams::PointerActionType::RELEASE:
return WebInputEvent::MouseUp;
case SyntheticPointerActionParams::PointerActionType::IDLE:
- case SyntheticPointerActionParams::PointerActionType::FINISH:
case SyntheticPointerActionParams::PointerActionType::NOT_INITIALIZED:
NOTREACHED()
<< "Invalid SyntheticPointerActionParams::PointerActionType.";
@@ -102,7 +100,7 @@ class MockSyntheticPointerTouchActionTarget
DCHECK(WebInputEvent::isTouchEventType(event.type));
const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
type_ = touch_event.type;
- for (size_t i = 0; i < touch_event.touchesLength; ++i) {
+ for (size_t i = 0; i < WebTouchEvent::kTouchesLengthCap; ++i) {
indexes_[i] = touch_event.touches[i].id;
positions_[i] = gfx::PointF(touch_event.touches[i].position);
states_[i] = touch_event.touches[i].state;
@@ -150,7 +148,8 @@ class MockSyntheticPointerTouchActionTarget
testing::AssertionResult result = testing::AssertionSuccess();
for (size_t i = 0; i < params_list.size(); ++i) {
- result = SyntheticTouchActionDispatchedCorrectly(params_list[i], i);
+ result = SyntheticTouchActionDispatchedCorrectly(params_list[i],
+ params_list[i].index());
if (result == testing::AssertionFailure())
return result;
}
@@ -187,29 +186,28 @@ class MockSyntheticPointerMouseActionTarget
testing::AssertionResult SyntheticMouseActionDispatchedCorrectly(
const SyntheticPointerActionParams& param,
int click_count) {
- if (type() != ToWebMouseEventType(param.pointer_action_type())) {
+ if (type_ != ToWebMouseEventType(param.pointer_action_type())) {
return testing::AssertionFailure()
- << "Pointer type was " << WebInputEvent::GetName(type())
+ << "Pointer type was " << WebInputEvent::GetName(type_)
<< ", expected " << WebInputEvent::GetName(ToWebMouseEventType(
- param.pointer_action_type()))
- << ".";
+ param.pointer_action_type())) << ".";
}
- if (clickCount() != click_count) {
+ if (clickCount_ != click_count) {
return testing::AssertionFailure() << "Pointer click count was "
- << clickCount() << ", expected "
+ << clickCount_ << ", expected "
<< click_count << ".";
}
- if (clickCount() == 1 && button() != WebMouseEvent::Button::Left) {
+ if (clickCount_ == 1 && button_ != WebMouseEvent::Button::Left) {
return testing::AssertionFailure()
- << "Pointer button was " << (int)button() << ", expected "
+ << "Pointer button was " << (int)button_ << ", expected "
<< (int)WebMouseEvent::Button::Left << ".";
}
- if (clickCount() == 0 && button() != WebMouseEvent::Button::NoButton) {
+ if (clickCount_ == 0 && button_ != WebMouseEvent::Button::NoButton) {
return testing::AssertionFailure()
- << "Pointer button was " << (int)button() << ", expected "
+ << "Pointer button was " << (int)button_ << ", expected "
<< (int)WebMouseEvent::Button::NoButton << ".";
}
@@ -217,9 +215,9 @@ class MockSyntheticPointerMouseActionTarget
SyntheticPointerActionParams::PointerActionType::PRESS ||
param.pointer_action_type() ==
SyntheticPointerActionParams::PointerActionType::MOVE) &&
- position() != param.position()) {
+ position_ != param.position()) {
return testing::AssertionFailure()
- << "Pointer position was " << position().ToString()
+ << "Pointer position was " << position_.ToString()
<< ", expected " << param.position().ToString() << ".";
}
return testing::AssertionSuccess();
@@ -230,10 +228,6 @@ class MockSyntheticPointerMouseActionTarget
return SyntheticGestureParams::MOUSE_INPUT;
}
- gfx::PointF position() const { return position_; }
- int clickCount() const { return clickCount_; }
- WebMouseEvent::Button button() const { return button_; }
-
private:
gfx::PointF position_;
int clickCount_;
@@ -243,7 +237,7 @@ class MockSyntheticPointerMouseActionTarget
class SyntheticPointerActionTest : public testing::Test {
public:
SyntheticPointerActionTest() {
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ params_ = SyntheticPointerActionListParams();
num_success_ = 0;
num_failure_ = 0;
}
@@ -258,13 +252,11 @@ class SyntheticPointerActionTest : public testing::Test {
}
void ForwardSyntheticPointerAction() {
- pointer_action_.reset(new SyntheticPointerAction(
- action_param_list_.get(), synthetic_pointer_driver_.get()));
-
SyntheticGesture::Result result = pointer_action_->ForwardInputEvents(
base::TimeTicks::Now(), target_.get());
- if (result == SyntheticGesture::GESTURE_FINISHED)
+ if (result == SyntheticGesture::GESTURE_FINISHED ||
+ result == SyntheticGesture::GESTURE_RUNNING)
num_success_++;
else
num_failure_++;
@@ -275,202 +267,201 @@ class SyntheticPointerActionTest : public testing::Test {
std::unique_ptr<MockSyntheticPointerActionTarget> target_;
std::unique_ptr<SyntheticGesture> pointer_action_;
std::unique_ptr<SyntheticPointerDriver> synthetic_pointer_driver_;
- std::unique_ptr<std::vector<SyntheticPointerActionParams>> action_param_list_;
+ SyntheticPointerActionListParams params_;
};
TEST_F(SyntheticPointerActionTest, PointerTouchAction) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerTouchActionTarget>();
// Send a touch press for one finger.
- SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::TOUCH_INPUT);
- params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
- ForwardSyntheticPointerAction();
+ SyntheticPointerActionParams param1 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param1.set_index(0);
+ param1.set_position(gfx::PointF(54, 89));
+ SyntheticPointerActionListParams::ParamList param_list1;
+ param_list1.push_back(param1);
+ params_.PushPointerActionParamsList(param_list1);
+
+ // Send a touch move for the first finger and a touch press for the second
+ // finger.
+ param1.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::MOVE);
+ param1.set_position(gfx::PointF(133, 156));
+ SyntheticPointerActionParams param2 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param2.set_index(1);
+ param2.set_position(gfx::PointF(79, 132));
+ SyntheticPointerActionListParams::ParamList param_list2;
+ param_list2.push_back(param1);
+ param_list2.push_back(param2);
+ params_.PushPointerActionParamsList(param_list2);
+ // Send a touch move for the second finger.
+ param1.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::IDLE);
+ param2.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::MOVE);
+ param2.set_position(gfx::PointF(87, 253));
+ SyntheticPointerActionListParams::ParamList param_list3;
+ param_list3.push_back(param1);
+ param_list3.push_back(param2);
+ params_.PushPointerActionParamsList(param_list3);
+
+ // Send touch releases for both fingers.
+ SyntheticPointerActionListParams::ParamList param_list4;
+ param1.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::RELEASE);
+ param2.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::RELEASE);
+ param_list4.push_back(param1);
+ param_list4.push_back(param2);
+ params_.PushPointerActionParamsList(param_list4);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+
+ ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
static_cast<MockSyntheticPointerTouchActionTarget*>(target_.get());
EXPECT_EQ(1, num_success_);
EXPECT_EQ(0, num_failure_);
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list1));
- // Send a touch move for the first finger and a touch press for the second
- // finger.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::MOVE);
- action_param_list_->at(0).set_position(gfx::PointF(133, 156));
- SyntheticPointerActionParams params1 = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::TOUCH_INPUT);
- params1.set_position(gfx::PointF(79, 132));
- action_param_list_->push_back(params1);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(2, num_success_);
EXPECT_EQ(0, num_failure_);
// The type of the SyntheticWebTouchEvent is the action of the last finger.
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list2));
- // Send a touch move for the second finger.
- action_param_list_->at(1).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::MOVE);
- action_param_list_->at(1).set_position(gfx::PointF(87, 253));
ForwardSyntheticPointerAction();
-
EXPECT_EQ(3, num_success_);
EXPECT_EQ(0, num_failure_);
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchMove);
EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list3));
- // Send touch releases for both fingers.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::RELEASE);
- action_param_list_->at(1).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::RELEASE);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(4, num_success_);
EXPECT_EQ(0, num_failure_);
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchEnd);
EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list4));
}
-TEST_F(SyntheticPointerActionTest, PointerTouchActionWithIdle) {
+TEST_F(SyntheticPointerActionTest, PointerTouchActionsMultiPressRelease) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerTouchActionTarget>();
int count_success = 1;
+
// Send a touch press for one finger.
- SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::TOUCH_INPUT);
- params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
- ForwardSyntheticPointerAction();
+ SyntheticPointerActionParams param1 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param1.set_index(0);
+ param1.set_position(gfx::PointF(54, 89));
+ SyntheticPointerActionListParams::ParamList param_list1;
+ param_list1.push_back(param1);
+ params_.PushPointerActionParamsList(param_list1);
+
+ SyntheticPointerActionParams param2 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param2.set_index(1);
+ param2.set_position(gfx::PointF(123, 69));
+ param1.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::IDLE);
+ SyntheticPointerActionListParams::ParamList param_list2;
+ param_list2.push_back(param1);
+ param_list2.push_back(param2);
+
+ param2.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::RELEASE);
+ SyntheticPointerActionListParams::ParamList param_list3;
+ param_list3.push_back(param1);
+ param_list3.push_back(param2);
+ for (int i = 0; i < 3; ++i) {
+ // Send a touch press for the second finger and not move the first finger.
+ params_.PushPointerActionParamsList(param_list2);
+ // Send a touch release for the second finger and not move the first finger.
+ params_.PushPointerActionParamsList(param_list3);
+ }
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+
+ ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
static_cast<MockSyntheticPointerTouchActionTarget*>(target_.get());
EXPECT_EQ(count_success++, num_success_);
EXPECT_EQ(0, num_failure_);
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list1));
- SyntheticPointerActionParams params1;
- params1.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
- action_param_list_->push_back(params1);
- for (int i = 0; i < 3; ++i) {
- // Send a touch press for the second finger and not move the first finger.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::IDLE);
- action_param_list_->at(1).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->at(1).set_position(gfx::PointF(123, 69));
+ for (int index = 1; index < 4; ++index) {
ForwardSyntheticPointerAction();
-
EXPECT_EQ(count_success++, num_success_);
EXPECT_EQ(0, num_failure_);
// The type of the SyntheticWebTouchEvent is the action of the last finger.
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
EXPECT_TRUE(
pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
-
- // Send a touch release for the second finger and not move the first finger.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::IDLE);
- action_param_list_->at(1).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::RELEASE);
+ param_list2));
ForwardSyntheticPointerAction();
-
EXPECT_EQ(count_success++, num_success_);
EXPECT_EQ(0, num_failure_);
// The type of the SyntheticWebTouchEvent is the action of the last finger.
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchEnd);
EXPECT_TRUE(
pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ param_list3));
}
}
-TEST_F(SyntheticPointerActionTest, PointerTouchActionSourceTypeInvalid) {
- CreateSyntheticPointerActionTarget<MockSyntheticPointerTouchActionTarget>();
-
- // Users' gesture source type does not match with the touch action.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::MOUSE_INPUT);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
-
- EXPECT_EQ(0, num_success_);
- EXPECT_EQ(1, num_failure_);
-
- params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::TOUCH_INPUT);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->at(0) = params;
- ForwardSyntheticPointerAction();
-
- MockSyntheticPointerTouchActionTarget* pointer_touch_target =
- static_cast<MockSyntheticPointerTouchActionTarget*>(target_.get());
- EXPECT_EQ(1, num_success_);
- EXPECT_EQ(1, num_failure_);
- EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
- EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
-}
-
TEST_F(SyntheticPointerActionTest, PointerTouchActionTypeInvalid) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerTouchActionTarget>();
// Cannot send a touch move or touch release without sending a touch press
// first.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::MOVE,
- SyntheticGestureParams::TOUCH_INPUT);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
+ SyntheticPointerActionParams param = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::MOVE);
+ param.set_index(0);
+ param.set_position(gfx::PointF(54, 89));
+ params_.PushPointerActionParams(param);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+ ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(1, num_failure_);
- action_param_list_->at(0).set_pointer_action_type(
+ param.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
- ForwardSyntheticPointerAction();
+ params_ = SyntheticPointerActionListParams();
+ params_.PushPointerActionParams(param);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+ ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(2, num_failure_);
// Send a touch press for one finger.
- action_param_list_->at(0).set_pointer_action_type(
+ param.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- ForwardSyntheticPointerAction();
+ params_ = SyntheticPointerActionListParams();
+ params_.PushPointerActionParams(param);
+ params_.PushPointerActionParams(param);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+ ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
static_cast<MockSyntheticPointerTouchActionTarget*>(target_.get());
EXPECT_EQ(1, num_success_);
EXPECT_EQ(2, num_failure_);
EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart);
- EXPECT_TRUE(pointer_touch_target->SyntheticTouchActionListDispatchedCorrectly(
- *action_param_list_.get()));
+ EXPECT_TRUE(
+ pointer_touch_target->SyntheticTouchActionDispatchedCorrectly(param, 0));
// Cannot send a touch press again without releasing the finger.
- action_param_list_->at(0).gesture_source_type =
- SyntheticGestureParams::TOUCH_INPUT;
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::PRESS);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(1, num_success_);
EXPECT_EQ(3, num_failure_);
}
@@ -479,124 +470,90 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerMouseActionTarget>();
// Send a mouse move.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::MOVE,
- SyntheticGestureParams::MOUSE_INPUT);
- params.set_position(gfx::PointF(189, 62));
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
+ SyntheticPointerActionParams param1 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::MOVE);
+ param1.set_position(gfx::PointF(189, 62));
+ params_.PushPointerActionParams(param1);
+ // Send a mouse down.
+ SyntheticPointerActionParams param2 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param2.set_position(gfx::PointF(189, 62));
+ params_.PushPointerActionParams(param2);
+
+ // Send a mouse drag.
+ SyntheticPointerActionParams param3 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::MOVE);
+ param3.set_position(gfx::PointF(326, 298));
+ params_.PushPointerActionParams(param3);
+
+ // Send a mouse up.
+ SyntheticPointerActionParams param4 = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::RELEASE);
+ params_.PushPointerActionParams(param4);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+
+ ForwardSyntheticPointerAction();
MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
static_cast<MockSyntheticPointerMouseActionTarget*>(target_.get());
EXPECT_EQ(1, num_success_);
EXPECT_EQ(0, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 0));
+ EXPECT_TRUE(
+ pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(param1, 0));
- // Send a mouse down.
- action_param_list_->at(0).set_position(gfx::PointF(189, 62));
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::PRESS);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(2, num_success_);
EXPECT_EQ(0, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 1));
+ EXPECT_TRUE(
+ pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(param2, 1));
- // Send a mouse drag.
- action_param_list_->at(0).set_position(gfx::PointF(326, 298));
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::MOVE);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(3, num_success_);
EXPECT_EQ(0, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 1));
+ EXPECT_TRUE(
+ pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(param3, 1));
- // Send a mouse up.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::RELEASE);
ForwardSyntheticPointerAction();
-
EXPECT_EQ(4, num_success_);
EXPECT_EQ(0, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 1));
+ EXPECT_TRUE(
+ pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(param4, 1));
}
-TEST_F(SyntheticPointerActionTest, PointerMouseActionSourceTypeInvalid) {
+TEST_F(SyntheticPointerActionTest, PointerMouseActionTypeInvalid) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerMouseActionTarget>();
- // Users' gesture source type does not match with the mouse action.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::TOUCH_INPUT);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
+ // Cannot send a mouse up without sending a mouse down first.
+ SyntheticPointerActionParams param = SyntheticPointerActionParams(
+ SyntheticPointerActionParams::PointerActionType::RELEASE);
+ params_.PushPointerActionParams(param);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
+ ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(1, num_failure_);
- params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS,
- SyntheticGestureParams::MOUSE_INPUT);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->at(0) = params;
- ForwardSyntheticPointerAction();
-
- MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
- static_cast<MockSyntheticPointerMouseActionTarget*>(target_.get());
- EXPECT_EQ(1, num_success_);
- EXPECT_EQ(1, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 1));
-}
+ // Send a mouse down for one finger.
+ param.set_pointer_action_type(
+ SyntheticPointerActionParams::PointerActionType::PRESS);
+ param.set_position(gfx::PointF(54, 89));
+ params_ = SyntheticPointerActionListParams();
+ params_.PushPointerActionParams(param);
-TEST_F(SyntheticPointerActionTest, PointerMouseActionTypeInvalid) {
- CreateSyntheticPointerActionTarget<MockSyntheticPointerMouseActionTarget>();
+ // Cannot send a mouse down again without releasing the mouse button.
+ params_.PushPointerActionParams(param);
+ pointer_action_.reset(new SyntheticPointerAction(params_));
- // Send a mouse move.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::MOVE,
- SyntheticGestureParams::MOUSE_INPUT);
- params.set_position(gfx::PointF(189, 62));
- action_param_list_->push_back(params);
ForwardSyntheticPointerAction();
-
MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
static_cast<MockSyntheticPointerMouseActionTarget*>(target_.get());
EXPECT_EQ(1, num_success_);
- EXPECT_EQ(0, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 0));
-
- // Cannot send a mouse up without sending a mouse down first.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::RELEASE);
- ForwardSyntheticPointerAction();
-
- EXPECT_EQ(1, num_success_);
- EXPECT_EQ(1, num_failure_);
-
- // Send a mouse down for one finger.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::PRESS);
- ForwardSyntheticPointerAction();
-
- EXPECT_EQ(2, num_success_);
EXPECT_EQ(1, num_failure_);
- EXPECT_TRUE(pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(
- action_param_list_->at(0), 1));
+ EXPECT_TRUE(
+ pointer_mouse_target->SyntheticMouseActionDispatchedCorrectly(param, 1));
- // Cannot send a mouse down again without releasing the mouse button.
- action_param_list_->at(0).set_pointer_action_type(
- SyntheticPointerActionParams::PointerActionType::PRESS);
ForwardSyntheticPointerAction();
-
- EXPECT_EQ(2, num_success_);
+ EXPECT_EQ(1, num_success_);
EXPECT_EQ(2, num_failure_);
}

Powered by Google App Engine
This is Rietveld 408576698