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

Unified Diff: ui/touch_selection/touch_selection_controller_unittest.cc

Issue 698253004: Reland: Implement Aura side of unified touch text selection for contents (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed overrides in TouchHandleDrawableAura Created 5 years, 11 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: ui/touch_selection/touch_selection_controller_unittest.cc
diff --git a/ui/touch_selection/touch_selection_controller_unittest.cc b/ui/touch_selection/touch_selection_controller_unittest.cc
index bdbde62cedb918fe3c94406b62391acb6a297bb3..7cf14c7466089c8229fb2fc6677799c3aa30cd95 100644
--- a/ui/touch_selection/touch_selection_controller_unittest.cc
+++ b/ui/touch_selection/touch_selection_controller_unittest.cc
@@ -51,10 +51,7 @@ class TouchSelectionControllerTest : public testing::Test,
// testing::Test implementation.
void SetUp() override {
- controller_.reset(new TouchSelectionController(
- this,
- base::TimeDelta::FromMilliseconds(kDefaultTapTimeoutMs),
- kDefaulTapSlop));
+ Reset(false);
}
void TearDown() override { controller_.reset(); }
@@ -95,11 +92,30 @@ class TouchSelectionControllerTest : public testing::Test,
new MockTouchHandleDrawable(&dragging_enabled_));
}
+ void Reset(bool show_on_tap_for_empty_editable) {
+ controller_.reset(new TouchSelectionController(
+ this,
+ base::TimeDelta::FromMilliseconds(kDefaultTapTimeoutMs),
+ kDefaulTapSlop,
+ show_on_tap_for_empty_editable));
+ last_event_start_ = gfx::PointF();
+ caret_position_ = gfx::PointF();
+ selection_start_ = gfx::PointF();
+ selection_end_ = gfx::PointF();
+ last_event_ = SELECTION_CLEARED;
+ caret_moved_ = false;
+ selection_moved_ = false;
+ selection_points_swapped_ = false;
+ needs_animate_ = false;
+ animation_enabled_ = true;
+ dragging_enabled_ = false;
+}
+
void SetAnimationEnabled(bool enabled) { animation_enabled_ = enabled; }
void SetDraggingEnabled(bool enabled) { dragging_enabled_ = enabled; }
void ClearSelection() {
- controller_->OnSelectionBoundsChanged(SelectionBound(),
+ controller_->OnSelectionBoundsUpdated(SelectionBound(),
SelectionBound());
}
@@ -110,7 +126,7 @@ class TouchSelectionControllerTest : public testing::Test,
bound.set_type(SelectionBound::CENTER);
bound.SetEdge(rect.origin(), rect.bottom_left());
bound.set_visible(visible);
- controller_->OnSelectionBoundsChanged(bound, bound);
+ controller_->OnSelectionBoundsUpdated(bound, bound);
}
void ChangeSelection(const gfx::RectF& start_rect,
@@ -124,7 +140,7 @@ class TouchSelectionControllerTest : public testing::Test,
end_bound.SetEdge(end_rect.origin(), end_rect.bottom_left());
start_bound.set_visible(start_visible);
end_bound.set_visible(end_visible);
- controller_->OnSelectionBoundsChanged(start_bound, end_bound);
+ controller_->OnSelectionBoundsUpdated(start_bound, end_bound);
}
void Animate() {
@@ -163,7 +179,7 @@ class TouchSelectionControllerTest : public testing::Test,
const gfx::PointF& GetLastSelectionStart() const { return selection_start_; }
const gfx::PointF& GetLastSelectionEnd() const { return selection_end_; }
SelectionEventType GetLastEventType() const { return last_event_; }
- const gfx::PointF& GetLastEventAnchor() const { return last_event_start_; }
+ const gfx::PointF& GetLastEventAnchor() { return last_event_start_; }
TouchSelectionController& controller() { return *controller_; }
@@ -229,18 +245,30 @@ TEST_F(TouchSelectionControllerTest, InsertionClearedWhenNoLongerEditable) {
EXPECT_EQ(INSERTION_CLEARED, GetLastEventType());
}
-TEST_F(TouchSelectionControllerTest, InsertionStaysHiddenIfEmptyRegionTapped) {
+TEST_F(TouchSelectionControllerTest, EmptyRegionTapped) {
gfx::RectF insertion_rect(5, 5, 0, 10);
bool visible = true;
+
+ // Taps on an empty editable region should show the insertion handle if the
+ // controller is created with show_on_tap_for_empty_editable set to true.
+ Reset(true);
controller().OnSelectionEditable(true);
+ controller().OnTapEvent();
+ controller().OnSelectionEmpty(true);
+ ChangeInsertion(insertion_rect, visible);
+ EXPECT_EQ(INSERTION_SHOWN, GetLastEventType());
+ EXPECT_EQ(insertion_rect.bottom_left(), GetLastEventAnchor());
- // Taps should be ignored if they're in an empty editable region.
+ // Taps on an empty editable region should be ignored if the controller is
+ // created with show_on_tap_for_empty_editable set to false.
+ Reset(false);
+ controller().OnSelectionEditable(true);
controller().OnTapEvent();
controller().OnSelectionEmpty(true);
ChangeInsertion(insertion_rect, visible);
EXPECT_EQ(gfx::PointF(), GetLastEventAnchor());
- // Once the region becomes editable, taps should show the insertion handle.
+ // Once the region becomes non-empty, taps should show the insertion handle.
controller().OnTapEvent();
controller().OnSelectionEmpty(false);
ChangeInsertion(insertion_rect, visible);

Powered by Google App Engine
This is Rietveld 408576698