OLD | NEW |
| (Empty) |
1 // Copyright 2017 The Chromium Authors. All rights reserved. Use of | |
2 // this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "core/editing/markers/SpellCheckMarkerListImpl.h" | |
6 | |
7 #include "core/editing/markers/RenderedDocumentMarker.h" | |
8 #include "platform/heap/Handle.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 namespace blink { | |
12 | |
13 class SpellCheckMarkerListImplTest : public ::testing::Test { | |
14 protected: | |
15 SpellCheckMarkerListImplTest() | |
16 : marker_list_(new SpellCheckMarkerListImpl()) {} | |
17 | |
18 DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) { | |
19 return new DocumentMarker(DocumentMarker::kSpelling, start_offset, | |
20 end_offset, g_empty_string); | |
21 } | |
22 | |
23 Persistent<SpellCheckMarkerListImpl> marker_list_; | |
24 }; | |
25 | |
26 TEST_F(SpellCheckMarkerListImplTest, AddSorting) { | |
27 // Insert some markers in an arbitrary order and verify that the list stays | |
28 // sorted | |
29 marker_list_->Add(CreateMarker(80, 85)); | |
30 marker_list_->Add(CreateMarker(40, 45)); | |
31 marker_list_->Add(CreateMarker(10, 15)); | |
32 marker_list_->Add(CreateMarker(0, 5)); | |
33 marker_list_->Add(CreateMarker(70, 75)); | |
34 marker_list_->Add(CreateMarker(90, 95)); | |
35 marker_list_->Add(CreateMarker(60, 65)); | |
36 marker_list_->Add(CreateMarker(50, 55)); | |
37 marker_list_->Add(CreateMarker(30, 35)); | |
38 marker_list_->Add(CreateMarker(20, 25)); | |
39 | |
40 EXPECT_EQ(10u, marker_list_->GetMarkers().size()); | |
41 | |
42 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
43 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->EndOffset()); | |
44 | |
45 EXPECT_EQ(10u, marker_list_->GetMarkers()[1]->StartOffset()); | |
46 EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->EndOffset()); | |
47 | |
48 EXPECT_EQ(20u, marker_list_->GetMarkers()[2]->StartOffset()); | |
49 EXPECT_EQ(25u, marker_list_->GetMarkers()[2]->EndOffset()); | |
50 | |
51 EXPECT_EQ(30u, marker_list_->GetMarkers()[3]->StartOffset()); | |
52 EXPECT_EQ(35u, marker_list_->GetMarkers()[3]->EndOffset()); | |
53 | |
54 EXPECT_EQ(40u, marker_list_->GetMarkers()[4]->StartOffset()); | |
55 EXPECT_EQ(45u, marker_list_->GetMarkers()[4]->EndOffset()); | |
56 | |
57 EXPECT_EQ(50u, marker_list_->GetMarkers()[5]->StartOffset()); | |
58 EXPECT_EQ(55u, marker_list_->GetMarkers()[5]->EndOffset()); | |
59 | |
60 EXPECT_EQ(60u, marker_list_->GetMarkers()[6]->StartOffset()); | |
61 EXPECT_EQ(65u, marker_list_->GetMarkers()[6]->EndOffset()); | |
62 | |
63 EXPECT_EQ(70u, marker_list_->GetMarkers()[7]->StartOffset()); | |
64 EXPECT_EQ(75u, marker_list_->GetMarkers()[7]->EndOffset()); | |
65 | |
66 EXPECT_EQ(80u, marker_list_->GetMarkers()[8]->StartOffset()); | |
67 EXPECT_EQ(85u, marker_list_->GetMarkers()[8]->EndOffset()); | |
68 | |
69 EXPECT_EQ(90u, marker_list_->GetMarkers()[9]->StartOffset()); | |
70 EXPECT_EQ(95u, marker_list_->GetMarkers()[9]->EndOffset()); | |
71 } | |
72 | |
73 TEST_F(SpellCheckMarkerListImplTest, AddIntoEmptyList) { | |
74 marker_list_->Add(CreateMarker(5, 10)); | |
75 | |
76 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
77 | |
78 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset()); | |
79 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
80 } | |
81 | |
82 TEST_F(SpellCheckMarkerListImplTest, AddMarkerNonMerging) { | |
83 marker_list_->Add(CreateMarker(5, 10)); | |
84 marker_list_->Add(CreateMarker(15, 20)); | |
85 | |
86 EXPECT_EQ(2u, marker_list_->GetMarkers().size()); | |
87 | |
88 EXPECT_EQ(5u, marker_list_->GetMarkers()[0]->StartOffset()); | |
89 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
90 | |
91 EXPECT_EQ(15u, marker_list_->GetMarkers()[1]->StartOffset()); | |
92 EXPECT_EQ(20u, marker_list_->GetMarkers()[1]->EndOffset()); | |
93 } | |
94 | |
95 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingLater) { | |
96 marker_list_->Add(CreateMarker(5, 10)); | |
97 marker_list_->Add(CreateMarker(0, 5)); | |
98 | |
99 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
100 | |
101 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
102 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
103 } | |
104 | |
105 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlier) { | |
106 marker_list_->Add(CreateMarker(0, 5)); | |
107 marker_list_->Add(CreateMarker(5, 10)); | |
108 | |
109 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
110 | |
111 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
112 EXPECT_EQ(10u, marker_list_->GetMarkers()[0]->EndOffset()); | |
113 } | |
114 | |
115 TEST_F(SpellCheckMarkerListImplTest, AddMarkerMergingEarlierAndLater) { | |
116 marker_list_->Add(CreateMarker(0, 5)); | |
117 marker_list_->Add(CreateMarker(10, 15)); | |
118 marker_list_->Add(CreateMarker(5, 10)); | |
119 | |
120 EXPECT_EQ(1u, marker_list_->GetMarkers().size()); | |
121 | |
122 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
123 EXPECT_EQ(15u, marker_list_->GetMarkers()[0]->EndOffset()); | |
124 } | |
125 | |
126 TEST_F(SpellCheckMarkerListImplTest, RemoveMarkersUnderWords) { | |
127 // wor | |
128 marker_list_->Add(CreateMarker(0, 3)); | |
129 | |
130 // word | |
131 marker_list_->Add(CreateMarker(4, 8)); | |
132 | |
133 // words | |
134 marker_list_->Add(CreateMarker(9, 14)); | |
135 | |
136 // word2 | |
137 marker_list_->Add(CreateMarker(15, 20)); | |
138 | |
139 marker_list_->RemoveMarkersUnderWords("wor word words word2", | |
140 {"word", "word2"}); | |
141 EXPECT_EQ(2u, marker_list_->GetMarkers().size()); | |
142 | |
143 EXPECT_EQ(0u, marker_list_->GetMarkers()[0]->StartOffset()); | |
144 EXPECT_EQ(3u, marker_list_->GetMarkers()[0]->EndOffset()); | |
145 | |
146 EXPECT_EQ(9u, marker_list_->GetMarkers()[1]->StartOffset()); | |
147 EXPECT_EQ(14u, marker_list_->GetMarkers()[1]->EndOffset()); | |
148 } | |
149 | |
150 } // namespace | |
OLD | NEW |