Index: ui/gfx/render_text_unittest.cc |
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc |
index 24fbcb9683718b8ef6d598737de5c46bce5bf3e6..34f2e002109d67e67eaa886d8aaf31239f792d3a 100644 |
--- a/ui/gfx/render_text_unittest.cc |
+++ b/ui/gfx/render_text_unittest.cc |
@@ -335,7 +335,6 @@ TEST_F(RenderTextTest, PasswordCensorship) { |
// TODO(benrg): No Windows implementation yet. |
#if !defined(OS_WIN) |
- |
render_text->SetObscured(true); |
// Surrogate pairs are counted as one code point. |
@@ -365,6 +364,29 @@ TEST_F(RenderTextTest, PasswordCensorship) { |
#endif // !defined(OS_WIN) |
} |
+TEST_F(RenderTextTest, GetTextDirection) { |
+ // Ensure that direction is set by the first strong character direction. |
+ scoped_ptr<RenderText> render_text(RenderText::CreateRenderText()); |
+ // Pure LTR. |
+ render_text->SetText(ASCIIToUTF16("abc")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::LEFT_TO_RIGHT); |
+ // LTR-RTL |
+ render_text->SetText(WideToUTF16(L"abc\x05d0\x05d1\x05d2")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::LEFT_TO_RIGHT); |
+ // LTR-RTL-LTR. |
+ render_text->SetText(WideToUTF16(L"a"L"\x05d1"L"b")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::LEFT_TO_RIGHT); |
+ // Pure RTL. |
+ render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::RIGHT_TO_LEFT); |
+ // RTL-LTR |
+ render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2"L"abc")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::RIGHT_TO_LEFT); |
+ // RTL-LTR-RTL. |
+ render_text->SetText(WideToUTF16(L"\x05d0"L"a"L"\x05d1")); |
+ EXPECT_EQ(render_text->GetTextDirection(), base::i18n::RIGHT_TO_LEFT); |
+} |
+ |
void RunMoveCursorLeftRightTest(RenderText* render_text, |
const std::vector<SelectionModel>& expected, |
VisualCursorDirection direction) { |
@@ -459,36 +481,20 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtl) { |
render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false); |
std::vector<SelectionModel> expected; |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#else |
- expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#endif |
expected.push_back(SelectionModel(1, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(2, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(3, CURSOR_BACKWARD)); |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#else |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#endif |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_LEFT); |
expected.clear(); |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#else |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#endif |
expected.push_back(SelectionModel(2, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(1, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(0, CURSOR_FORWARD)); |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#else |
- expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#endif |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_RIGHT); |
} |
@@ -498,7 +504,6 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtr) { |
render_text->SetText(WideToUTF16(L"\x05d0\x05d1\x05d2"L"abc")); |
render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false); |
std::vector<SelectionModel> expected; |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(1, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(2, CURSOR_BACKWARD)); |
@@ -507,21 +512,9 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtr) { |
expected.push_back(SelectionModel(4, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(6, CURSOR_FORWARD)); |
-#else |
- expected.push_back(SelectionModel(6, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(5, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(4, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(1, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(2, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(3, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#endif |
- |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_LEFT); |
expected.clear(); |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(6, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(4, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(5, CURSOR_BACKWARD)); |
@@ -530,16 +523,6 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtr) { |
expected.push_back(SelectionModel(1, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(0, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#else |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(2, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(1, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(0, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(4, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(5, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(6, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(6, CURSOR_FORWARD)); |
-#endif |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_RIGHT); |
} |
@@ -549,35 +532,19 @@ TEST_F(RenderTextTest, MoveCursorLeftRightInRtlLtrRtl) { |
render_text->SetText(WideToUTF16(L"\x05d0"L"a"L"\x05d1")); |
render_text->MoveCursor(LINE_BREAK, CURSOR_RIGHT, false); |
std::vector<SelectionModel> expected; |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(1, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(1, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(3, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#else |
- expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(3, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(1, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(1, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#endif |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_LEFT); |
expected.clear(); |
-#if defined(OS_LINUX) |
expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(2, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(2, CURSOR_BACKWARD)); |
expected.push_back(SelectionModel(0, CURSOR_FORWARD)); |
expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
-#else |
- expected.push_back(SelectionModel(0, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(0, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(2, CURSOR_BACKWARD)); |
- expected.push_back(SelectionModel(2, CURSOR_FORWARD)); |
- expected.push_back(SelectionModel(3, CURSOR_FORWARD)); |
-#endif |
RunMoveCursorLeftRightTest(render_text.get(), expected, CURSOR_RIGHT); |
} |
@@ -706,14 +673,8 @@ TEST_F(RenderTextTest, EdgeSelectionModels) { |
{ kLatin, base::i18n::LEFT_TO_RIGHT }, |
{ kLTRGrapheme, base::i18n::LEFT_TO_RIGHT }, |
{ kHindiLatin, base::i18n::LEFT_TO_RIGHT }, |
-#if defined(OS_LINUX) |
- // On Linux, the whole string is displayed RTL, rather than individual runs. |
{ kRTLGrapheme, base::i18n::RIGHT_TO_LEFT }, |
{ kHebrewLatin, base::i18n::RIGHT_TO_LEFT }, |
-#else |
- { kRTLGrapheme, base::i18n::LEFT_TO_RIGHT }, |
- { kHebrewLatin, base::i18n::LEFT_TO_RIGHT }, |
-#endif |
}; |
// TODO(asvitkine): Disable tests that fail on XP bots due to lack of complete |