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

Side by Side Diff: third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp

Issue 2897103003: Fix some callsites of AddMarker() in InputMethodControllerTest (Closed)
Patch Set: Rebase Created 3 years, 7 months 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "core/editing/InputMethodController.h" 5 #include "core/editing/InputMethodController.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/dom/Element.h" 9 #include "core/dom/Element.h"
10 #include "core/dom/Range.h" 10 #include "core/dom/Range.h"
(...skipping 1507 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 Controller().CommitText(String("1"), empty_underlines, 0); 1518 Controller().CommitText(String("1"), empty_underlines, 0);
1519 EXPECT_STREQ("Abc 1", input->value().Utf8().data()); 1519 EXPECT_STREQ("Abc 1", input->value().Utf8().data());
1520 } 1520 }
1521 1521
1522 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceStartOfMarker) { 1522 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceStartOfMarker) {
1523 Element* div = InsertHTMLElement( 1523 Element* div = InsertHTMLElement(
1524 "<div id='sample' contenteditable>Initial text</div>", "sample"); 1524 "<div id='sample' contenteditable>Initial text</div>", "sample");
1525 1525
1526 // Add marker under "Initial text" 1526 // Add marker under "Initial text"
1527 EphemeralRange marker_range = PlainTextRange(0, 12).CreateRange(*div); 1527 EphemeralRange marker_range = PlainTextRange(0, 12).CreateRange(*div);
1528 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1528 GetDocument().Markers().AddTextMatchMarker(
1529 marker_range.EndPosition(), 1529 marker_range, DocumentMarker::MatchStatus::kInactive);
1530 DocumentMarker::kTextMatch);
1531 1530
1532 // Replace "Initial" with "Original" 1531 // Replace "Initial" with "Original"
1533 Vector<CompositionUnderline> empty_underlines; 1532 Vector<CompositionUnderline> empty_underlines;
1534 Controller().SetCompositionFromExistingText(empty_underlines, 0, 7); 1533 Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
1535 Controller().CommitText(String("Original"), empty_underlines, 0); 1534 Controller().CommitText(String("Original"), empty_underlines, 0);
1536 1535
1537 // Verify marker was removed 1536 // Verify marker was removed
1538 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1537 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1539 } 1538 }
1540 1539
1541 TEST_F(InputMethodControllerTest, 1540 TEST_F(InputMethodControllerTest,
1542 ContentDependentMarker_ReplaceTextContainsStartOfMarker) { 1541 ContentDependentMarker_ReplaceTextContainsStartOfMarker) {
1543 Element* div = InsertHTMLElement( 1542 Element* div = InsertHTMLElement(
1544 "<div id='sample' contenteditable>This is some initial text</div>", 1543 "<div id='sample' contenteditable>This is some initial text</div>",
1545 "sample"); 1544 "sample");
1546 1545
1547 // Add marker under "initial text" 1546 // Add marker under "initial text"
1548 EphemeralRange marker_range = PlainTextRange(13, 25).CreateRange(*div); 1547 EphemeralRange marker_range = PlainTextRange(13, 25).CreateRange(*div);
1549 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1548 GetDocument().Markers().AddTextMatchMarker(
1550 marker_range.EndPosition(), 1549 marker_range, DocumentMarker::MatchStatus::kInactive);
1551 DocumentMarker::kTextMatch);
1552 1550
1553 // Replace "some initial" with "boring" 1551 // Replace "some initial" with "boring"
1554 Vector<CompositionUnderline> empty_underlines; 1552 Vector<CompositionUnderline> empty_underlines;
1555 Controller().SetCompositionFromExistingText(empty_underlines, 8, 20); 1553 Controller().SetCompositionFromExistingText(empty_underlines, 8, 20);
1556 Controller().CommitText(String("boring"), empty_underlines, 0); 1554 Controller().CommitText(String("boring"), empty_underlines, 0);
1557 1555
1558 // Verify marker was removed 1556 // Verify marker was removed
1559 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1557 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1560 } 1558 }
1561 1559
1562 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEndOfMarker) { 1560 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEndOfMarker) {
1563 Element* div = InsertHTMLElement( 1561 Element* div = InsertHTMLElement(
1564 "<div id='sample' contenteditable>Initial text</div>", "sample"); 1562 "<div id='sample' contenteditable>Initial text</div>", "sample");
1565 1563
1566 // Add marker under "Initial text" 1564 // Add marker under "Initial text"
1567 EphemeralRange marker_range = PlainTextRange(0, 12).CreateRange(*div); 1565 EphemeralRange marker_range = PlainTextRange(0, 12).CreateRange(*div);
1568 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1566 GetDocument().Markers().AddTextMatchMarker(
1569 marker_range.EndPosition(), 1567 marker_range, DocumentMarker::MatchStatus::kInactive);
1570 DocumentMarker::kTextMatch);
1571 1568
1572 // Replace "text" with "string" 1569 // Replace "text" with "string"
1573 Vector<CompositionUnderline> empty_underlines; 1570 Vector<CompositionUnderline> empty_underlines;
1574 Controller().SetCompositionFromExistingText(empty_underlines, 8, 12); 1571 Controller().SetCompositionFromExistingText(empty_underlines, 8, 12);
1575 Controller().CommitText(String("string"), empty_underlines, 0); 1572 Controller().CommitText(String("string"), empty_underlines, 0);
1576 1573
1577 // Verify marker was removed 1574 // Verify marker was removed
1578 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1575 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1579 } 1576 }
1580 1577
1581 TEST_F(InputMethodControllerTest, 1578 TEST_F(InputMethodControllerTest,
1582 ContentDependentMarker_ReplaceTextContainsEndOfMarker) { 1579 ContentDependentMarker_ReplaceTextContainsEndOfMarker) {
1583 Element* div = InsertHTMLElement( 1580 Element* div = InsertHTMLElement(
1584 "<div id='sample' contenteditable>This is some initial text</div>", 1581 "<div id='sample' contenteditable>This is some initial text</div>",
1585 "sample"); 1582 "sample");
1586 1583
1587 // Add marker under "some initial" 1584 // Add marker under "some initial"
1588 EphemeralRange marker_range = PlainTextRange(8, 20).CreateRange(*div); 1585 EphemeralRange marker_range = PlainTextRange(8, 20).CreateRange(*div);
1589 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1586 GetDocument().Markers().AddTextMatchMarker(
1590 marker_range.EndPosition(), 1587 marker_range, DocumentMarker::MatchStatus::kInactive);
1591 DocumentMarker::kTextMatch);
1592 1588
1593 // Replace "initial text" with "content" 1589 // Replace "initial text" with "content"
1594 Vector<CompositionUnderline> empty_underlines; 1590 Vector<CompositionUnderline> empty_underlines;
1595 Controller().SetCompositionFromExistingText(empty_underlines, 13, 25); 1591 Controller().SetCompositionFromExistingText(empty_underlines, 13, 25);
1596 Controller().CommitText(String("content"), empty_underlines, 0); 1592 Controller().CommitText(String("content"), empty_underlines, 0);
1597 1593
1598 EXPECT_STREQ("This is some content", div->innerHTML().Utf8().data()); 1594 EXPECT_STREQ("This is some content", div->innerHTML().Utf8().data());
1599 1595
1600 // Verify marker was removed 1596 // Verify marker was removed
1601 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1597 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1602 } 1598 }
1603 1599
1604 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEntireMarker) { 1600 TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEntireMarker) {
1605 Element* div = InsertHTMLElement( 1601 Element* div = InsertHTMLElement(
1606 "<div id='sample' contenteditable>Initial text</div>", "sample"); 1602 "<div id='sample' contenteditable>Initial text</div>", "sample");
1607 1603
1608 // Add marker under "text" 1604 // Add marker under "text"
1609 EphemeralRange marker_range = PlainTextRange(8, 12).CreateRange(*div); 1605 EphemeralRange marker_range = PlainTextRange(8, 12).CreateRange(*div);
1610 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1606 GetDocument().Markers().AddTextMatchMarker(
1611 marker_range.EndPosition(), 1607 marker_range, DocumentMarker::MatchStatus::kInactive);
1612 DocumentMarker::kTextMatch);
1613 1608
1614 // Replace "text" with "string" 1609 // Replace "text" with "string"
1615 Vector<CompositionUnderline> empty_underlines; 1610 Vector<CompositionUnderline> empty_underlines;
1616 Controller().SetCompositionFromExistingText(empty_underlines, 8, 12); 1611 Controller().SetCompositionFromExistingText(empty_underlines, 8, 12);
1617 Controller().CommitText(String("string"), empty_underlines, 0); 1612 Controller().CommitText(String("string"), empty_underlines, 0);
1618 1613
1619 // Verify marker was removed 1614 // Verify marker was removed
1620 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1615 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1621 } 1616 }
1622 1617
1623 TEST_F(InputMethodControllerTest, 1618 TEST_F(InputMethodControllerTest,
1624 ContentDependentMarker_ReplaceTextWithMarkerAtBeginning) { 1619 ContentDependentMarker_ReplaceTextWithMarkerAtBeginning) {
1625 Element* div = InsertHTMLElement( 1620 Element* div = InsertHTMLElement(
1626 "<div id='sample' contenteditable>Initial text</div>", "sample"); 1621 "<div id='sample' contenteditable>Initial text</div>", "sample");
1627 1622
1628 // Add marker under "Initial" 1623 // Add marker under "Initial"
1629 EphemeralRange marker_range = PlainTextRange(0, 7).CreateRange(*div); 1624 EphemeralRange marker_range = PlainTextRange(0, 7).CreateRange(*div);
1630 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1625 GetDocument().Markers().AddTextMatchMarker(
1631 marker_range.EndPosition(), 1626 marker_range, DocumentMarker::MatchStatus::kInactive);
1632 DocumentMarker::kTextMatch);
1633 1627
1634 EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); 1628 EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
1635 1629
1636 // Replace "Initial text" with "New string" 1630 // Replace "Initial text" with "New string"
1637 Vector<CompositionUnderline> empty_underlines; 1631 Vector<CompositionUnderline> empty_underlines;
1638 Controller().SetCompositionFromExistingText(empty_underlines, 0, 12); 1632 Controller().SetCompositionFromExistingText(empty_underlines, 0, 12);
1639 Controller().CommitText(String("New string"), empty_underlines, 0); 1633 Controller().CommitText(String("New string"), empty_underlines, 0);
1640 1634
1641 // Verify marker was removed 1635 // Verify marker was removed
1642 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1636 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1643 } 1637 }
1644 1638
1645 TEST_F(InputMethodControllerTest, 1639 TEST_F(InputMethodControllerTest,
1646 ContentDependentMarker_ReplaceTextWithMarkerAtEnd) { 1640 ContentDependentMarker_ReplaceTextWithMarkerAtEnd) {
1647 Element* div = InsertHTMLElement( 1641 Element* div = InsertHTMLElement(
1648 "<div id='sample' contenteditable>Initial text</div>", "sample"); 1642 "<div id='sample' contenteditable>Initial text</div>", "sample");
1649 1643
1650 // Add marker under "text" 1644 // Add marker under "text"
1651 EphemeralRange marker_range = PlainTextRange(8, 12).CreateRange(*div); 1645 EphemeralRange marker_range = PlainTextRange(8, 12).CreateRange(*div);
1652 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1646 GetDocument().Markers().AddTextMatchMarker(
1653 marker_range.EndPosition(), 1647 marker_range, DocumentMarker::MatchStatus::kInactive);
1654 DocumentMarker::kTextMatch);
1655 1648
1656 EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); 1649 EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
1657 1650
1658 // Replace "Initial text" with "New string" 1651 // Replace "Initial text" with "New string"
1659 Vector<CompositionUnderline> empty_underlines; 1652 Vector<CompositionUnderline> empty_underlines;
1660 Controller().SetCompositionFromExistingText(empty_underlines, 0, 12); 1653 Controller().SetCompositionFromExistingText(empty_underlines, 0, 12);
1661 Controller().CommitText(String("New string"), empty_underlines, 0); 1654 Controller().CommitText(String("New string"), empty_underlines, 0);
1662 1655
1663 // Verify marker was removed 1656 // Verify marker was removed
1664 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1657 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1665 } 1658 }
1666 1659
1667 TEST_F(InputMethodControllerTest, ContentDependentMarker_Deletions) { 1660 TEST_F(InputMethodControllerTest, ContentDependentMarker_Deletions) {
1668 Element* div = InsertHTMLElement( 1661 Element* div = InsertHTMLElement(
1669 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1662 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1670 "sample"); 1663 "sample");
1671 1664
1672 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); 1665 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div);
1673 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1666 GetDocument().Markers().AddTextMatchMarker(
1674 marker_range.EndPosition(), 1667 marker_range, DocumentMarker::MatchStatus::kInactive);
1675 DocumentMarker::kTextMatch);
1676 1668
1677 marker_range = PlainTextRange(5, 10).CreateRange(*div); 1669 marker_range = PlainTextRange(5, 10).CreateRange(*div);
1678 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1670 GetDocument().Markers().AddTextMatchMarker(
1679 marker_range.EndPosition(), 1671 marker_range, DocumentMarker::MatchStatus::kInactive);
1680 DocumentMarker::kTextMatch);
1681 1672
1682 marker_range = PlainTextRange(10, 15).CreateRange(*div); 1673 marker_range = PlainTextRange(10, 15).CreateRange(*div);
1683 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1674 GetDocument().Markers().AddTextMatchMarker(
1684 marker_range.EndPosition(), 1675 marker_range, DocumentMarker::MatchStatus::kInactive);
1685 DocumentMarker::kTextMatch);
1686 1676
1687 marker_range = PlainTextRange(15, 20).CreateRange(*div); 1677 marker_range = PlainTextRange(15, 20).CreateRange(*div);
1688 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1678 GetDocument().Markers().AddTextMatchMarker(
1689 marker_range.EndPosition(), 1679 marker_range, DocumentMarker::MatchStatus::kInactive);
1690 DocumentMarker::kTextMatch);
1691 1680
1692 marker_range = PlainTextRange(20, 25).CreateRange(*div); 1681 marker_range = PlainTextRange(20, 25).CreateRange(*div);
1693 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1682 GetDocument().Markers().AddTextMatchMarker(
1694 marker_range.EndPosition(), 1683 marker_range, DocumentMarker::MatchStatus::kInactive);
1695 DocumentMarker::kTextMatch);
1696 1684
1697 EXPECT_EQ(5u, GetDocument().Markers().Markers().size()); 1685 EXPECT_EQ(5u, GetDocument().Markers().Markers().size());
1698 1686
1699 // Delete third marker and portions of second and fourth 1687 // Delete third marker and portions of second and fourth
1700 Vector<CompositionUnderline> empty_underlines; 1688 Vector<CompositionUnderline> empty_underlines;
1701 Controller().SetCompositionFromExistingText(empty_underlines, 8, 17); 1689 Controller().SetCompositionFromExistingText(empty_underlines, 8, 17);
1702 Controller().CommitText(String(""), empty_underlines, 0); 1690 Controller().CommitText(String(""), empty_underlines, 0);
1703 1691
1704 // Verify markers were updated correctly 1692 // Verify markers were updated correctly
1705 EXPECT_EQ(2u, GetDocument().Markers().Markers().size()); 1693 EXPECT_EQ(2u, GetDocument().Markers().Markers().size());
1706 1694
1707 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); 1695 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset());
1708 EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset()); 1696 EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset());
1709 1697
1710 EXPECT_EQ(11u, GetDocument().Markers().Markers()[1]->StartOffset()); 1698 EXPECT_EQ(11u, GetDocument().Markers().Markers()[1]->StartOffset());
1711 EXPECT_EQ(16u, GetDocument().Markers().Markers()[1]->EndOffset()); 1699 EXPECT_EQ(16u, GetDocument().Markers().Markers()[1]->EndOffset());
1712 } 1700 }
1713 1701
1714 TEST_F(InputMethodControllerTest, 1702 TEST_F(InputMethodControllerTest,
1715 ContentDependentMarker_DeleteExactlyOnMarker) { 1703 ContentDependentMarker_DeleteExactlyOnMarker) {
1716 Element* div = InsertHTMLElement( 1704 Element* div = InsertHTMLElement(
1717 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1705 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1718 "sample"); 1706 "sample");
1719 1707
1720 EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div); 1708 EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div);
1721 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1709 GetDocument().Markers().AddTextMatchMarker(
1722 marker_range.EndPosition(), 1710 marker_range, DocumentMarker::MatchStatus::kInactive);
1723 DocumentMarker::kTextMatch);
1724 1711
1725 EXPECT_EQ(1u, GetDocument().Markers().Markers().size()); 1712 EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
1726 1713
1727 // Delete exactly on the marker 1714 // Delete exactly on the marker
1728 Vector<CompositionUnderline> empty_underlines; 1715 Vector<CompositionUnderline> empty_underlines;
1729 Controller().SetCompositionFromExistingText(empty_underlines, 5, 10); 1716 Controller().SetCompositionFromExistingText(empty_underlines, 5, 10);
1730 Controller().CommitText(String(""), empty_underlines, 0); 1717 Controller().CommitText(String(""), empty_underlines, 0);
1731 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1718 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1732 } 1719 }
1733 1720
1734 TEST_F(InputMethodControllerTest, ContentDependentMarker_DeleteMiddleOfMarker) { 1721 TEST_F(InputMethodControllerTest, ContentDependentMarker_DeleteMiddleOfMarker) {
1735 Element* div = InsertHTMLElement( 1722 Element* div = InsertHTMLElement(
1736 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1723 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1737 "sample"); 1724 "sample");
1738 1725
1739 EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div); 1726 EphemeralRange marker_range = PlainTextRange(5, 10).CreateRange(*div);
1740 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1727 GetDocument().Markers().AddTextMatchMarker(
1741 marker_range.EndPosition(), 1728 marker_range, DocumentMarker::MatchStatus::kInactive);
1742 DocumentMarker::kTextMatch);
1743 1729
1744 // Delete middle of marker 1730 // Delete middle of marker
1745 Vector<CompositionUnderline> empty_underlines; 1731 Vector<CompositionUnderline> empty_underlines;
1746 Controller().SetCompositionFromExistingText(empty_underlines, 6, 9); 1732 Controller().SetCompositionFromExistingText(empty_underlines, 6, 9);
1747 Controller().CommitText(String(""), empty_underlines, 0); 1733 Controller().CommitText(String(""), empty_underlines, 0);
1748 1734
1749 // Verify marker was removed 1735 // Verify marker was removed
1750 EXPECT_EQ(0u, GetDocument().Markers().Markers().size()); 1736 EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
1751 } 1737 }
1752 1738
1753 TEST_F(InputMethodControllerTest, 1739 TEST_F(InputMethodControllerTest,
1754 ContentDependentMarker_InsertInMarkerInterior) { 1740 ContentDependentMarker_InsertInMarkerInterior) {
1755 Element* div = InsertHTMLElement( 1741 Element* div = InsertHTMLElement(
1756 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1742 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1757 "sample"); 1743 "sample");
1758 1744
1759 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); 1745 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div);
1760 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1746 GetDocument().Markers().AddTextMatchMarker(
1761 marker_range.EndPosition(), 1747 marker_range, DocumentMarker::MatchStatus::kInactive);
1762 DocumentMarker::kTextMatch);
1763 1748
1764 marker_range = PlainTextRange(5, 10).CreateRange(*div); 1749 marker_range = PlainTextRange(5, 10).CreateRange(*div);
1765 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1750 GetDocument().Markers().AddTextMatchMarker(
1766 marker_range.EndPosition(), 1751 marker_range, DocumentMarker::MatchStatus::kInactive);
1767 DocumentMarker::kTextMatch);
1768 1752
1769 marker_range = PlainTextRange(10, 15).CreateRange(*div); 1753 marker_range = PlainTextRange(10, 15).CreateRange(*div);
1770 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1754 GetDocument().Markers().AddTextMatchMarker(
1771 marker_range.EndPosition(), 1755 marker_range, DocumentMarker::MatchStatus::kInactive);
1772 DocumentMarker::kTextMatch);
1773 1756
1774 EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); 1757 EXPECT_EQ(3u, GetDocument().Markers().Markers().size());
1775 1758
1776 // insert in middle of second marker 1759 // insert in middle of second marker
1777 Vector<CompositionUnderline> empty_underlines; 1760 Vector<CompositionUnderline> empty_underlines;
1778 Controller().SetComposition("", empty_underlines, 7, 7); 1761 Controller().SetComposition("", empty_underlines, 7, 7);
1779 Controller().CommitText(String("66666"), empty_underlines, -7); 1762 Controller().CommitText(String("66666"), empty_underlines, -7);
1780 1763
1781 EXPECT_EQ(2u, GetDocument().Markers().Markers().size()); 1764 EXPECT_EQ(2u, GetDocument().Markers().Markers().size());
1782 1765
1783 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); 1766 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset());
1784 EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset()); 1767 EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset());
1785 1768
1786 EXPECT_EQ(15u, GetDocument().Markers().Markers()[1]->StartOffset()); 1769 EXPECT_EQ(15u, GetDocument().Markers().Markers()[1]->StartOffset());
1787 EXPECT_EQ(20u, GetDocument().Markers().Markers()[1]->EndOffset()); 1770 EXPECT_EQ(20u, GetDocument().Markers().Markers()[1]->EndOffset());
1788 } 1771 }
1789 1772
1790 TEST_F(InputMethodControllerTest, ContentDependentMarker_InsertBetweenMarkers) { 1773 TEST_F(InputMethodControllerTest, ContentDependentMarker_InsertBetweenMarkers) {
1791 Element* div = InsertHTMLElement( 1774 Element* div = InsertHTMLElement(
1792 "<div id='sample' contenteditable>1111122222333334444455555</div>", 1775 "<div id='sample' contenteditable>1111122222333334444455555</div>",
1793 "sample"); 1776 "sample");
1794 1777
1795 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div); 1778 EphemeralRange marker_range = PlainTextRange(0, 5).CreateRange(*div);
1796 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1779 GetDocument().Markers().AddTextMatchMarker(
1797 marker_range.EndPosition(), 1780 marker_range, DocumentMarker::MatchStatus::kInactive);
1798 DocumentMarker::kTextMatch);
1799 1781
1800 marker_range = PlainTextRange(5, 15).CreateRange(*div); 1782 marker_range = PlainTextRange(5, 15).CreateRange(*div);
1801 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1783 GetDocument().Markers().AddTextMatchMarker(
1802 marker_range.EndPosition(), 1784 marker_range, DocumentMarker::MatchStatus::kInactive);
1803 DocumentMarker::kTextMatch);
1804 1785
1805 marker_range = PlainTextRange(15, 20).CreateRange(*div); 1786 marker_range = PlainTextRange(15, 20).CreateRange(*div);
1806 GetDocument().Markers().AddMarker(marker_range.StartPosition(), 1787 GetDocument().Markers().AddTextMatchMarker(
1807 marker_range.EndPosition(), 1788 marker_range, DocumentMarker::MatchStatus::kInactive);
1808 DocumentMarker::kTextMatch);
1809 1789
1810 EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); 1790 EXPECT_EQ(3u, GetDocument().Markers().Markers().size());
1811 1791
1812 Vector<CompositionUnderline> empty_underlines; 1792 Vector<CompositionUnderline> empty_underlines;
1813 Controller().SetComposition("", empty_underlines, 5, 5); 1793 Controller().SetComposition("", empty_underlines, 5, 5);
1814 Controller().CommitText(String("77777"), empty_underlines, 0); 1794 Controller().CommitText(String("77777"), empty_underlines, 0);
1815 1795
1816 EXPECT_EQ(3u, GetDocument().Markers().Markers().size()); 1796 EXPECT_EQ(3u, GetDocument().Markers().Markers().size());
1817 1797
1818 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset()); 1798 EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset());
(...skipping 14 matching lines...) Expand all
1833 // Set selection before BODY(editable). 1813 // Set selection before BODY(editable).
1834 GetFrame().Selection().SetSelection( 1814 GetFrame().Selection().SetSelection(
1835 SelectionInDOMTree::Builder() 1815 SelectionInDOMTree::Builder()
1836 .Collapse(Position(GetDocument().documentElement(), 0)) 1816 .Collapse(Position(GetDocument().documentElement(), 0))
1837 .Build()); 1817 .Build());
1838 1818
1839 EXPECT_EQ(kWebTextInputTypeContentEditable, Controller().TextInputType()); 1819 EXPECT_EQ(kWebTextInputTypeContentEditable, Controller().TextInputType());
1840 } 1820 }
1841 1821
1842 } // namespace blink 1822 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698