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

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

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

Powered by Google App Engine
This is Rietveld 408576698