| Index: ui/gfx/render_text_unittest.cc
|
| ===================================================================
|
| --- ui/gfx/render_text_unittest.cc (revision 100008)
|
| +++ ui/gfx/render_text_unittest.cc (working copy)
|
| @@ -15,14 +15,14 @@
|
|
|
| TEST_F(RenderTextTest, DefaultStyle) {
|
| // Defaults to empty text with no styles.
|
| - scoped_ptr<gfx::RenderText> render_text(gfx::RenderText::CreateRenderText());
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| EXPECT_TRUE(render_text->text().empty());
|
| EXPECT_TRUE(render_text->style_ranges().empty());
|
|
|
| // Test that the built-in default style is applied for new text.
|
| render_text->SetText(ASCIIToUTF16("abc"));
|
| EXPECT_EQ(1U, render_text->style_ranges().size());
|
| - gfx::StyleRange style;
|
| + StyleRange style;
|
| EXPECT_EQ(style.font.GetFontName(),
|
| render_text->style_ranges()[0].font.GetFontName());
|
| EXPECT_EQ(style.foreground, render_text->style_ranges()[0].foreground);
|
| @@ -38,8 +38,8 @@
|
|
|
| TEST_F(RenderTextTest, CustomDefaultStyle) {
|
| // Test a custom default style.
|
| - scoped_ptr<gfx::RenderText> render_text(gfx::RenderText::CreateRenderText());
|
| - gfx::StyleRange color;
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + StyleRange color;
|
| color.foreground = SK_ColorRED;
|
| render_text->set_default_style(color);
|
| render_text->SetText(ASCIIToUTF16("abc"));
|
| @@ -54,7 +54,7 @@
|
| EXPECT_EQ(color.foreground, render_text->style_ranges()[0].foreground);
|
|
|
| // Test ApplyDefaultStyle after setting a new default.
|
| - gfx::StyleRange strike;
|
| + StyleRange strike;
|
| strike.strike = true;
|
| render_text->set_default_style(strike);
|
| render_text->ApplyDefaultStyle();
|
| @@ -64,24 +64,24 @@
|
| }
|
|
|
| TEST_F(RenderTextTest, ApplyStyleRange) {
|
| - scoped_ptr<gfx::RenderText> render_text(gfx::RenderText::CreateRenderText());
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| render_text->SetText(ASCIIToUTF16("01234"));
|
| EXPECT_EQ(1U, render_text->style_ranges().size());
|
|
|
| // Test ApplyStyleRange (no-op on empty range).
|
| - gfx::StyleRange empty;
|
| + StyleRange empty;
|
| empty.range = ui::Range(1, 1);
|
| render_text->ApplyStyleRange(empty);
|
| EXPECT_EQ(1U, render_text->style_ranges().size());
|
|
|
| // Test ApplyStyleRange (no-op on invalid range).
|
| - gfx::StyleRange invalid;
|
| + StyleRange invalid;
|
| invalid.range = ui::Range::InvalidRange();
|
| render_text->ApplyStyleRange(invalid);
|
| EXPECT_EQ(1U, render_text->style_ranges().size());
|
|
|
| // Apply a style with a range contained by an existing range.
|
| - gfx::StyleRange underline;
|
| + StyleRange underline;
|
| underline.underline = true;
|
| underline.range = ui::Range(2, 3);
|
| render_text->ApplyStyleRange(underline);
|
| @@ -94,7 +94,7 @@
|
| EXPECT_FALSE(render_text->style_ranges()[2].underline);
|
|
|
| // Apply a style with a range equal to another range.
|
| - gfx::StyleRange color;
|
| + StyleRange color;
|
| color.foreground = SK_ColorWHITE;
|
| color.range = ui::Range(2, 3);
|
| render_text->ApplyStyleRange(color);
|
| @@ -111,7 +111,7 @@
|
|
|
| // Apply a style with a range containing an existing range.
|
| // This new style also overlaps portions of neighboring ranges.
|
| - gfx::StyleRange strike;
|
| + StyleRange strike;
|
| strike.strike = true;
|
| strike.range = ui::Range(1, 4);
|
| render_text->ApplyStyleRange(strike);
|
| @@ -124,7 +124,7 @@
|
| EXPECT_FALSE(render_text->style_ranges()[2].strike);
|
|
|
| // Apply a style overlapping all ranges.
|
| - gfx::StyleRange strike_underline;
|
| + StyleRange strike_underline;
|
| strike_underline.strike = true;
|
| strike_underline.underline = true;
|
| strike_underline.range = ui::Range(0, render_text->text().length());
|
| @@ -144,7 +144,7 @@
|
|
|
| TEST_F(RenderTextTest, StyleRangesAdjust) {
|
| // Test that style ranges adjust to the text size.
|
| - scoped_ptr<gfx::RenderText> render_text(gfx::RenderText::CreateRenderText());
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| render_text->SetText(ASCIIToUTF16("abcdef"));
|
| EXPECT_EQ(1U, render_text->style_ranges().size());
|
| EXPECT_EQ(ui::Range(0, 6), render_text->style_ranges()[0].range);
|
| @@ -155,7 +155,7 @@
|
| EXPECT_EQ(ui::Range(0, 3), render_text->style_ranges()[0].range);
|
|
|
| // Test that the last range extends to the length of longer text.
|
| - gfx::StyleRange strike;
|
| + StyleRange strike;
|
| strike.strike = true;
|
| strike.range = ui::Range(2, 3);
|
| render_text->ApplyStyleRange(strike);
|
| @@ -178,4 +178,313 @@
|
| EXPECT_FALSE(render_text->style_ranges()[0].strike);
|
| }
|
|
|
| +void RunMoveCursorLeftRightTest(RenderText* render_text,
|
| + const std::vector<SelectionModel>& expected,
|
| + bool move_right) {
|
| + for (int i = 0; i < static_cast<int>(expected.size()); ++i) {
|
| + SelectionModel sel = expected[i];
|
| + EXPECT_TRUE(render_text->selection_model().Equals(sel));
|
| + if (move_right)
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + else
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + }
|
| +
|
| + SelectionModel sel = expected[expected.size() - 1];
|
| + if (move_right)
|
| + render_text->MoveCursorRight(LINE_BREAK, false);
|
| + else
|
| + render_text->MoveCursorLeft(LINE_BREAK, false);
|
| + EXPECT_TRUE(render_text->selection_model().Equals(sel));
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInLtr) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| +
|
| + // Pure LTR.
|
| + render_text->SetText(ASCIIToUTF16("abc"));
|
| + // |expected| saves the expected SelectionModel when moving cursor from left
|
| + // to right.
|
| + std::vector<SelectionModel> expected;
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + // The last element is to test the clamped line ends.
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +
|
| + expected.clear();
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInLtrRtl) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + // LTR-RTL
|
| + render_text->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2"));
|
| + // The last one is the expected END position.
|
| + std::vector<SelectionModel> expected;
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 5, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 4, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +
|
| + expected.clear();
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 3, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 4, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(6, 5, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInLtrRtlLtr) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + // LTR-RTL-LTR.
|
| + render_text->SetText(WideToUTF16(L"a"L"\x05d1"L"b"));
|
| + std::vector<SelectionModel> expected;
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +
|
| + expected.clear();
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInRtl) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + // Pure RTL.
|
| + render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2"));
|
| + render_text->MoveCursorRight(LINE_BREAK, false);
|
| + std::vector<SelectionModel> expected;
|
| +
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| +#else
|
| + expected.push_back(SelectionModel(3, 0, SelectionModel::LEADING));
|
| +#endif
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| +#else
|
| + expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| + // TODO(xji): expected (0, 2, TRAILING), actual (3, 0, LEADING).
|
| + // cursor moves from leftmost to rightmost.
|
| + // expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| +#endif
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +
|
| + expected.clear();
|
| +
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| +#else
|
| + expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| +#endif
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| +#else
|
| + expected.push_back(SelectionModel(3, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 0, SelectionModel::LEADING));
|
| +#endif
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtr) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + // RTL-LTR
|
| + render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2"L"abc"));
|
| + render_text->MoveCursorRight(LINE_BREAK, false);
|
| + std::vector<SelectionModel> expected;
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 5, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 4, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| +#else
|
| + expected.push_back(SelectionModel(6, 5, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 5, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 4, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| + // TODO(xji): expected (0, 2, TRAILING), actual (3, 0, LEADING).
|
| + // cursor moves from leftmost to middle.
|
| + // expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| +#endif
|
| +
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +
|
| + expected.clear();
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(6, 3, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 3, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 4, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(6, 5, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| +#else
|
| + expected.push_back(SelectionModel(0, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(4, 3, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(5, 4, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(6, 5, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(6, 5, SelectionModel::TRAILING));
|
| +#endif
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +}
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtrRtl) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + // RTL-LTR-RTL.
|
| + render_text->SetText(WideToUTF16(L"\x05d0"L"a"L"\x05d1"));
|
| + render_text->MoveCursorRight(LINE_BREAK, false);
|
| + std::vector<SelectionModel> expected;
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| +#else
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(1, 1, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(1, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::TRAILING));
|
| + // TODO(xji): expected (0, 0, TRAILING), actual (2, 1, LEADING).
|
| + // cursor moves from leftmost to middle.
|
| + // expected.push_back(SelectionModel(0, 0, SelectionModel::TRAILING));
|
| +#endif
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, false);
|
| +
|
| + expected.clear();
|
| +#if defined(OS_LINUX)
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| +#else
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(0, 0, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(2, 1, SelectionModel::TRAILING));
|
| + expected.push_back(SelectionModel(2, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::LEADING));
|
| + expected.push_back(SelectionModel(3, 2, SelectionModel::LEADING));
|
| +#endif
|
| + RunMoveCursorLeftRightTest(render_text.get(), expected, true);
|
| +}
|
| +
|
| +// TODO(xji): temporarily disable in platform Win since the complex script
|
| +// characters turned into empty square due to font regression. So, not able
|
| +// to test 2 characters belong to the same grapheme.
|
| +#if defined(OS_LINUX)
|
| +TEST_F(RenderTextTest, MoveCursorLeftRight_ComplexScript) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| +
|
| + render_text->SetText(WideToUTF16(L"\x0915\x093f\x0915\x094d\x0915"));
|
| + EXPECT_EQ(0U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(2U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| +
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(2U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(0U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(0U, render_text->GetCursorPosition());
|
| +}
|
| +#endif
|
| +
|
| +TEST_F(RenderTextTest, MoveCursorLeftRightWithSelection) {
|
| + scoped_ptr<RenderText> render_text(RenderText::CreateRenderText());
|
| + render_text->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2"));
|
| + // Left arrow on select ranging (6, 4).
|
| + render_text->MoveCursorRight(LINE_BREAK, false);
|
| + EXPECT_EQ(6U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(6U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, true);
|
| + EXPECT_EQ(6U, render_text->GetSelectionStart());
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, true);
|
| + EXPECT_EQ(6U, render_text->GetSelectionStart());
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(6U, render_text->GetCursorPosition());
|
| +
|
| + // Right arrow on select ranging (4, 6).
|
| + render_text->MoveCursorLeft(LINE_BREAK, false);
|
| + EXPECT_EQ(0U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(1U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(2U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(3U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, true);
|
| + EXPECT_EQ(4U, render_text->GetSelectionStart());
|
| + EXPECT_EQ(5U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorLeft(CHARACTER_BREAK, true);
|
| + EXPECT_EQ(4U, render_text->GetSelectionStart());
|
| + EXPECT_EQ(6U, render_text->GetCursorPosition());
|
| + render_text->MoveCursorRight(CHARACTER_BREAK, false);
|
| + EXPECT_EQ(4U, render_text->GetCursorPosition());
|
| +}
|
| +
|
| } // namespace gfx
|
|
|