Index: ui/gfx/render_text_unittest.cc |
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc |
index 03425aa2b38c4daeadeb576480d48a9242eddd5d..f947d754d385a0436167d5b8f8f6a4c83bb4b60e 100644 |
--- a/ui/gfx/render_text_unittest.cc |
+++ b/ui/gfx/render_text_unittest.cc |
@@ -23,11 +23,6 @@ |
#if defined(OS_WIN) |
#include "base/win/windows_version.h" |
#include "ui/gfx/platform_font_win.h" |
-#include "ui/gfx/render_text_win.h" |
-#endif |
- |
-#if defined(OS_LINUX) && !defined(USE_OZONE) |
-#include "ui/gfx/render_text_pango.h" |
#endif |
using base::ASCIIToUTF16; |
@@ -43,12 +38,10 @@ namespace { |
const wchar_t kWeak[] = L" . "; |
const wchar_t kLtr[] = L"abc"; |
const wchar_t kRtl[] = L"\x5d0\x5d1\x5d2"; |
-#if !defined(OS_MACOSX) |
const wchar_t kLtrRtl[] = L"a" L"\x5d0\x5d1"; |
const wchar_t kLtrRtlLtr[] = L"a" L"\x5d1" L"b"; |
const wchar_t kRtlLtr[] = L"\x5d0\x5d1" L"a"; |
const wchar_t kRtlLtrRtl[] = L"\x5d0" L"a" L"\x5d1"; |
-#endif |
// Checks whether |range| contains |index|. This is not the same as calling |
// range.Contains(Range(index)), which returns true if |index| == |range.end()|. |
@@ -207,54 +200,6 @@ TEST_F(RenderTextTest, ApplyColorAndStyle) { |
#endif // OS_MACOSX |
} |
-#if defined(OS_LINUX) && !defined(USE_OZONE) |
-TEST_F(RenderTextTest, PangoAttributes) { |
- scoped_ptr<RenderText> render_text(RenderText::CreateNativeInstance()); |
- render_text->SetText(ASCIIToUTF16("012345678")); |
- |
- // Apply ranged BOLD/ITALIC styles and check the resulting Pango attributes. |
- render_text->ApplyStyle(BOLD, true, Range(2, 4)); |
- render_text->ApplyStyle(ITALIC, true, Range(1, 3)); |
- |
- struct { |
- int start; |
- int end; |
- bool bold; |
- bool italic; |
- } cases[] = { |
- { 0, 1, false, false }, |
- { 1, 2, false, true }, |
- { 2, 3, true, true }, |
- { 3, 4, true, false }, |
- { 4, INT_MAX, false, false }, |
- }; |
- |
- int start = 0, end = 0; |
- RenderTextPango* rt_linux = static_cast<RenderTextPango*>(render_text.get()); |
- rt_linux->EnsureLayout(); |
- PangoAttrList* attributes = pango_layout_get_attributes(rt_linux->layout_); |
- PangoAttrIterator* iter = pango_attr_list_get_iterator(attributes); |
- for (size_t i = 0; i < arraysize(cases); ++i) { |
- pango_attr_iterator_range(iter, &start, &end); |
- EXPECT_EQ(cases[i].start, start); |
- EXPECT_EQ(cases[i].end, end); |
- PangoFontDescription* font = pango_font_description_new(); |
- pango_attr_iterator_get_font(iter, font, NULL, NULL); |
- char* description_string = pango_font_description_to_string(font); |
- const base::string16 desc = ASCIIToUTF16(description_string); |
- const bool bold = desc.find(ASCIIToUTF16("Bold")) != std::string::npos; |
- EXPECT_EQ(cases[i].bold, bold); |
- const bool italic = desc.find(ASCIIToUTF16("Italic")) != std::string::npos; |
- EXPECT_EQ(cases[i].italic, italic); |
- pango_attr_iterator_next(iter); |
- pango_font_description_free(font); |
- g_free(description_string); |
- } |
- EXPECT_FALSE(pango_attr_iterator_next(iter)); |
- pango_attr_iterator_destroy(iter); |
-} |
-#endif |
- |
// TODO(asvitkine): Cursor movements tests disabled on Mac because RenderTextMac |
// does not implement this yet. http://crbug.com/131618 |
#if !defined(OS_MACOSX) |
@@ -849,8 +794,9 @@ TEST_F(RenderTextTest, MoveCursorLeftRight_ComplexScript) { |
#endif |
// TODO(ckocagil): Enable for RenderTextHarfBuzz. http://crbug.com/383265 |
+#if defined(OS_MACOSX) |
TEST_F(RenderTextTest, MoveCursorLeftRight_MeiryoUILigatures) { |
- scoped_ptr<RenderText> render_text(RenderText::CreateNativeInstance()); |
+ scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
// Meiryo UI uses single-glyph ligatures for 'ff' and 'ffi', but each letter |
// (code point) has unique bounds, so mid-glyph cursoring should be possible. |
render_text->SetFontList(FontList("Meiryo UI, 12px")); |
@@ -862,6 +808,7 @@ TEST_F(RenderTextTest, MoveCursorLeftRight_MeiryoUILigatures) { |
} |
EXPECT_EQ(6U, render_text->cursor_position()); |
} |
+#endif // defined(OS_MACOSX) |
TEST_F(RenderTextTest, GraphemePositions) { |
// LTR 2-character grapheme, LTR abc, LTR 2-character grapheme. |
@@ -1304,23 +1251,6 @@ TEST_F(RenderTextTest, MoveLeftRightByWordInChineseText) { |
} |
#endif |
-// TODO(ckocagil): Remove when RenderTextWin goes away. |
-#if defined(OS_WIN) |
-TEST_F(RenderTextTest, Win_LogicalClusters) { |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
- |
- const base::string16 test_string = |
- WideToUTF16(L"\x0930\x0930\x0930\x0930\x0930"); |
- render_text->SetText(test_string); |
- render_text->EnsureLayout(); |
- ASSERT_EQ(1U, render_text->runs_.size()); |
- WORD* logical_clusters = render_text->runs_[0]->logical_clusters.get(); |
- for (size_t i = 0; i < test_string.length(); ++i) |
- EXPECT_EQ(i, logical_clusters[i]); |
-} |
-#endif // defined(OS_WIN) |
- |
TEST_F(RenderTextTest, StringSizeSanity) { |
scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
render_text->SetText(UTF8ToUTF16("Hello World")); |
@@ -1933,15 +1863,13 @@ TEST_F(RenderTextTest, SelectionKeepsLigatures) { |
} |
} |
-#if defined(OS_WIN) |
// TODO(ckocagil): Enable for RenderTextHarfBuzz after implementing multiline. |
// Ensure strings wrap onto multiple lines for a small available width. |
-TEST_F(RenderTextTest, Multiline_MinWidth) { |
+TEST_F(RenderTextTest, DISABLED_Multiline_MinWidth) { |
const wchar_t* kTestStrings[] = { kWeak, kLtr, kLtrRtl, kLtrRtlLtr, kRtl, |
kRtlLtr, kRtlLtrRtl }; |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
+ scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
render_text->SetDisplayRect(Rect(1, 1000)); |
render_text->SetMultiline(true); |
Canvas canvas; |
@@ -1956,7 +1884,7 @@ TEST_F(RenderTextTest, Multiline_MinWidth) { |
// TODO(ckocagil): Enable for RenderTextHarfBuzz after implementing multiline. |
// Ensure strings wrap onto multiple lines for a normal available width. |
-TEST_F(RenderTextTest, Multiline_NormalWidth) { |
+TEST_F(RenderTextTest, DISABLED_Multiline_NormalWidth) { |
const struct { |
const wchar_t* const text; |
const Range first_line_char_range; |
@@ -1968,8 +1896,7 @@ TEST_F(RenderTextTest, Multiline_NormalWidth) { |
Range(4, 10), Range(0, 4) } |
}; |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
+ scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
render_text->SetDisplayRect(Rect(50, 1000)); |
render_text->SetMultiline(true); |
Canvas canvas; |
@@ -1991,12 +1918,11 @@ TEST_F(RenderTextTest, Multiline_NormalWidth) { |
// TODO(ckocagil): Enable for RenderTextHarfBuzz after implementing multiline. |
// Ensure strings don't wrap onto multiple lines for a sufficient available |
// width. |
-TEST_F(RenderTextTest, Multiline_SufficientWidth) { |
+TEST_F(RenderTextTest, DISABLED_Multiline_SufficientWidth) { |
const wchar_t* kTestStrings[] = { L"", L" ", L".", L" . ", L"abc", L"a b c", |
L"\x62E\x628\x632", L"\x62E \x628 \x632" }; |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
+ scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
render_text->SetDisplayRect(Rect(30, 1000)); |
render_text->SetMultiline(true); |
Canvas canvas; |
@@ -2010,7 +1936,7 @@ TEST_F(RenderTextTest, Multiline_SufficientWidth) { |
} |
// TODO(ckocagil): Enable for RenderTextHarfBuzz after implementing multiline. |
-TEST_F(RenderTextTest, Multiline_Newline) { |
+TEST_F(RenderTextTest, DISABLED_Multiline_Newline) { |
const struct { |
const wchar_t* const text; |
// Ranges of the characters on each line preceding the newline. |
@@ -2022,8 +1948,7 @@ TEST_F(RenderTextTest, Multiline_Newline) { |
{ L"\n" , Range::InvalidRange(), Range::InvalidRange() } |
}; |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
+ scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
render_text->SetDisplayRect(Rect(200, 1000)); |
render_text->SetMultiline(true); |
Canvas canvas; |
@@ -2056,28 +1981,6 @@ TEST_F(RenderTextTest, Multiline_Newline) { |
} |
} |
-// TODO(ckocagil): Remove when RenderTextWin goes away. |
-TEST_F(RenderTextTest, BreakRunsByUnicodeBlocks) { |
- scoped_ptr<RenderTextWin> render_text( |
- static_cast<RenderTextWin*>(RenderText::CreateNativeInstance())); |
- |
- // The '\x25B6' "play character" should break runs. http://crbug.com/278913 |
- render_text->SetText(WideToUTF16(L"x\x25B6y")); |
- render_text->EnsureLayout(); |
- ASSERT_EQ(3U, render_text->runs_.size()); |
- EXPECT_EQ(Range(0, 1), render_text->runs_[0]->range); |
- EXPECT_EQ(Range(1, 2), render_text->runs_[1]->range); |
- EXPECT_EQ(Range(2, 3), render_text->runs_[2]->range); |
- |
- render_text->SetText(WideToUTF16(L"x \x25B6 y")); |
- render_text->EnsureLayout(); |
- ASSERT_EQ(3U, render_text->runs_.size()); |
- EXPECT_EQ(Range(0, 2), render_text->runs_[0]->range); |
- EXPECT_EQ(Range(2, 3), render_text->runs_[1]->range); |
- EXPECT_EQ(Range(3, 5), render_text->runs_[2]->range); |
-} |
-#endif // defined(OS_WIN) |
- |
// Test TextRunHarfBuzz's cluster finding logic. |
TEST_F(RenderTextTest, HarfBuzz_Clusters) { |
struct { |
@@ -2268,29 +2171,10 @@ TEST_F(RenderTextTest, HarfBuzz_BreakRunsByEmoji) { |
EXPECT_EQ(Range(4, 5), render_text.runs_[3]->range); |
} |
-// Disabled on Mac because RenderTextMac doesn't implement GetGlyphBounds. |
-#if !defined(OS_MACOSX) |
TEST_F(RenderTextTest, GlyphBounds) { |
const wchar_t* kTestStrings[] = { |
L"asdf 1234 qwer", L"\x0647\x0654", L"\x0645\x0631\x062D\x0628\x0627" |
}; |
- scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); |
- |
- for (size_t i = 0; i < arraysize(kTestStrings); ++i) { |
- render_text->SetText(WideToUTF16(kTestStrings[i])); |
- render_text->EnsureLayout(); |
- |
- for (size_t j = 0; j < render_text->text().length(); ++j) |
- EXPECT_FALSE(render_text->GetGlyphBounds(j).is_empty()); |
- } |
-} |
-#endif |
- |
-// Remove this after making RTHB default in favor of RenderTextTest.GlyphBounds. |
-TEST_F(RenderTextTest, HarfBuzz_GlyphBounds) { |
- const wchar_t* kTestStrings[] = { |
- L"asdf 1234 qwer", L"\x0647\x0654", L"\x0645\x0631\x062D\x0628\x0627" |
- }; |
scoped_ptr<RenderText> render_text(new RenderTextHarfBuzz); |
for (size_t i = 0; i < arraysize(kTestStrings); ++i) { |