Index: third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp |
diff --git a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp |
index 52d9ddb57b8a77cf091b20e3979e5eadc74b753d..2d305c9039006b6e9b18aae27f6c044d373810ba 100644 |
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp |
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp |
@@ -312,4 +312,45 @@ TEST_F(DocumentMarkerControllerTest, RemoveSpellingMarkersUnderWords) { |
EXPECT_EQ(DocumentMarker::kTextMatch, marker.GetType()); |
} |
+TEST_F(DocumentMarkerControllerTest, FirstMarkerIntersectingOffsetRange) { |
+ SetBodyContent("<div contenteditable>123456789</div>"); |
+ GetDocument().UpdateStyleAndLayout(); |
+ Element* div = GetDocument().QuerySelector("div"); |
+ Text* text = ToText(div->firstChild()); |
+ |
+ // Add a spelling marker on "123" |
+ MarkerController().AddSpellingMarker( |
+ EphemeralRange(Position(text, 0), Position(text, 3))); |
+ |
+ // Query for a spellcheck marker intersecting "3456" |
+ const DocumentMarker* const result = |
+ MarkerController().FirstMarkerIntersectingOffsetRange( |
+ *text, 2, 6, DocumentMarker::MisspellingMarkers()); |
+ |
+ EXPECT_EQ(DocumentMarker::kSpelling, result->GetType()); |
+ EXPECT_EQ(0u, result->StartOffset()); |
+ EXPECT_EQ(3u, result->EndOffset()); |
+} |
+ |
+TEST_F(DocumentMarkerControllerTest, |
+ FirstMarkerIntersectingOffsetRange_collapsed) { |
+ SetBodyContent("<div contenteditable>123456789</div>"); |
+ GetDocument().UpdateStyleAndLayout(); |
+ Element* div = GetDocument().QuerySelector("div"); |
+ Text* text = ToText(div->firstChild()); |
+ |
+ // Add a spelling marker on "123" |
+ MarkerController().AddSpellingMarker( |
+ EphemeralRange(Position(text, 0), Position(text, 3))); |
+ |
+ // Query for a spellcheck marker containing the position between "1" and "2" |
+ const DocumentMarker* const result = |
+ MarkerController().FirstMarkerIntersectingOffsetRange( |
+ *text, 1, 1, DocumentMarker::MisspellingMarkers()); |
+ |
+ EXPECT_EQ(DocumentMarker::kSpelling, result->GetType()); |
+ EXPECT_EQ(0u, result->StartOffset()); |
+ EXPECT_EQ(3u, result->EndOffset()); |
+} |
+ |
} // namespace blink |