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

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

Issue 2650113004: [WIP] Add support for Android SuggestionSpans when editing text (Closed)
Patch Set: Uploading the latest version from my repo so I can reference it Created 3 years, 8 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 baa132cf86190273290df2d1676d4be2e27c0eff..9a7434825cc254be91833f4b222331caeef8aa87 100644
--- a/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
+++ b/third_party/WebKit/Source/core/editing/markers/DocumentMarkerControllerTest.cpp
@@ -36,6 +36,7 @@
#include "core/dom/Range.h"
#include "core/dom/Text.h"
#include "core/editing/EphemeralRange.h"
+#include "core/editing/PlainTextRange.h"
#include "core/html/HTMLElement.h"
#include "core/testing/DummyPageHolder.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -56,7 +57,6 @@ class DocumentMarkerControllerTest : public ::testing::Test {
Text* createTextNode(const char*);
void markNodeContents(Node*);
- void markNodeContentsWithComposition(Node*);
void setBodyInnerHTML(const char*);
private:
@@ -232,4 +232,73 @@ TEST_F(DocumentMarkerControllerTest, SetMarkerkActiveTest) {
EXPECT_TRUE(markerController().setTextMatchMarkersActive(range, true));
}
+TEST_F(DocumentMarkerControllerTest, MarkersInRange) {
+ setBodyInnerHTML("<b>range, not in range</b>");
+ document().updateStyleAndLayout();
+ Element* bElement = toElement(document().body()->firstChild());
+ EphemeralRange markerRange = PlainTextRange(0, 5).createRange(*bElement);
+ markerController().addTextMatchMarker(markerRange, false);
+
+ DocumentMarkerVector results;
+
+ // Checking a zero-length range inside a DocumentMarker should return the
+ // marker
+ EphemeralRange rangeToCheck1 = PlainTextRange(2, 2).createRange(*bElement);
+ results = document().markers().markersInRange(rangeToCheck1,
+ DocumentMarker::AllMarkers());
+ EXPECT_EQ(1u, results.size());
+
+ // Checking a non-zero length range on the endpoint of a DocumentMarker
+ // shouldn't return anything
+ EphemeralRange rangeToCheck2 = PlainTextRange(0, 0).createRange(*bElement);
+ results = document().markers().markersInRange(rangeToCheck2,
+ DocumentMarker::AllMarkers());
+ EXPECT_EQ(0u, results.size());
+
+ // Checking a non-zero length that overlaps a DocumentMarker should return
+ // that marker
+ EphemeralRange rangeToCheck3 = PlainTextRange(4, 6).createRange(*bElement);
+ results = document().markers().markersInRange(rangeToCheck3,
+ DocumentMarker::AllMarkers());
+ EXPECT_EQ(1u, results.size());
+}
+
+TEST_F(DocumentMarkerControllerTest, MarkersInRangeInclusive) {
+ setBodyInnerHTML("<b>range, not in range</b>");
+ document().updateStyleAndLayout();
+ Element* bElement = toElement(document().body()->firstChild());
+ EphemeralRange markerRange = PlainTextRange(0, 5).createRange(*bElement);
+ markerController().addTextMatchMarker(markerRange, false);
+
+ DocumentMarkerVector results;
+
+ // Checking a zero-length range inside a DocumentMarker should return the
+ // marker
+ EphemeralRange rangeToCheck1 = PlainTextRange(2, 2).createRange(*bElement);
+ results = document().markers().markersInRangeInclusive(
+ rangeToCheck1, DocumentMarker::AllMarkers());
+ EXPECT_EQ(1u, results.size());
+
+ // Checking a zero length range touching a DocumentMarker should return the
+ // marker
+ EphemeralRange rangeToCheck2 = PlainTextRange(0, 0).createRange(*bElement);
+ results = document().markers().markersInRangeInclusive(
+ rangeToCheck2, DocumentMarker::AllMarkers());
+ EXPECT_EQ(1u, results.size());
+
+ // Checking a non-zero length that overlaps a DocumentMarker should return
+ // that marker
+ EphemeralRange rangeToCheck3 = PlainTextRange(4, 6).createRange(*bElement);
+ results = document().markers().markersInRangeInclusive(
+ rangeToCheck3, DocumentMarker::AllMarkers());
+ EXPECT_EQ(1u, results.size());
+
+ // Checking a zero-length range not touching a DocumentMarker shouldn't return
+ // anything
+ EphemeralRange rangeToCheck4 = PlainTextRange(6, 6).createRange(*bElement);
+ results = document().markers().markersInRangeInclusive(
+ rangeToCheck4, DocumentMarker::AllMarkers());
+ EXPECT_EQ(0u, results.size());
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698