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

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, 2 months 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 e4b0f9d22f73427a2a71e9ddcd7e0eb6b5db5553..e43117d66f8532fbbbcc60ccc28711cd616611c0 100644
--- a/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
+++ b/content/browser/renderer_host/input/synthetic_pointer_action_unittest.cc
@@ -119,7 +119,7 @@ class MockSyntheticPointerMouseActionTarget
class SyntheticPointerActionTest : public testing::Test {
public:
SyntheticPointerActionTest() {
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
std::fill(index_map_.begin(), index_map_.end(), -1);
num_success_ = 0;
num_failure_ = 0;
@@ -135,13 +135,15 @@ class SyntheticPointerActionTest : public testing::Test {
}
void ForwardSyntheticPointerAction() {
+ gesture_list_params_.param_list = action_param_list_;
pointer_action_.reset(new SyntheticPointerAction(
- std::move(action_param_list_), synthetic_pointer_.get(), &index_map_));
+ gesture_list_params_, synthetic_pointer_.get(), &index_map_));
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_++;
@@ -152,7 +154,8 @@ class SyntheticPointerActionTest : public testing::Test {
std::unique_ptr<MockSyntheticPointerActionTarget> target_;
std::unique_ptr<SyntheticGesture> pointer_action_;
std::unique_ptr<SyntheticPointer> synthetic_pointer_;
- std::unique_ptr<std::vector<SyntheticPointerActionParams>> action_param_list_;
+ SyntheticPointerActionListParams gesture_list_params_;
+ std::vector<SyntheticPointerActionParams> action_param_list_;
SyntheticPointerAction::IndexMap index_map_;
};
@@ -161,11 +164,11 @@ TEST_F(SyntheticPointerActionTest, PointerTouchAction) {
// Send a touch press for one finger.
SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
+ SyntheticGestureParams::TOUCH_INPUT,
SyntheticPointerActionParams::PointerActionType::PRESS);
- params0.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
params0.set_index(0);
params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
@@ -181,17 +184,17 @@ TEST_F(SyntheticPointerActionTest, PointerTouchAction) {
// Send a touch move for the first finger and a touch press for the second
// finger.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params0.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::MOVE);
params0.set_position(gfx::PointF(133, 156));
SyntheticPointerActionParams params1 = SyntheticPointerActionParams(
+ SyntheticGestureParams::TOUCH_INPUT,
SyntheticPointerActionParams::PointerActionType::PRESS);
- params1.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
params1.set_index(1);
params1.set_position(gfx::PointF(79, 132));
- action_param_list_->push_back(params0);
- action_param_list_->push_back(params1);
+ action_param_list_.push_back(params0);
+ action_param_list_.push_back(params1);
ForwardSyntheticPointerAction();
EXPECT_EQ(2, num_success_);
@@ -209,11 +212,11 @@ TEST_F(SyntheticPointerActionTest, PointerTouchAction) {
ASSERT_EQ(pointer_touch_target->touch_length(), 2U);
// Send a touch move for the second finger.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params1.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::MOVE);
params1.set_position(gfx::PointF(87, 253));
- action_param_list_->push_back(params1);
+ action_param_list_.push_back(params1);
ForwardSyntheticPointerAction();
EXPECT_EQ(3, num_success_);
@@ -226,13 +229,13 @@ TEST_F(SyntheticPointerActionTest, PointerTouchAction) {
ASSERT_EQ(pointer_touch_target->touch_length(), 2U);
// Send touch releases for both fingers.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params0.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
params1.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
- action_param_list_->push_back(params0);
- action_param_list_->push_back(params1);
+ action_param_list_.push_back(params0);
+ action_param_list_.push_back(params1);
ForwardSyntheticPointerAction();
EXPECT_EQ(4, num_success_);
@@ -252,51 +255,19 @@ TEST_F(SyntheticPointerActionTest, PointerTouchActionIndexInvalid) {
// Users sent a wrong index for the touch action.
SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
+ SyntheticGestureParams::TOUCH_INPUT,
SyntheticPointerActionParams::PointerActionType::PRESS);
- params0.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
params0.set_index(-1);
params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(1, num_failure_);
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params0.set_index(0);
- action_param_list_->push_back(params0);
- 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_EQ(pointer_touch_target->indexes(0), 0);
- EXPECT_EQ(index_map_[0], 0);
- EXPECT_EQ(pointer_touch_target->positions(0), gfx::PointF(54, 89));
- EXPECT_EQ(pointer_touch_target->states(0), WebTouchPoint::StatePressed);
- ASSERT_EQ(pointer_touch_target->touch_length(), 1U);
-}
-
-TEST_F(SyntheticPointerActionTest, PointerTouchActionSourceTypeInvalid) {
- CreateSyntheticPointerActionTarget<MockSyntheticPointerTouchActionTarget>();
-
- // Users' gesture source type does not match with the touch action.
- SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS);
- params0.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
- params0.set_index(0);
- params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
- ForwardSyntheticPointerAction();
-
- EXPECT_EQ(0, num_success_);
- EXPECT_EQ(1, num_failure_);
-
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
- params0.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
@@ -317,30 +288,30 @@ TEST_F(SyntheticPointerActionTest, PointerTouchActionTypeInvalid) {
// Cannot send a touch move or touch release without sending a touch press
// first.
SyntheticPointerActionParams params0 = SyntheticPointerActionParams(
+ SyntheticGestureParams::TOUCH_INPUT,
SyntheticPointerActionParams::PointerActionType::MOVE);
- params0.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
params0.set_index(0);
params0.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(1, num_failure_);
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params0.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
EXPECT_EQ(0, num_success_);
EXPECT_EQ(2, num_failure_);
// Send a touch press for one finger.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params0.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
MockSyntheticPointerTouchActionTarget* pointer_touch_target =
@@ -355,12 +326,11 @@ TEST_F(SyntheticPointerActionTest, PointerTouchActionTypeInvalid) {
ASSERT_EQ(pointer_touch_target->touch_length(), 1U);
// Cannot send a touch press again without releasing the finger.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
- params0.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
+ action_param_list_.clear();
params0.set_index(0);
params0.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->push_back(params0);
+ action_param_list_.push_back(params0);
ForwardSyntheticPointerAction();
EXPECT_EQ(1, num_success_);
@@ -372,11 +342,11 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
// Send a mouse move.
SyntheticPointerActionParams params = SyntheticPointerActionParams(
+ SyntheticGestureParams::MOUSE_INPUT,
SyntheticPointerActionParams::PointerActionType::MOVE);
- params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
params.set_index(0);
params.set_position(gfx::PointF(189, 62));
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
@@ -389,11 +359,11 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::NoButton);
// Send a mouse down.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_position(gfx::PointF(189, 62));
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(2, num_success_);
@@ -404,11 +374,11 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::Left);
// Send a mouse drag.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_position(gfx::PointF(326, 298));
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::MOVE);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(3, num_success_);
@@ -419,10 +389,10 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::Left);
// Send a mouse up.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(4, num_success_);
@@ -432,46 +402,16 @@ TEST_F(SyntheticPointerActionTest, PointerMouseAction) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::Left);
}
-TEST_F(SyntheticPointerActionTest, PointerMouseActionSourceTypeInvalid) {
- CreateSyntheticPointerActionTarget<MockSyntheticPointerMouseActionTarget>();
-
- // Users' gesture source type does not match with the mouse action.
- SyntheticPointerActionParams params = SyntheticPointerActionParams(
- SyntheticPointerActionParams::PointerActionType::PRESS);
- params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
- params.set_index(0);
- params.set_position(gfx::PointF(54, 89));
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
-
- EXPECT_EQ(0, num_success_);
- EXPECT_EQ(1, num_failure_);
-
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
- params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
- action_param_list_->push_back(params);
- ForwardSyntheticPointerAction();
-
- MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
- static_cast<MockSyntheticPointerMouseActionTarget*>(target_.get());
- EXPECT_EQ(1, num_success_);
- EXPECT_EQ(1, num_failure_);
- EXPECT_EQ(pointer_mouse_target->type(), WebInputEvent::MouseDown);
- EXPECT_EQ(pointer_mouse_target->position(), params.position());
- EXPECT_EQ(pointer_mouse_target->clickCount(), 1);
- EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::Left);
-}
-
TEST_F(SyntheticPointerActionTest, PointerMouseActionTypeInvalid) {
CreateSyntheticPointerActionTarget<MockSyntheticPointerMouseActionTarget>();
// Send a mouse move.
SyntheticPointerActionParams params = SyntheticPointerActionParams(
+ SyntheticGestureParams::MOUSE_INPUT,
SyntheticPointerActionParams::PointerActionType::MOVE);
- params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
params.set_index(0);
params.set_position(gfx::PointF(189, 62));
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
MockSyntheticPointerMouseActionTarget* pointer_mouse_target =
@@ -484,20 +424,20 @@ TEST_F(SyntheticPointerActionTest, PointerMouseActionTypeInvalid) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::NoButton);
// Cannot send a mouse up without sending a mouse down first.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::RELEASE);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(1, num_success_);
EXPECT_EQ(1, num_failure_);
// Send a mouse down for one finger.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(2, num_success_);
@@ -508,10 +448,10 @@ TEST_F(SyntheticPointerActionTest, PointerMouseActionTypeInvalid) {
EXPECT_EQ(pointer_mouse_target->button(), WebMouseEvent::Button::Left);
// Cannot send a mouse down again without releasing the mouse button.
- action_param_list_.reset(new std::vector<SyntheticPointerActionParams>());
+ action_param_list_.clear();
params.set_pointer_action_type(
SyntheticPointerActionParams::PointerActionType::PRESS);
- action_param_list_->push_back(params);
+ action_param_list_.push_back(params);
ForwardSyntheticPointerAction();
EXPECT_EQ(2, num_success_);

Powered by Google App Engine
This is Rietveld 408576698