Index: ui/views/controls/textfield/textfield_views_model_unittest.cc |
=================================================================== |
--- ui/views/controls/textfield/textfield_views_model_unittest.cc (revision 113082) |
+++ ui/views/controls/textfield/textfield_views_model_unittest.cc (working copy) |
@@ -20,10 +20,6 @@ |
#include "ui/views/test/views_test_base.h" |
#include "ui/views/views_delegate.h" |
-#if defined(OS_WIN) |
-#include "base/win/windows_version.h" |
-#endif |
- |
namespace { |
struct WordAndCursor { |
@@ -141,15 +137,7 @@ |
} |
TEST_F(TextfieldViewsModelTest, EditString_ComplexScript) { |
- // TODO(asvitkine): Disable tests that fail on XP bots due to lack of complete |
- // font support for some scripts - http://crbug.com/106450 |
- bool on_windows_xp = false; |
-#if defined(OS_WIN) |
- on_windows_xp = base::win::GetVersion() < base::win::VERSION_VISTA; |
-#endif |
- |
TextfieldViewsModel model(NULL); |
- |
// Append two Hindi strings. |
model.Append(WideToUTF16(L"\x0915\x093f\x0915\x094d\x0915")); |
EXPECT_EQ(WideToUTF16(L"\x0915\x093f\x0915\x094d\x0915"), |
@@ -160,31 +148,32 @@ |
model.GetText()); |
// Check it is not able to place cursor in middle of a grapheme. |
+ // 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) |
model.MoveCursorTo(gfx::SelectionModel(1U)); |
EXPECT_EQ(0U, model.GetCursorPosition()); |
+#endif |
- // TODO(asvitkine): Disable tests that fail on XP bots due to lack of complete |
- // font support for some scripts - http://crbug.com/106450 |
- if (!on_windows_xp) { |
- model.MoveCursorTo(gfx::SelectionModel(2U)); |
- EXPECT_EQ(2U, model.GetCursorPosition()); |
- model.InsertChar('a'); |
- EXPECT_EQ(WideToUTF16( |
- L"\x0915\x093f\x0061\x0915\x094d\x0915\x0915\x094d\x092e\x094d"), |
- model.GetText()); |
+ model.MoveCursorTo(gfx::SelectionModel(2U)); |
+ EXPECT_EQ(2U, model.GetCursorPosition()); |
+ model.InsertChar('a'); |
+ EXPECT_EQ(WideToUTF16( |
+ L"\x0915\x093f\x0061\x0915\x094d\x0915\x0915\x094d\x092e\x094d"), |
+ model.GetText()); |
- // ReplaceChar will replace the whole grapheme. |
- model.ReplaceChar('b'); |
- // 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. |
+ // ReplaceChar will replace the whole grapheme. |
+ model.ReplaceChar('b'); |
+ // 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) |
- EXPECT_EQ(WideToUTF16( |
- L"\x0915\x093f\x0061\x0062\x0915\x0915\x094d\x092e\x094d"), |
- model.GetText()); |
+ EXPECT_EQ(WideToUTF16( |
+ L"\x0915\x093f\x0061\x0062\x0915\x0915\x094d\x092e\x094d"), |
+ model.GetText()); |
#endif |
- EXPECT_EQ(4U, model.GetCursorPosition()); |
- } |
+ EXPECT_EQ(4U, model.GetCursorPosition()); |
// Delete should delete the whole grapheme. |
model.MoveCursorTo(gfx::SelectionModel(0U)); |
@@ -196,7 +185,6 @@ |
EXPECT_EQ(WideToUTF16(L"\x0061\x0062\x0915\x0915\x094d\x092e\x094d"), |
model.GetText()); |
model.MoveCursorTo(gfx::SelectionModel(model.GetText().length())); |
- EXPECT_EQ(model.GetText().length(), model.GetCursorPosition()); |
EXPECT_TRUE(model.Backspace()); |
EXPECT_EQ(WideToUTF16(L"\x0061\x0062\x0915\x0915\x094d\x092e"), |
model.GetText()); |
@@ -207,25 +195,30 @@ |
model.MoveCursorTo(gfx::SelectionModel(0)); |
EXPECT_EQ(0U, model.GetCursorPosition()); |
+ // 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) |
model.MoveCursorTo(gfx::SelectionModel(1)); |
EXPECT_EQ(0U, model.GetCursorPosition()); |
+#endif |
- // TODO(asvitkine): Disable tests that fail on XP bots due to lack of complete |
- // font support for some scripts - http://crbug.com/106450 |
- if (!on_windows_xp) { |
- model.MoveCursorTo(gfx::SelectionModel(3)); |
- EXPECT_EQ(3U, model.GetCursorPosition()); |
- } |
- |
- // TODO(asvitkine): Temporarily disable the following check on Windows. It |
- // seems Windows treats "\x0D38\x0D4D\x0D15" as a single grapheme. |
-#if !defined(OS_WIN) |
model.MoveCursorTo(gfx::SelectionModel(2)); |
EXPECT_EQ(2U, model.GetCursorPosition()); |
+ |
+ model.MoveCursorTo(gfx::SelectionModel(3)); |
+ EXPECT_EQ(3U, model.GetCursorPosition()); |
+ |
+ model.MoveCursorTo(gfx::SelectionModel(2)); |
+ |
EXPECT_TRUE(model.Backspace()); |
EXPECT_EQ(WideToUTF16(L"\x0D38\x0D15\x0D16\x0D2E"), model.GetText()); |
-#endif |
+ // Test Delete/Backspace on Hebrew with non-spacing marks. |
+ // 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) |
model.SetText(WideToUTF16(L"\x05d5\x05b7\x05D9\x05B0\x05D4\x05B4\x05D9")); |
model.MoveCursorTo(gfx::SelectionModel(0)); |
EXPECT_TRUE(model.Delete()); |
@@ -233,6 +226,7 @@ |
EXPECT_TRUE(model.Delete()); |
EXPECT_TRUE(model.Delete()); |
EXPECT_EQ(WideToUTF16(L""), model.GetText()); |
+#endif |
// The first 2 characters are not strong directionality characters. |
model.SetText(WideToUTF16(L"\x002C\x0020\x05D1\x05BC\x05B7\x05E9\x05BC")); |
@@ -567,7 +561,7 @@ |
EXPECT_EQ(29U, model.GetCursorPosition()); |
} |
-static void SelectWordTestVerifier(const TextfieldViewsModel& model, |
+void SelectWordTestVerifier(TextfieldViewsModel &model, |
const string16 &expected_selected_string, size_t expected_cursor_pos) { |
EXPECT_EQ(expected_selected_string, model.GetSelectedText()); |
EXPECT_EQ(expected_cursor_pos, model.GetCursorPosition()); |