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

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

Issue 2829543002: [DMC #5] Add SpellCheckMarkerListImpl (Closed)
Patch Set: Remove comment about RemoveMarkersUnderWords() being SpellCheckMarkerListImpl-specific (it's not ye… 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 | « third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImpl.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImplTest.cpp
diff --git a/third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImplTest.cpp b/third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImplTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e814c1fafeb74c2ef676bf779f4cc6dd53be3f82
--- /dev/null
+++ b/third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImplTest.cpp
@@ -0,0 +1,150 @@
+// Copyright 2017 The Chromium Authors. All rights reserved. Use of
+// this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "core/editing/markers/SpellCheckMarkerListImpl.h"
+
+#include "core/editing/markers/RenderedDocumentMarker.h"
+#include "platform/heap/Handle.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace blink {
+
+class SpellCheckMarkerListImplTest : public ::testing::Test {
+ protected:
+ SpellCheckMarkerListImplTest()
+ : marker_list_(new SpellCheckMarkerListImpl()) {}
+
+ DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) {
+ return new DocumentMarker(DocumentMarker::kSpelling, start_offset,
+ end_offset, g_empty_string);
+ }
+
+ Persistent<SpellCheckMarkerListImpl> marker_list_;
+};
+
+TEST_F(SpellCheckMarkerListImplTest, AddSorting) {
+ // Insert some markers in an arbitrary order and verify that the list stays
+ // sorted
+ marker_list_->Add(CreateMarker(80, 85));
+ marker_list_->Add(CreateMarker(40, 45));
+ marker_list_->Add(CreateMarker(10, 15));
+ marker_list_->Add(CreateMarker(0, 5));
+ marker_list_->Add(CreateMarker(70, 75));
+ marker_list_->Add(CreateMarker(90, 95));
+ marker_list_->Add(CreateMarker(60, 65));
+ marker_list_->Add(CreateMarker(50, 55));
+ marker_list_->Add(CreateMarker(30, 35));
+ marker_list_->Add(CreateMarker(20, 25));
+
+ EXPECT_EQ(10u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->EndOffset());
+
+ EXPECT_EQ(10u, marker_list_->GetMarkers()[1]->StartOffset());
+ EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->EndOffset());
+
+ EXPECT_EQ(20u, marker_list_->GetMarkers()[2]->StartOffset());
+ EXPECT_EQ(25u, marker_list_->GetMarkers()[2]->EndOffset());
+
+ EXPECT_EQ(30u, marker_list_->GetMarkers()[3]->StartOffset());
+ EXPECT_EQ(35u, marker_list_->GetMarkers()[3]->EndOffset());
+
+ EXPECT_EQ(40u, marker_list_->GetMarkers()[4]->StartOffset());
+ EXPECT_EQ(45u, marker_list_->GetMarkers()[4]->EndOffset());
+
+ EXPECT_EQ(50u, marker_list_->GetMarkers()[5]->StartOffset());
+ EXPECT_EQ(55u, marker_list_->GetMarkers()[5]->EndOffset());
+
+ EXPECT_EQ(60u, marker_list_->GetMarkers()[6]->StartOffset());
+ EXPECT_EQ(65u, marker_list_->GetMarkers()[6]->EndOffset());
+
+ EXPECT_EQ(70u, marker_list_->GetMarkers()[7]->StartOffset());
+ EXPECT_EQ(75u, marker_list_->GetMarkers()[7]->EndOffset());
+
+ EXPECT_EQ(80u, marker_list_->GetMarkers()[8]->StartOffset());
+ EXPECT_EQ(85u, marker_list_->GetMarkers()[8]->EndOffset());
+
+ EXPECT_EQ(90u, marker_list_->GetMarkers()[9]->StartOffset());
+ EXPECT_EQ(95u, marker_list_->GetMarkers()[9]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, AddIntoEmptyList) {
+ marker_list_->Add(CreateMarker(5, 10));
+
+ EXPECT_EQ(1u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, AddMarkerNonMerging) {
+ marker_list_->Add(CreateMarker(5, 10));
+ marker_list_->Add(CreateMarker(15, 20));
+
+ EXPECT_EQ(2u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset());
+
+ EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->StartOffset());
+ EXPECT_EQ(20u, marker_list_->GetMarkers()[1]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingLater) {
+ marker_list_->Add(CreateMarker(5, 10));
+ marker_list_->Add(CreateMarker(0, 5));
+
+ EXPECT_EQ(1u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlier) {
+ marker_list_->Add(CreateMarker(0, 5));
+ marker_list_->Add(CreateMarker(5, 10));
+
+ EXPECT_EQ(1u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlierAndLater) {
+ marker_list_->Add(CreateMarker(0, 5));
+ marker_list_->Add(CreateMarker(10, 15));
+ marker_list_->Add(CreateMarker(5, 10));
+
+ EXPECT_EQ(1u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(15u, marker_list_->GetMarkers()[0]->EndOffset());
+}
+
+TEST_F(SpellCheckMarkerListImplTest, RemoveMarkersUnderWords) {
+ // wor
+ marker_list_->Add(CreateMarker(0, 3));
+
+ // word
+ marker_list_->Add(CreateMarker(4, 8));
+
+ // words
+ marker_list_->Add(CreateMarker(9, 14));
+
+ // word2
+ marker_list_->Add(CreateMarker(15, 20));
+
+ marker_list_->RemoveMarkersUnderWords("wor word words word2",
+ {"word", "word2"});
+ EXPECT_EQ(2u, marker_list_->GetMarkers().size());
+
+ EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset());
+ EXPECT_EQ(3u, marker_list_->GetMarkers()[0]->EndOffset());
+
+ EXPECT_EQ(9u, marker_list_->GetMarkers()[1]->StartOffset());
+ EXPECT_EQ(14u, marker_list_->GetMarkers()[1]->EndOffset());
+}
+
+} // namespace
« no previous file with comments | « third_party/WebKit/Source/core/editing/markers/SpellCheckMarkerListImpl.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698