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

Unified Diff: third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp

Issue 2948133004: [MarkersIntersectingRange #2] Add DocumentMarkerController::MarkersIntersectingRange() (Closed)
Patch Set: Update comment, Empty => Collapsed 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 side-by-side diff with in-line comments
Download patch
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 fb1fcc9d8f69d83a452acd46f82bc360fc14e200..3f07c432da6a6601fa64154f1223e2ab6b38fba9 100644
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
@@ -329,4 +329,56 @@ TEST_F(DocumentMarkerControllerTest, RemoveSpellingMarkersUnderWords) {
EXPECT_EQ(DocumentMarker::kTextMatch, marker.GetType());
}
+TEST_F(DocumentMarkerControllerTest, MarkersIntersectingRange) {
+ SetBodyInnerHTML("<div contenteditable>123456789</div>");
+ GetDocument().UpdateStyleAndLayout();
+ Element* div = GetDocument().QuerySelector("div");
+ Node* text = div->firstChild();
+
+ // Add a spelling marker on "123"
+ MarkerController().AddSpellingMarker(
+ EphemeralRange(Position(text, 0), Position(text, 3)));
+ // Add a text match marker on "456"
+ MarkerController().AddTextMatchMarker(
+ EphemeralRange(Position(text, 3), Position(text, 6)),
+ TextMatchMarker::MatchStatus::kInactive);
+ // Add a grammar marker on "789"
+ MarkerController().AddSpellingMarker(
+ EphemeralRange(Position(text, 6), Position(text, 9)));
+
+ // Query for spellcheck markers intersecting "3456". The text match marker
+ // should not be returned, nor should the spelling marker touching the range.
+ const HeapVector<std::pair<Member<Node>, Member<DocumentMarker>>>& results =
+ MarkerController().MarkersIntersectingRange(
+ EphemeralRange(Position(text, 2), Position(text, 6)),
+ DocumentMarker::MisspellingMarkers());
+
+ EXPECT_EQ(1u, results.size());
+ EXPECT_EQ(DocumentMarker::kSpelling, results[0].second->GetType());
+ EXPECT_EQ(0u, results[0].second->StartOffset());
+ EXPECT_EQ(3u, results[0].second->EndOffset());
+}
+
+TEST_F(DocumentMarkerControllerTest, MarkersIntersectingCollapsedRange) {
+ SetBodyInnerHTML("<div contenteditable>123456789</div>");
+ GetDocument().UpdateStyleAndLayout();
+ Element* div = GetDocument().QuerySelector("div");
+ Node* text = div->firstChild();
+
+ // Add a spelling marker on "123"
+ MarkerController().AddSpellingMarker(
+ EphemeralRange(Position(text, 0), Position(text, 3)));
+
+ // Query for spellcheck markers containing the position between "1" and "2"
+ const HeapVector<std::pair<Member<Node>, Member<DocumentMarker>>>& results =
+ MarkerController().MarkersIntersectingRange(
+ EphemeralRange(Position(text, 1), Position(text, 1)),
+ DocumentMarker::MisspellingMarkers());
+
+ EXPECT_EQ(1u, results.size());
+ EXPECT_EQ(DocumentMarker::kSpelling, results[0].second->GetType());
+ EXPECT_EQ(0u, results[0].second->StartOffset());
+ EXPECT_EQ(3u, results[0].second->EndOffset());
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698