Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Side by Side Diff: content/renderer/render_view_browsertest.cc

Issue 2568093003: Support parsing BackgroundSpans and UnderlineSpans in Android IME's commitText() (Closed)
Patch Set: Don't try to add default underline for commitText(), attempt to fix Mac builds Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <tuple> 7 #include <tuple>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 1238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 view()->OnImeSetComposition( 1249 view()->OnImeSetComposition(
1250 base::WideToUTF16(ime_message->ime_string), 1250 base::WideToUTF16(ime_message->ime_string),
1251 std::vector<blink::WebCompositionUnderline>(), 1251 std::vector<blink::WebCompositionUnderline>(),
1252 gfx::Range::InvalidRange(), 1252 gfx::Range::InvalidRange(),
1253 ime_message->selection_start, 1253 ime_message->selection_start,
1254 ime_message->selection_end); 1254 ime_message->selection_end);
1255 break; 1255 break;
1256 1256
1257 case IME_COMMITTEXT: 1257 case IME_COMMITTEXT:
1258 view()->OnImeCommitText(base::WideToUTF16(ime_message->ime_string), 1258 view()->OnImeCommitText(base::WideToUTF16(ime_message->ime_string),
1259 std::vector<blink::WebCompositionUnderline>(),
1259 gfx::Range::InvalidRange(), 0); 1260 gfx::Range::InvalidRange(), 0);
1260 break; 1261 break;
1261 1262
1262 case IME_FINISHCOMPOSINGTEXT: 1263 case IME_FINISHCOMPOSINGTEXT:
1263 view()->OnImeFinishComposingText(false); 1264 view()->OnImeFinishComposingText(false);
1264 break; 1265 break;
1265 1266
1266 case IME_CANCELCOMPOSITION: 1267 case IME_CANCELCOMPOSITION:
1267 view()->OnImeSetComposition( 1268 view()->OnImeSetComposition(
1268 base::string16(), 1269 base::string16(),
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 1510
1510 // ASCII composition 1511 // ASCII composition
1511 const base::string16 ascii_composition = base::UTF8ToUTF16("aiueo"); 1512 const base::string16 ascii_composition = base::UTF8ToUTF16("aiueo");
1512 view()->OnImeSetComposition(ascii_composition, empty_underline, 1513 view()->OnImeSetComposition(ascii_composition, empty_underline,
1513 gfx::Range::InvalidRange(), 0, 0); 1514 gfx::Range::InvalidRange(), 0, 0);
1514 view()->GetCompositionCharacterBounds(&bounds); 1515 view()->GetCompositionCharacterBounds(&bounds);
1515 ASSERT_EQ(ascii_composition.size(), bounds.size()); 1516 ASSERT_EQ(ascii_composition.size(), bounds.size());
1516 1517
1517 for (size_t i = 0; i < bounds.size(); ++i) 1518 for (size_t i = 0; i < bounds.size(); ++i)
1518 EXPECT_LT(0, bounds[i].width()); 1519 EXPECT_LT(0, bounds[i].width());
1519 view()->OnImeCommitText(empty_string, gfx::Range::InvalidRange(), 0); 1520 view()->OnImeCommitText(empty_string,
1521 std::vector<blink::WebCompositionUnderline>(),
1522 gfx::Range::InvalidRange(), 0);
1520 1523
1521 // Non surrogate pair unicode character. 1524 // Non surrogate pair unicode character.
1522 const base::string16 unicode_composition = base::UTF8ToUTF16( 1525 const base::string16 unicode_composition = base::UTF8ToUTF16(
1523 "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); 1526 "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A");
1524 view()->OnImeSetComposition(unicode_composition, empty_underline, 1527 view()->OnImeSetComposition(unicode_composition, empty_underline,
1525 gfx::Range::InvalidRange(), 0, 0); 1528 gfx::Range::InvalidRange(), 0, 0);
1526 view()->GetCompositionCharacterBounds(&bounds); 1529 view()->GetCompositionCharacterBounds(&bounds);
1527 ASSERT_EQ(unicode_composition.size(), bounds.size()); 1530 ASSERT_EQ(unicode_composition.size(), bounds.size());
1528 for (size_t i = 0; i < bounds.size(); ++i) 1531 for (size_t i = 0; i < bounds.size(); ++i)
1529 EXPECT_LT(0, bounds[i].width()); 1532 EXPECT_LT(0, bounds[i].width());
1530 view()->OnImeCommitText(empty_string, gfx::Range::InvalidRange(), 0); 1533 view()->OnImeCommitText(empty_string, empty_underline,
1534 gfx::Range::InvalidRange(), 0);
1531 1535
1532 // Surrogate pair character. 1536 // Surrogate pair character.
1533 const base::string16 surrogate_pair_char = 1537 const base::string16 surrogate_pair_char =
1534 base::UTF8ToUTF16("\xF0\xA0\xAE\x9F"); 1538 base::UTF8ToUTF16("\xF0\xA0\xAE\x9F");
1535 view()->OnImeSetComposition(surrogate_pair_char, 1539 view()->OnImeSetComposition(surrogate_pair_char,
1536 empty_underline, 1540 empty_underline,
1537 gfx::Range::InvalidRange(), 1541 gfx::Range::InvalidRange(),
1538 0, 1542 0,
1539 0); 1543 0);
1540 view()->GetCompositionCharacterBounds(&bounds); 1544 view()->GetCompositionCharacterBounds(&bounds);
1541 ASSERT_EQ(surrogate_pair_char.size(), bounds.size()); 1545 ASSERT_EQ(surrogate_pair_char.size(), bounds.size());
1542 EXPECT_LT(0, bounds[0].width()); 1546 EXPECT_LT(0, bounds[0].width());
1543 EXPECT_EQ(0, bounds[1].width()); 1547 EXPECT_EQ(0, bounds[1].width());
1544 view()->OnImeCommitText(empty_string, gfx::Range::InvalidRange(), 0); 1548 view()->OnImeCommitText(empty_string, empty_underline,
1549 gfx::Range::InvalidRange(), 0);
1545 1550
1546 // Mixed string. 1551 // Mixed string.
1547 const base::string16 surrogate_pair_mixed_composition = 1552 const base::string16 surrogate_pair_mixed_composition =
1548 surrogate_pair_char + base::UTF8ToUTF16("\xE3\x81\x82") + 1553 surrogate_pair_char + base::UTF8ToUTF16("\xE3\x81\x82") +
1549 surrogate_pair_char + base::UTF8ToUTF16("b") + surrogate_pair_char; 1554 surrogate_pair_char + base::UTF8ToUTF16("b") + surrogate_pair_char;
1550 const size_t utf16_length = 8UL; 1555 const size_t utf16_length = 8UL;
1551 const bool is_surrogate_pair_empty_rect[8] = { 1556 const bool is_surrogate_pair_empty_rect[8] = {
1552 false, true, false, false, true, false, false, true }; 1557 false, true, false, false, true, false, false, true };
1553 view()->OnImeSetComposition(surrogate_pair_mixed_composition, 1558 view()->OnImeSetComposition(surrogate_pair_mixed_composition,
1554 empty_underline, 1559 empty_underline,
1555 gfx::Range::InvalidRange(), 1560 gfx::Range::InvalidRange(),
1556 0, 1561 0,
1557 0); 1562 0);
1558 view()->GetCompositionCharacterBounds(&bounds); 1563 view()->GetCompositionCharacterBounds(&bounds);
1559 ASSERT_EQ(utf16_length, bounds.size()); 1564 ASSERT_EQ(utf16_length, bounds.size());
1560 for (size_t i = 0; i < utf16_length; ++i) { 1565 for (size_t i = 0; i < utf16_length; ++i) {
1561 if (is_surrogate_pair_empty_rect[i]) { 1566 if (is_surrogate_pair_empty_rect[i]) {
1562 EXPECT_EQ(0, bounds[i].width()); 1567 EXPECT_EQ(0, bounds[i].width());
1563 } else { 1568 } else {
1564 EXPECT_LT(0, bounds[i].width()); 1569 EXPECT_LT(0, bounds[i].width());
1565 } 1570 }
1566 } 1571 }
1567 view()->OnImeCommitText(empty_string, gfx::Range::InvalidRange(), 0); 1572 view()->OnImeCommitText(empty_string, empty_underline,
1573 gfx::Range::InvalidRange(), 0);
1568 } 1574 }
1569 #endif 1575 #endif
1570 1576
1571 TEST_F(RenderViewImplTest, SetEditableSelectionAndComposition) { 1577 TEST_F(RenderViewImplTest, SetEditableSelectionAndComposition) {
1572 // Load an HTML page consisting of an input field. 1578 // Load an HTML page consisting of an input field.
1573 LoadHTML("<html>" 1579 LoadHTML("<html>"
1574 "<head>" 1580 "<head>"
1575 "</head>" 1581 "</head>"
1576 "<body>" 1582 "<body>"
1577 "<input id=\"test1\" value=\"some test text hello\"></input>" 1583 "<input id=\"test1\" value=\"some test text hello\"></input>"
(...skipping 972 matching lines...) Expand 10 before | Expand all | Expand 10 after
2550 ExpectPauseAndResume(3); 2556 ExpectPauseAndResume(3);
2551 blink::WebScriptSource source2( 2557 blink::WebScriptSource source2(
2552 WebString::fromUTF8("function func2() { func1(); }; func2();")); 2558 WebString::fromUTF8("function func2() { func1(); }; func2();"));
2553 frame()->GetWebFrame()->executeScriptInIsolatedWorld(17, &source2, 1, 1); 2559 frame()->GetWebFrame()->executeScriptInIsolatedWorld(17, &source2, 1, 1);
2554 2560
2555 EXPECT_FALSE(IsPaused()); 2561 EXPECT_FALSE(IsPaused());
2556 Detach(); 2562 Detach();
2557 } 2563 }
2558 2564
2559 } // namespace content 2565 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698