| Index: third_party/WebKit/Source/web/tests/WebFrameTest.cpp
|
| diff --git a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
|
| index b57793917546d5efa73323258586309bb06b6ca1..677e428ad4aac5227d3522450e5f734fe8b60980 100644
|
| --- a/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
|
| +++ b/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
|
| @@ -321,6 +321,36 @@ class WebFrameTest : public ::testing::Test {
|
| WebFrame* parent,
|
| WebFrame* new_child);
|
|
|
| + int NumMarkersInRange(const Document* document,
|
| + const EphemeralRange& range,
|
| + DocumentMarker::MarkerTypes marker_types) {
|
| + Node* start_container = range.StartPosition().ComputeContainerNode();
|
| + unsigned start_offset = static_cast<unsigned>(
|
| + range.StartPosition().ComputeOffsetInContainerNode());
|
| +
|
| + Node* end_container = range.EndPosition().ComputeContainerNode();
|
| + unsigned end_offset = static_cast<unsigned>(
|
| + range.EndPosition().ComputeOffsetInContainerNode());
|
| +
|
| + int node_count = 0;
|
| + for (Node& node : range.Nodes()) {
|
| + const DocumentMarkerVector& markers_in_node =
|
| + document->Markers().MarkersFor(&node, marker_types);
|
| + node_count += std::count_if(
|
| + markers_in_node.begin(), markers_in_node.end(),
|
| + [start_offset, end_offset, &node, &start_container,
|
| + &end_container](const DocumentMarker* marker) {
|
| + if (node == start_container && marker->EndOffset() <= start_offset)
|
| + return false;
|
| + if (node == end_container && marker->StartOffset() >= end_offset)
|
| + return false;
|
| + return true;
|
| + });
|
| + }
|
| +
|
| + return node_count;
|
| + }
|
| +
|
| std::string base_url_;
|
| std::string not_base_url_;
|
| std::string chrome_url_;
|
| @@ -6547,9 +6577,8 @@ TEST_P(ParameterizedWebFrameTest, ReplaceMisspelledRange) {
|
| .ToNormalizedEphemeralRange();
|
|
|
| EXPECT_EQ(1, textcheck.NumberOfTimesChecked());
|
| - EXPECT_EQ(1U, document->Markers()
|
| - .MarkersInRange(selection_range, DocumentMarker::kSpelling)
|
| - .size());
|
| + EXPECT_EQ(1, NumMarkersInRange(document, selection_range,
|
| + DocumentMarker::kSpelling));
|
|
|
| frame->ReplaceMisspelledRange("welcome");
|
| EXPECT_EQ("_welcome_.",
|
| @@ -6596,9 +6625,8 @@ TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkers) {
|
| .ComputeVisibleSelectionInDOMTreeDeprecated()
|
| .ToNormalizedEphemeralRange();
|
|
|
| - EXPECT_EQ(0U, document->Markers()
|
| - .MarkersInRange(selection_range, DocumentMarker::kSpelling)
|
| - .size());
|
| + EXPECT_EQ(0, NumMarkersInRange(document, selection_range,
|
| + DocumentMarker::kSpelling));
|
| }
|
|
|
| static void GetSpellingMarkerOffsets(WebVector<unsigned>* offsets,
|
|
|