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

Unified Diff: ui/gfx/render_text_unittest.cc

Issue 2228833002: MacViews: Fix behavior of move and select commands when selection direction changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use_text_commands
Patch Set: Fix compile. Created 4 years, 4 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/gfx/render_text_unittest.cc
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc
index 6ee8250af2b415a8ccdbe9063f792af88f617394..9bd1a9590e7c79ad52f5f217c593dd19248a2193 100644
--- a/ui/gfx/render_text_unittest.cc
+++ b/ui/gfx/render_text_unittest.cc
@@ -109,6 +109,26 @@ void SetRTL(bool rtl) {
EXPECT_EQ(rtl, base::i18n::IsRTL());
}
+// Execute MoveCursor on the given |render_text| instance for the given
+// arguments
+// and verify the selected range matches |expected|. Also, clears the
+// expectations.
+void RunMoveCursorTestAndClearExpectations(RenderText* render_text,
+ BreakType break_type,
+ VisualCursorDirection direction,
+ SelectionBehavior selection_behavior,
+ std::vector<Range>* expected) {
+ for (size_t i = 0; i < expected->size(); ++i) {
+ SCOPED_TRACE(base::StringPrintf(
+ "BreakType-%d Direction-%d SelectionBehavior-%d Case-%d.", break_type,
+ direction, selection_behavior, static_cast<int>(i)));
+
+ render_text->MoveCursor(break_type, direction, selection_behavior);
+ EXPECT_EQ(expected->at(i), render_text->selection());
+ }
+ expected->clear();
+}
+
// TODO(asvitkine): RenderTextMac cursor movements. http://crbug.com/131618
#if !defined(OS_MACOSX)
// Ensure cursor movement in the specified |direction| yields |expected| values.
@@ -119,12 +139,12 @@ void RunMoveCursorLeftRightTest(RenderText* render_text,
SCOPED_TRACE(base::StringPrintf("Going %s; expected value index %d.",
direction == CURSOR_LEFT ? "left" : "right", static_cast<int>(i)));
EXPECT_EQ(expected[i], render_text->selection_model());
- render_text->MoveCursor(CHARACTER_BREAK, direction, false);
+ render_text->MoveCursor(CHARACTER_BREAK, direction, gfx::SELECTION_NONE);
}
// Check that cursoring is clamped at the line edge.
EXPECT_EQ(expected.back(), render_text->selection_model());
// Check that it is the line edge.
- render_text->MoveCursor(LINE_BREAK, direction, false);
+ render_text->MoveCursor(LINE_BREAK, direction, gfx::SELECTION_NONE);
EXPECT_EQ(expected.back(), render_text->selection_model());
}
#endif // !defined(OS_MACOSX)
@@ -488,31 +508,33 @@ TEST_F(RenderTextTest, AppendTextKeepsStyles) {
render_text->styles()[UNDERLINE].EqualsForTesting(expected_style));
}
-void TestVisualCursorMotionInObscuredField(RenderText* render_text,
- const base::string16& text,
- bool select) {
+void TestVisualCursorMotionInObscuredField(
+ RenderText* render_text,
+ const base::string16& text,
+ gfx::SelectionBehavior selection_behavior) {
+ const bool select = selection_behavior != gfx::SELECTION_NONE;
ASSERT_TRUE(render_text->obscured());
render_text->SetText(text);
int len = text.length();
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, select);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, selection_behavior);
EXPECT_EQ(SelectionModel(Range(select ? 0 : len, len), CURSOR_FORWARD),
render_text->selection_model());
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, select);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, selection_behavior);
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
for (int j = 1; j <= len; ++j) {
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, select);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, selection_behavior);
EXPECT_EQ(SelectionModel(Range(select ? 0 : j, j), CURSOR_BACKWARD),
render_text->selection_model());
}
for (int j = len - 1; j >= 0; --j) {
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, select);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, selection_behavior);
EXPECT_EQ(SelectionModel(Range(select ? 0 : j, j), CURSOR_FORWARD),
render_text->selection_model());
}
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, select);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, selection_behavior);
EXPECT_EQ(SelectionModel(Range(select ? 0 : len, len), CURSOR_FORWARD),
render_text->selection_model());
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, select);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, selection_behavior);
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
}
@@ -542,7 +564,7 @@ TEST_F(RenderTextTest, ObscuredText) {
render_text->SetText(valid_surrogates);
EXPECT_EQ(ASCIIToUTF16("*"), render_text->GetDisplayText());
EXPECT_EQ(0U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(2U, render_text->cursor_position());
// Test index conversion and cursor validity with a valid surrogate pair.
@@ -576,8 +598,10 @@ TEST_F(RenderTextTest, ObscuredText) {
};
for (size_t i = 0; i < arraysize(texts); ++i) {
base::string16 text = WideToUTF16(texts[i]);
- TestVisualCursorMotionInObscuredField(render_text.get(), text, false);
- TestVisualCursorMotionInObscuredField(render_text.get(), text, true);
+ TestVisualCursorMotionInObscuredField(render_text.get(), text,
+ gfx::SELECTION_NONE);
+ TestVisualCursorMotionInObscuredField(render_text.get(), text,
+ gfx::SELECTION_DEFAULT);
}
}
#endif // !defined(OS_MACOSX)
@@ -901,9 +925,9 @@ TEST_F(RenderTextTest, TruncatedCursorMovementLTR) {
render_text->SetText(WideToUTF16(L"abcd"));
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(4, CURSOR_FORWARD), render_text->selection_model());
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
std::vector<SelectionModel> expected;
@@ -929,9 +953,9 @@ TEST_F(RenderTextTest, TruncatedCursorMovementRTL) {
render_text->SetText(WideToUTF16(L"\x5d0\x5d1\x5d2\x5d3"));
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(4, CURSOR_FORWARD), render_text->selection_model());
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(0, CURSOR_BACKWARD), render_text->selection_model());
std::vector<SelectionModel> expected;
@@ -952,6 +976,242 @@ TEST_F(RenderTextTest, TruncatedCursorMovementRTL) {
}
#endif // !defined(OS_MACOSX)
+TEST_F(RenderTextTest, MoveCursor_Character) {
+ std::unique_ptr<RenderText> render_text(
+ RenderText::CreateInstanceForEditing());
+ render_text->SetText(WideToUTF16(L"123 456 789"));
+ std::vector<gfx::Range> expected;
+
+ // SELECTION_NONE
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(7));
+ expected.push_back(gfx::Range(8));
+
+ // Move right twice.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_RIGHT, SELECTION_NONE,
+ &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(7));
+ expected.push_back(gfx::Range(6));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_LEFT, SELECTION_NONE, &expected);
+
+ // SELECTION_CARET
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 7));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_RIGHT, SELECTION_CARET,
+ &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 5));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_LEFT, SELECTION_CARET,
+ &expected);
+
+ // SELECTION_DEFAULT
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 7));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_RIGHT, SELECTION_DEFAULT,
+ &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 5));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_LEFT, SELECTION_DEFAULT,
+ &expected);
+
+ // SELECTION_EXTEND
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 7));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_RIGHT, SELECTION_EXTEND,
+ &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(7, 6));
+ expected.push_back(gfx::Range(7, 5));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), CHARACTER_BREAK,
+ CURSOR_LEFT, SELECTION_EXTEND,
+ &expected);
+}
+
+TEST_F(RenderTextTest, MoveCursor_Word) {
+ std::unique_ptr<RenderText> render_text(
+ RenderText::CreateInstanceForEditing());
+ render_text->SetText(WideToUTF16(L"123 456 789"));
+ std::vector<gfx::Range> expected;
+
+ // SELECTION_NONE
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(4));
+ expected.push_back(gfx::Range(0));
+
+ // Move left twice by word.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), WORD_BREAK,
+ CURSOR_LEFT, SELECTION_NONE, &expected);
+
+ // Move right twice by word.
+ expected.push_back(gfx::Range(3));
+ expected.push_back(gfx::Range(7));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_RIGHT, SELECTION_NONE, &expected);
+
+ // SELECTION_CARET
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 4));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_CARET, &expected);
+
+ // Move right twice.
+ expected.push_back(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 7));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_RIGHT, SELECTION_CARET, &expected);
+
+ expected.push_back(gfx::Range(6));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_CARET, &expected);
+
+ // SELECTION_DEFAULT
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 4));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_DEFAULT, &expected);
+
+ // Move right twice.
+ expected.push_back(gfx::Range(6, 7));
+ expected.push_back(gfx::Range(6, 11));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), WORD_BREAK,
+ CURSOR_RIGHT, SELECTION_DEFAULT,
+ &expected);
+
+ expected.push_back(gfx::Range(6, 8));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_DEFAULT, &expected);
+
+ // // SELECTION_EXTEND
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 4));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_EXTEND, &expected);
+
+ // Move right twice.
+ expected.push_back(gfx::Range(4, 7));
+ expected.push_back(gfx::Range(4, 11));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_RIGHT, SELECTION_EXTEND, &expected);
+
+ expected.push_back(gfx::Range(4, 8));
+
+ // Move left.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), WORD_BREAK, CURSOR_LEFT, SELECTION_EXTEND, &expected);
+}
+
+TEST_F(RenderTextTest, MoveCursor_Line) {
+ std::unique_ptr<RenderText> render_text(
+ RenderText::CreateInstanceForEditing());
+ render_text->SetText(WideToUTF16(L"123 456 789"));
+ std::vector<gfx::Range> expected;
+
+ // SELECTION_NONE
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(11));
+ expected.push_back(gfx::Range(11));
+
+ // Move right twice.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_RIGHT, SELECTION_NONE, &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(0));
+ expected.push_back(gfx::Range(0));
+ RunMoveCursorTestAndClearExpectations(render_text.get(), LINE_BREAK,
+ CURSOR_LEFT, SELECTION_NONE, &expected);
+
+ // SELECTION_CARET
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 11));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_RIGHT, SELECTION_CARET, &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 0));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_LEFT, SELECTION_CARET, &expected);
+
+ expected.push_back(gfx::Range(6));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_RIGHT, SELECTION_CARET, &expected);
+
+ // SELECTION_DEFAULT
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 11));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), LINE_BREAK,
+ CURSOR_RIGHT, SELECTION_DEFAULT,
+ &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(6, 0));
+ expected.push_back(gfx::Range(6, 0));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_LEFT, SELECTION_DEFAULT, &expected);
+
+ expected.push_back(gfx::Range(6, 11));
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(render_text.get(), LINE_BREAK,
+ CURSOR_RIGHT, SELECTION_DEFAULT,
+ &expected);
+
+ // SELECTION_EXTEND
+ render_text->SelectRange(gfx::Range(6));
+ expected.push_back(gfx::Range(6, 11));
+
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_RIGHT, SELECTION_EXTEND, &expected);
+
+ // Move left twice.
+ expected.push_back(gfx::Range(11, 0));
+ expected.push_back(gfx::Range(11, 0));
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_LEFT, SELECTION_EXTEND, &expected);
+
+ expected.push_back(gfx::Range(0, 11));
+ // Move right.
+ RunMoveCursorTestAndClearExpectations(
+ render_text.get(), LINE_BREAK, CURSOR_RIGHT, SELECTION_EXTEND, &expected);
+}
+
TEST_F(RenderTextTest, GetDisplayTextDirection) {
struct {
const wchar_t* text;
@@ -1084,7 +1344,7 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtl) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
// Pure RTL.
render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2"));
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
std::vector<SelectionModel> expected;
expected.push_back(SelectionModel(0, CURSOR_BACKWARD));
@@ -1108,7 +1368,7 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtr) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
// RTL-LTR
render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2" L"abc"));
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
std::vector<SelectionModel> expected;
expected.push_back(SelectionModel(0, CURSOR_BACKWARD));
expected.push_back(SelectionModel(1, CURSOR_BACKWARD));
@@ -1136,7 +1396,7 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtrRtl) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
// RTL-LTR-RTL.
render_text->SetText(WideToUTF16(L"\x05d0" L"a" L"\x05d1"));
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
std::vector<SelectionModel> expected;
expected.push_back(SelectionModel(0, CURSOR_BACKWARD));
expected.push_back(SelectionModel(1, CURSOR_BACKWARD));
@@ -1159,22 +1419,22 @@ TEST_F(RenderTextTest, MoveCursorLeftRight_ComplexScript) {
render_text->SetText(WideToUTF16(L"\x0915\x093f\x0915\x094d\x0915"));
EXPECT_EQ(0U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(2U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(4U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(5U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(5U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(4U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(2U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(0U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(0U, render_text->cursor_position());
}
@@ -1186,7 +1446,7 @@ TEST_F(RenderTextTest, MoveCursorLeftRight_MeiryoUILigatures) {
render_text->SetText(WideToUTF16(L"ff ffi"));
EXPECT_EQ(0U, render_text->cursor_position());
for (size_t i = 0; i < render_text->text().length(); ++i) {
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(i + 1, render_text->cursor_position());
}
EXPECT_EQ(6U, render_text->cursor_position());
@@ -1292,9 +1552,9 @@ TEST_F(RenderTextTest, MidGraphemeSelectionBounds) {
EXPECT_EQ(1U, render_text->cursor_position());
// Although selection bounds may be set within a multi-character grapheme,
// cursor movement (e.g. via arrow key) should avoid those indices.
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(0U, render_text->cursor_position());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(2U, render_text->cursor_position());
}
}
@@ -1399,39 +1659,41 @@ TEST_F(RenderTextTest, MoveCursorLeftRightWithSelection) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
tapted 2016/08/16 03:28:31 and here..
render_text->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2"));
// Left arrow on select ranging (6, 4).
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(6), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(4), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(5), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(6), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, true);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT,
+ gfx::SELECTION_DEFAULT);
EXPECT_EQ(Range(6, 5), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, true);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT,
+ gfx::SELECTION_DEFAULT);
EXPECT_EQ(Range(6, 4), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(6), render_text->selection());
// Right arrow on select ranging (4, 6).
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(0), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(1), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(2), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(3), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(5), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(4), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, true);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_DEFAULT);
EXPECT_EQ(Range(4, 5), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, true);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, gfx::SELECTION_DEFAULT);
EXPECT_EQ(Range(4, 6), render_text->selection());
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(Range(4), render_text->selection());
}
#endif // !defined(OS_MACOSX)
@@ -1480,13 +1742,13 @@ void MoveLeftRightByWordVerifier(RenderText* render_text,
render_text->SetText(WideToUTF16(str));
// Test moving by word from left ro right.
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
bool first_word = true;
while (true) {
// First, test moving by word from a word break position, such as from
// "|abc def" to "abc| def".
SelectionModel start = render_text->selection_model();
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
SelectionModel end = render_text->selection_model();
if (end == start) // reach the end.
break;
@@ -1496,7 +1758,8 @@ void MoveLeftRightByWordVerifier(RenderText* render_text,
first_word = false;
render_text->MoveCursorTo(start);
for (int j = 0; j < num_of_character_moves; ++j)
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT,
+ gfx::SELECTION_NONE);
EXPECT_EQ(end, render_text->selection_model());
// Then, test moving by word from positions inside the word, such as from
@@ -1504,18 +1767,19 @@ void MoveLeftRightByWordVerifier(RenderText* render_text,
for (int j = 1; j < num_of_character_moves; ++j) {
render_text->MoveCursorTo(start);
for (int k = 0; k < j; ++k)
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT,
+ gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(end, render_text->selection_model());
}
}
// Test moving by word from right to left.
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
first_word = true;
while (true) {
SelectionModel start = render_text->selection_model();
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
SelectionModel end = render_text->selection_model();
if (end == start) // reach the end.
break;
@@ -1524,14 +1788,16 @@ void MoveLeftRightByWordVerifier(RenderText* render_text,
first_word = false;
render_text->MoveCursorTo(start);
for (int j = 0; j < num_of_character_moves; ++j)
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT,
+ gfx::SELECTION_NONE);
EXPECT_EQ(end, render_text->selection_model());
for (int j = 1; j < num_of_character_moves; ++j) {
render_text->MoveCursorTo(start);
for (int k = 0; k < j; ++k)
- render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(CHARACTER_BREAK, CURSOR_LEFT,
+ gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(end, render_text->selection_model());
}
}
@@ -1584,28 +1850,28 @@ TEST_F(RenderTextTest, MoveLeftRightByWordInBidiText_TestEndOfText) {
// But since end of text is always treated as a word break, it returns
// position "ab|C".
// TODO(xji): Need to make it work as expected.
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
// EXPECT_EQ(SelectionModel(), render_text->selection_model());
// Moving the cursor by word from "|abC" to the right returns "abC|".
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(3, CURSOR_FORWARD), render_text->selection_model());
render_text->SetText(WideToUTF16(L"\x05E1\x05E2" L"a"));
// For logical text "BCa", moving the cursor by word from "aCB|" to the left
// returns "|aCB".
- render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(SelectionModel(3, CURSOR_FORWARD), render_text->selection_model());
// Moving the cursor by word from "|aCB" to the right should return "aCB|".
// But since end of text is always treated as a word break, it returns
// position "a|CB".
// TODO(xji): Need to make it work as expected.
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
// EXPECT_EQ(SelectionModel(), render_text->selection_model());
}
@@ -1613,11 +1879,11 @@ TEST_F(RenderTextTest, MoveLeftRightByWordInTextWithMultiSpaces) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
render_text->SetText(WideToUTF16(L"abc def"));
render_text->MoveCursorTo(SelectionModel(5, CURSOR_FORWARD));
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(11U, render_text->cursor_position());
render_text->MoveCursorTo(SelectionModel(5, CURSOR_FORWARD));
- render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(0U, render_text->cursor_position());
}
#endif // !defined(OS_WIN)
@@ -1625,17 +1891,17 @@ TEST_F(RenderTextTest, MoveLeftRightByWordInTextWithMultiSpaces) {
TEST_F(RenderTextTest, MoveLeftRightByWordInChineseText) {
std::unique_ptr<RenderText> render_text(RenderText::CreateInstance());
render_text->SetText(WideToUTF16(L"\x6211\x4EEC\x53BB\x516C\x56ED\x73A9"));
- render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, false);
+ render_text->MoveCursor(LINE_BREAK, CURSOR_LEFT, gfx::SELECTION_NONE);
EXPECT_EQ(0U, render_text->cursor_position());
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(2U, render_text->cursor_position());
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(3U, render_text->cursor_position());
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(5U, render_text->cursor_position());
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(6U, render_text->cursor_position());
- render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, false);
+ render_text->MoveCursor(WORD_BREAK, CURSOR_RIGHT, gfx::SELECTION_NONE);
EXPECT_EQ(6U, render_text->cursor_position());
}
#endif // !defined(OS_MACOSX)
« no previous file with comments | « ui/gfx/render_text.cc ('k') | ui/gfx/text_constants.h » ('j') | ui/gfx/text_constants.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698