OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/render_text.h" | 5 #include "ui/gfx/render_text.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 render_text->SetObscured(true); | 276 render_text->SetObscured(true); |
277 EXPECT_EQ(seuss, render_text->text()); | 277 EXPECT_EQ(seuss, render_text->text()); |
278 EXPECT_EQ(no_seuss, render_text->GetLayoutText()); | 278 EXPECT_EQ(no_seuss, render_text->GetLayoutText()); |
279 render_text->SetObscured(false); | 279 render_text->SetObscured(false); |
280 EXPECT_EQ(seuss, render_text->text()); | 280 EXPECT_EQ(seuss, render_text->text()); |
281 EXPECT_EQ(seuss, render_text->GetLayoutText()); | 281 EXPECT_EQ(seuss, render_text->GetLayoutText()); |
282 | 282 |
283 render_text->SetObscured(true); | 283 render_text->SetObscured(true); |
284 | 284 |
285 // Surrogate pairs are counted as one code point. | 285 // Surrogate pairs are counted as one code point. |
286 const char16 invalid_surrogates[] = {0xDC00, 0xD800, 0}; | 286 const base::char16 invalid_surrogates[] = {0xDC00, 0xD800, 0}; |
287 render_text->SetText(invalid_surrogates); | 287 render_text->SetText(invalid_surrogates); |
288 EXPECT_EQ(ASCIIToUTF16("**"), render_text->GetLayoutText()); | 288 EXPECT_EQ(ASCIIToUTF16("**"), render_text->GetLayoutText()); |
289 const char16 valid_surrogates[] = {0xD800, 0xDC00, 0}; | 289 const base::char16 valid_surrogates[] = {0xD800, 0xDC00, 0}; |
290 render_text->SetText(valid_surrogates); | 290 render_text->SetText(valid_surrogates); |
291 EXPECT_EQ(ASCIIToUTF16("*"), render_text->GetLayoutText()); | 291 EXPECT_EQ(ASCIIToUTF16("*"), render_text->GetLayoutText()); |
292 EXPECT_EQ(0U, render_text->cursor_position()); | 292 EXPECT_EQ(0U, render_text->cursor_position()); |
293 render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false); | 293 render_text->MoveCursor(CHARACTER_BREAK, CURSOR_RIGHT, false); |
294 EXPECT_EQ(2U, render_text->cursor_position()); | 294 EXPECT_EQ(2U, render_text->cursor_position()); |
295 | 295 |
296 // Test index conversion and cursor validity with a valid surrogate pair. | 296 // Test index conversion and cursor validity with a valid surrogate pair. |
297 EXPECT_EQ(0U, render_text->TextIndexToLayoutIndex(0U)); | 297 EXPECT_EQ(0U, render_text->TextIndexToLayoutIndex(0U)); |
298 EXPECT_EQ(1U, render_text->TextIndexToLayoutIndex(1U)); | 298 EXPECT_EQ(1U, render_text->TextIndexToLayoutIndex(1U)); |
299 EXPECT_EQ(1U, render_text->TextIndexToLayoutIndex(2U)); | 299 EXPECT_EQ(1U, render_text->TextIndexToLayoutIndex(2U)); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 | 363 |
364 // SetText clears the revealed index. | 364 // SetText clears the revealed index. |
365 render_text->SetText(ASCIIToUTF16("new")); | 365 render_text->SetText(ASCIIToUTF16("new")); |
366 EXPECT_EQ(ASCIIToUTF16("***"), render_text->GetLayoutText()); | 366 EXPECT_EQ(ASCIIToUTF16("***"), render_text->GetLayoutText()); |
367 render_text->RenderText::SetObscuredRevealIndex(2); | 367 render_text->RenderText::SetObscuredRevealIndex(2); |
368 EXPECT_EQ(ASCIIToUTF16("**w"), render_text->GetLayoutText()); | 368 EXPECT_EQ(ASCIIToUTF16("**w"), render_text->GetLayoutText()); |
369 render_text->SetText(ASCIIToUTF16("new longer")); | 369 render_text->SetText(ASCIIToUTF16("new longer")); |
370 EXPECT_EQ(ASCIIToUTF16("**********"), render_text->GetLayoutText()); | 370 EXPECT_EQ(ASCIIToUTF16("**********"), render_text->GetLayoutText()); |
371 | 371 |
372 // Text with invalid surrogates. | 372 // Text with invalid surrogates. |
373 const char16 invalid_surrogates[] = {0xDC00, 0xD800, 'h', 'o', 'p', 0}; | 373 const base::char16 invalid_surrogates[] = {0xDC00, 0xD800, 'h', 'o', 'p', 0}; |
374 render_text->SetText(invalid_surrogates); | 374 render_text->SetText(invalid_surrogates); |
375 EXPECT_EQ(ASCIIToUTF16("*****"), render_text->GetLayoutText()); | 375 EXPECT_EQ(ASCIIToUTF16("*****"), render_text->GetLayoutText()); |
376 render_text->RenderText::SetObscuredRevealIndex(0); | 376 render_text->RenderText::SetObscuredRevealIndex(0); |
377 const char16 invalid_expect_0[] = {0xDC00, '*', '*', '*', '*', 0}; | 377 const base::char16 invalid_expect_0[] = {0xDC00, '*', '*', '*', '*', 0}; |
378 EXPECT_EQ(invalid_expect_0, render_text->GetLayoutText()); | 378 EXPECT_EQ(invalid_expect_0, render_text->GetLayoutText()); |
379 render_text->RenderText::SetObscuredRevealIndex(1); | 379 render_text->RenderText::SetObscuredRevealIndex(1); |
380 const char16 invalid_expect_1[] = {'*', 0xD800, '*', '*', '*', 0}; | 380 const base::char16 invalid_expect_1[] = {'*', 0xD800, '*', '*', '*', 0}; |
381 EXPECT_EQ(invalid_expect_1, render_text->GetLayoutText()); | 381 EXPECT_EQ(invalid_expect_1, render_text->GetLayoutText()); |
382 render_text->RenderText::SetObscuredRevealIndex(2); | 382 render_text->RenderText::SetObscuredRevealIndex(2); |
383 EXPECT_EQ(ASCIIToUTF16("**h**"), render_text->GetLayoutText()); | 383 EXPECT_EQ(ASCIIToUTF16("**h**"), render_text->GetLayoutText()); |
384 | 384 |
385 // Text with valid surrogates before and after the reveal index. | 385 // Text with valid surrogates before and after the reveal index. |
386 const char16 valid_surrogates[] = | 386 const base::char16 valid_surrogates[] = |
387 {0xD800, 0xDC00, 'h', 'o', 'p', 0xD800, 0xDC00, 0}; | 387 {0xD800, 0xDC00, 'h', 'o', 'p', 0xD800, 0xDC00, 0}; |
388 render_text->SetText(valid_surrogates); | 388 render_text->SetText(valid_surrogates); |
389 EXPECT_EQ(ASCIIToUTF16("*****"), render_text->GetLayoutText()); | 389 EXPECT_EQ(ASCIIToUTF16("*****"), render_text->GetLayoutText()); |
390 render_text->RenderText::SetObscuredRevealIndex(0); | 390 render_text->RenderText::SetObscuredRevealIndex(0); |
391 const char16 valid_expect_0_and_1[] = {0xD800, 0xDC00, '*', '*', '*', '*', 0}; | 391 const base::char16 valid_expect_0_and_1[] = |
| 392 {0xD800, 0xDC00, '*', '*', '*', '*', 0}; |
392 EXPECT_EQ(valid_expect_0_and_1, render_text->GetLayoutText()); | 393 EXPECT_EQ(valid_expect_0_and_1, render_text->GetLayoutText()); |
393 render_text->RenderText::SetObscuredRevealIndex(1); | 394 render_text->RenderText::SetObscuredRevealIndex(1); |
394 EXPECT_EQ(valid_expect_0_and_1, render_text->GetLayoutText()); | 395 EXPECT_EQ(valid_expect_0_and_1, render_text->GetLayoutText()); |
395 render_text->RenderText::SetObscuredRevealIndex(2); | 396 render_text->RenderText::SetObscuredRevealIndex(2); |
396 EXPECT_EQ(ASCIIToUTF16("*h***"), render_text->GetLayoutText()); | 397 EXPECT_EQ(ASCIIToUTF16("*h***"), render_text->GetLayoutText()); |
397 render_text->RenderText::SetObscuredRevealIndex(5); | 398 render_text->RenderText::SetObscuredRevealIndex(5); |
398 const char16 valid_expect_5_and_6[] = {'*', '*', '*', '*', 0xD800, 0xDC00, 0}; | 399 const base::char16 valid_expect_5_and_6[] = |
| 400 {'*', '*', '*', '*', 0xD800, 0xDC00, 0}; |
399 EXPECT_EQ(valid_expect_5_and_6, render_text->GetLayoutText()); | 401 EXPECT_EQ(valid_expect_5_and_6, render_text->GetLayoutText()); |
400 render_text->RenderText::SetObscuredRevealIndex(6); | 402 render_text->RenderText::SetObscuredRevealIndex(6); |
401 EXPECT_EQ(valid_expect_5_and_6, render_text->GetLayoutText()); | 403 EXPECT_EQ(valid_expect_5_and_6, render_text->GetLayoutText()); |
402 } | 404 } |
403 | 405 |
404 TEST_F(RenderTextTest, TruncatedText) { | 406 TEST_F(RenderTextTest, TruncatedText) { |
405 struct { | 407 struct { |
406 const wchar_t* text; | 408 const wchar_t* text; |
407 const wchar_t* layout_text; | 409 const wchar_t* layout_text; |
408 } cases[] = { | 410 } cases[] = { |
(...skipping 948 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1357 render_text->GetStringSize().height()); | 1359 render_text->GetStringSize().height()); |
1358 Rect display_rect(font_size); | 1360 Rect display_rect(font_size); |
1359 render_text->SetDisplayRect(display_rect); | 1361 render_text->SetDisplayRect(display_rect); |
1360 Vector2d offset = render_text->GetLineOffset(0); | 1362 Vector2d offset = render_text->GetLineOffset(0); |
1361 EXPECT_EQ(kEnlargement, offset.x()); | 1363 EXPECT_EQ(kEnlargement, offset.x()); |
1362 SetRTL(was_rtl); | 1364 SetRTL(was_rtl); |
1363 } | 1365 } |
1364 | 1366 |
1365 TEST_F(RenderTextTest, SameFontForParentheses) { | 1367 TEST_F(RenderTextTest, SameFontForParentheses) { |
1366 struct { | 1368 struct { |
1367 const char16 left_char; | 1369 const base::char16 left_char; |
1368 const char16 right_char; | 1370 const base::char16 right_char; |
1369 } punctuation_pairs[] = { | 1371 } punctuation_pairs[] = { |
1370 { '(', ')' }, | 1372 { '(', ')' }, |
1371 { '{', '}' }, | 1373 { '{', '}' }, |
1372 { '<', '>' }, | 1374 { '<', '>' }, |
1373 }; | 1375 }; |
1374 struct { | 1376 struct { |
1375 base::string16 text; | 1377 base::string16 text; |
1376 } cases[] = { | 1378 } cases[] = { |
1377 // English(English) | 1379 // English(English) |
1378 { WideToUTF16(L"Hello World(a)") }, | 1380 { WideToUTF16(L"Hello World(a)") }, |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1798 render_text->SetText(WideToUTF16(L"x \x25B6 y")); | 1800 render_text->SetText(WideToUTF16(L"x \x25B6 y")); |
1799 render_text->EnsureLayout(); | 1801 render_text->EnsureLayout(); |
1800 ASSERT_EQ(3U, render_text->runs_.size()); | 1802 ASSERT_EQ(3U, render_text->runs_.size()); |
1801 EXPECT_EQ(Range(0, 2), render_text->runs_[0]->range); | 1803 EXPECT_EQ(Range(0, 2), render_text->runs_[0]->range); |
1802 EXPECT_EQ(Range(2, 3), render_text->runs_[1]->range); | 1804 EXPECT_EQ(Range(2, 3), render_text->runs_[1]->range); |
1803 EXPECT_EQ(Range(3, 5), render_text->runs_[2]->range); | 1805 EXPECT_EQ(Range(3, 5), render_text->runs_[2]->range); |
1804 } | 1806 } |
1805 #endif // defined(OS_WIN) | 1807 #endif // defined(OS_WIN) |
1806 | 1808 |
1807 } // namespace gfx | 1809 } // namespace gfx |
OLD | NEW |