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

Unified Diff: third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp

Issue 2895353003: Split DMLEditor::ShiftMarkers() into content-dependent and -independent versions (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/markers/CompositionMarkerListImpl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
diff --git a/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp b/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
index ee655ceb6c46a3b6be73f73e6e2b3c317a6bea58..51e99bb491512113701661d32b004bd768a839dc 100644
--- a/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
+++ b/third_party/WebKit/Source/core/editing/InputMethodControllerTest.cpp
@@ -1519,133 +1519,7 @@ TEST_F(InputMethodControllerTest, CommitEmptyTextDeletesSelection) {
EXPECT_STREQ("Abc 1", input->value().Utf8().data());
}
-static String GetMarkedText(
- DocumentMarkerController& document_marker_controller,
- Node* node,
- int marker_index) {
- DocumentMarker* marker = document_marker_controller.Markers()[marker_index];
- return node->textContent().Substring(
- marker->StartOffset(), marker->EndOffset() - marker->StartOffset());
-}
-
-TEST_F(InputMethodControllerTest,
- Marker_WhitespaceFixupAroundMarkerNotContainingSpace) {
- Element* div = InsertHTMLElement(
- "<div id='sample' contenteditable>Initial text blah</div>", "sample");
-
- // Add marker under "text" (use TextMatch since Composition markers don't
- // persist across editing operations)
- EphemeralRange marker_range = PlainTextRange(8, 12).CreateRange(*div);
- GetDocument().Markers().AddMarker(marker_range.StartPosition(),
- marker_range.EndPosition(),
- DocumentMarker::kTextMatch);
- // Delete "Initial"
- Vector<CompositionUnderline> empty_underlines;
- Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Delete "blah"
- Controller().SetCompositionFromExistingText(empty_underlines, 6, 10);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Check that the marker is still attached to "text" and doesn't include
- // either space around it
- EXPECT_EQ(1u, GetDocument().Markers().MarkersFor(div->firstChild()).size());
- EXPECT_STREQ("text",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
-}
-
-TEST_F(InputMethodControllerTest,
- Marker_WhitespaceFixupAroundMarkerBeginningWithSpace) {
- Element* div = InsertHTMLElement(
- "<div id='sample' contenteditable>Initial text blah</div>", "sample");
-
- // Add marker under " text" (use TextMatch since Composition markers don't
- // persist across editing operations)
- EphemeralRange marker_range = PlainTextRange(7, 12).CreateRange(*div);
- GetDocument().Markers().AddMarker(marker_range.StartPosition(),
- marker_range.EndPosition(),
- DocumentMarker::kTextMatch);
- // Delete "Initial"
- Vector<CompositionUnderline> empty_underlines;
- Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Delete "blah"
- Controller().SetCompositionFromExistingText(empty_underlines, 6, 10);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Check that the marker is still attached to " text" and includes the space
- // before "text" but not the space after
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("\xC2\xA0text",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
-}
-
-TEST_F(InputMethodControllerTest,
- Marker_WhitespaceFixupAroundMarkerEndingWithSpace) {
- Element* div = InsertHTMLElement(
- "<div id='sample' contenteditable>Initial text blah</div>", "sample");
-
- // Add marker under "text " (use TextMatch since Composition markers don't
- // persist across editing operations)
- EphemeralRange marker_range = PlainTextRange(8, 13).CreateRange(*div);
- GetDocument().Markers().AddMarker(marker_range.StartPosition(),
- marker_range.EndPosition(),
- DocumentMarker::kTextMatch);
- // Delete "Initial"
- Vector<CompositionUnderline> empty_underlines;
- Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Delete "blah"
- Controller().SetCompositionFromExistingText(empty_underlines, 6, 10);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Check that the marker is still attached to "text " and includes the space
- // after "text" but not the space before
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("text\xC2\xA0",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
-}
-
-TEST_F(InputMethodControllerTest,
- Marker_WhitespaceFixupAroundMarkerBeginningAndEndingWithSpaces) {
- Element* div = InsertHTMLElement(
- "<div id='sample' contenteditable>Initial text blah</div>", "sample");
-
- // Add marker under " text " (use TextMatch since Composition markers don't
- // persist across editing operations)
- EphemeralRange marker_range = PlainTextRange(7, 13).CreateRange(*div);
- GetDocument().Markers().AddMarker(marker_range.StartPosition(),
- marker_range.EndPosition(),
- DocumentMarker::kTextMatch);
-
- // Delete "Initial"
- Vector<CompositionUnderline> empty_underlines;
- Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Delete "blah"
- Controller().SetCompositionFromExistingText(empty_underlines, 6, 10);
- Controller().CommitText(String(""), empty_underlines, 0);
-
- // Check that the marker is still attached to " text " and includes both the
- // space before "text" and the space after
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("\xC2\xA0text\xC2\xA0",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
-}
-
-TEST_F(InputMethodControllerTest, Marker_ReplaceStartOfMarker) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceStartOfMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>Initial text</div>", "sample");
@@ -1660,15 +1534,12 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceStartOfMarker) {
Controller().SetCompositionFromExistingText(empty_underlines, 0, 7);
Controller().CommitText(String("Original"), empty_underlines, 0);
- // Verify marker is under "Original text"
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("Original text",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceTextContainsStartOfMarker) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_ReplaceTextContainsStartOfMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>This is some initial text</div>",
"sample");
@@ -1684,15 +1555,11 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceTextContainsStartOfMarker) {
Controller().SetCompositionFromExistingText(empty_underlines, 8, 20);
Controller().CommitText(String("boring"), empty_underlines, 0);
- // Verify marker is under " text"
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- EXPECT_STREQ(" text",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceEndOfMarker) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEndOfMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>Initial text</div>", "sample");
@@ -1707,15 +1574,12 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceEndOfMarker) {
Controller().SetCompositionFromExistingText(empty_underlines, 8, 12);
Controller().CommitText(String("string"), empty_underlines, 0);
- // Verify marker is under "Initial string"
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("Initial string",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceTextContainsEndOfMarker) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_ReplaceTextContainsEndOfMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>This is some initial text</div>",
"sample");
@@ -1733,15 +1597,11 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceTextContainsEndOfMarker) {
EXPECT_STREQ("This is some content", div->innerHTML().Utf8().data());
- // Verify marker is under "some "
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- EXPECT_STREQ("some ",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceEntireMarker) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_ReplaceEntireMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>Initial text</div>", "sample");
@@ -1756,15 +1616,12 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceEntireMarker) {
Controller().SetCompositionFromExistingText(empty_underlines, 8, 12);
Controller().CommitText(String("string"), empty_underlines, 0);
- // Verify marker is under "string"
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
- ASSERT_STREQ("string",
- GetMarkedText(GetDocument().Markers(), div->firstChild(), 0)
- .Utf8()
- .data());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceTextWithMarkerAtBeginning) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_ReplaceTextWithMarkerAtBeginning) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>Initial text</div>", "sample");
@@ -1785,7 +1642,8 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceTextWithMarkerAtBeginning) {
EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_ReplaceTextWithMarkerAtEnd) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_ReplaceTextWithMarkerAtEnd) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>Initial text</div>", "sample");
@@ -1806,7 +1664,7 @@ TEST_F(InputMethodControllerTest, Marker_ReplaceTextWithMarkerAtEnd) {
EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_Deletions) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_Deletions) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>1111122222333334444455555</div>",
"sample");
@@ -1844,22 +1702,17 @@ TEST_F(InputMethodControllerTest, Marker_Deletions) {
Controller().CommitText(String(""), empty_underlines, 0);
// Verify markers were updated correctly
- EXPECT_EQ(4u, GetDocument().Markers().Markers().size());
+ EXPECT_EQ(2u, GetDocument().Markers().Markers().size());
EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset());
EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset());
- EXPECT_EQ(5u, GetDocument().Markers().Markers()[1]->StartOffset());
- EXPECT_EQ(8u, GetDocument().Markers().Markers()[1]->EndOffset());
-
- EXPECT_EQ(8u, GetDocument().Markers().Markers()[2]->StartOffset());
- EXPECT_EQ(11u, GetDocument().Markers().Markers()[2]->EndOffset());
-
- EXPECT_EQ(11u, GetDocument().Markers().Markers()[3]->StartOffset());
- EXPECT_EQ(16u, GetDocument().Markers().Markers()[3]->EndOffset());
+ EXPECT_EQ(11u, GetDocument().Markers().Markers()[1]->StartOffset());
+ EXPECT_EQ(16u, GetDocument().Markers().Markers()[1]->EndOffset());
}
-TEST_F(InputMethodControllerTest, Marker_DeleteExactlyOnMarker) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_DeleteExactlyOnMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>1111122222333334444455555</div>",
"sample");
@@ -1878,7 +1731,7 @@ TEST_F(InputMethodControllerTest, Marker_DeleteExactlyOnMarker) {
EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_DeleteMiddleOfMarker) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_DeleteMiddleOfMarker) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>1111122222333334444455555</div>",
"sample");
@@ -1893,13 +1746,12 @@ TEST_F(InputMethodControllerTest, Marker_DeleteMiddleOfMarker) {
Controller().SetCompositionFromExistingText(empty_underlines, 6, 9);
Controller().CommitText(String(""), empty_underlines, 0);
- EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
-
- EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->StartOffset());
- EXPECT_EQ(7u, GetDocument().Markers().Markers()[0]->EndOffset());
+ // Verify marker was removed
+ EXPECT_EQ(0u, GetDocument().Markers().Markers().size());
}
-TEST_F(InputMethodControllerTest, Marker_InsertInMarkerInterior) {
+TEST_F(InputMethodControllerTest,
+ ContentDependentMarker_InsertInMarkerInterior) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>1111122222333334444455555</div>",
"sample");
@@ -1926,19 +1778,16 @@ TEST_F(InputMethodControllerTest, Marker_InsertInMarkerInterior) {
Controller().SetComposition("", empty_underlines, 7, 7);
Controller().CommitText(String("66666"), empty_underlines, -7);
- EXPECT_EQ(3u, GetDocument().Markers().Markers().size());
+ EXPECT_EQ(2u, GetDocument().Markers().Markers().size());
EXPECT_EQ(0u, GetDocument().Markers().Markers()[0]->StartOffset());
EXPECT_EQ(5u, GetDocument().Markers().Markers()[0]->EndOffset());
- EXPECT_EQ(5u, GetDocument().Markers().Markers()[1]->StartOffset());
- EXPECT_EQ(15u, GetDocument().Markers().Markers()[1]->EndOffset());
-
- EXPECT_EQ(15u, GetDocument().Markers().Markers()[2]->StartOffset());
- EXPECT_EQ(20u, GetDocument().Markers().Markers()[2]->EndOffset());
+ EXPECT_EQ(15u, GetDocument().Markers().Markers()[1]->StartOffset());
+ EXPECT_EQ(20u, GetDocument().Markers().Markers()[1]->EndOffset());
}
-TEST_F(InputMethodControllerTest, Marker_InsertBetweenMarkers) {
+TEST_F(InputMethodControllerTest, ContentDependentMarker_InsertBetweenMarkers) {
Element* div = InsertHTMLElement(
"<div id='sample' contenteditable>1111122222333334444455555</div>",
"sample");
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/editing/markers/CompositionMarkerListImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698