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

Side by Side Diff: third_party/WebKit/Source/core/editing/markers/DocumentMarkerTest.cpp

Issue 2773343003: Add DocumentMarkerList in preparation for DocumentMarkerController refactor (Closed)
Patch Set: Add getShiftedMarkerPosition() test cases 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/editing/markers/DocumentMarker.h" 5 #include "core/editing/markers/DocumentMarker.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace blink { 9 namespace blink {
10 10
11 class DocumentMarkerTest : public ::testing::Test {}; 11 using ShiftMarkerResult = DocumentMarker::ShiftMarkerResult;
12
13 class DocumentMarkerTest : public ::testing::Test {
14 protected:
15 DocumentMarker* createMarker(unsigned startOffset, unsigned endOffset) {
16 return new DocumentMarker(startOffset, endOffset, false);
17 }
18 };
12 19
13 TEST_F(DocumentMarkerTest, MarkerTypeIteratorEmpty) { 20 TEST_F(DocumentMarkerTest, MarkerTypeIteratorEmpty) {
14 DocumentMarker::MarkerTypes types(0); 21 DocumentMarker::MarkerTypes types(0);
15 EXPECT_TRUE(types.begin() == types.end()); 22 EXPECT_TRUE(types.begin() == types.end());
16 } 23 }
17 24
18 TEST_F(DocumentMarkerTest, MarkerTypeIteratorOne) { 25 TEST_F(DocumentMarkerTest, MarkerTypeIteratorOne) {
19 DocumentMarker::MarkerTypes types(DocumentMarker::Spelling); 26 DocumentMarker::MarkerTypes types(DocumentMarker::Spelling);
20 ASSERT_TRUE(types.begin() != types.end()); 27 ASSERT_TRUE(types.begin() != types.end());
21 auto it = types.begin(); 28 auto it = types.begin();
(...skipping 16 matching lines...) Expand all
38 TEST_F(DocumentMarkerTest, MarkerTypeIteratorDistributed) { 45 TEST_F(DocumentMarkerTest, MarkerTypeIteratorDistributed) {
39 DocumentMarker::MarkerTypes types(0b101); // Spelling | TextMatch 46 DocumentMarker::MarkerTypes types(0b101); // Spelling | TextMatch
40 ASSERT_TRUE(types.begin() != types.end()); 47 ASSERT_TRUE(types.begin() != types.end());
41 auto it = types.begin(); 48 auto it = types.begin();
42 EXPECT_EQ(DocumentMarker::Spelling, *it); 49 EXPECT_EQ(DocumentMarker::Spelling, *it);
43 ++it; 50 ++it;
44 EXPECT_EQ(DocumentMarker::TextMatch, *it); 51 EXPECT_EQ(DocumentMarker::TextMatch, *it);
45 ++it; 52 ++it;
46 EXPECT_TRUE(it == types.end()); 53 EXPECT_TRUE(it == types.end());
47 } 54 }
55
56 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteAfter) {
57 DocumentMarker* marker = createMarker(0, 5);
58 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0);
59 EXPECT_EQ(0u, result.newStartOffset);
60 EXPECT_EQ(5u, result.newEndOffset);
61 EXPECT_FALSE(result.shouldRemoveMarker);
48 } 62 }
63
64 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteEndAndAfter) {
65 DocumentMarker* marker = createMarker(10, 15);
66 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0);
67 EXPECT_EQ(10u, result.newStartOffset);
68 EXPECT_EQ(13u, result.newEndOffset);
69 EXPECT_FALSE(result.shouldRemoveMarker);
70 }
71
72 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndAfter) {
73 DocumentMarker* marker = createMarker(20, 25);
74 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0);
75 EXPECT_TRUE(result.shouldRemoveMarker);
76 }
77
78 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndBeginning) {
79 DocumentMarker* marker = createMarker(30, 35);
80 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0);
81 EXPECT_EQ(13u, result.newStartOffset);
82 EXPECT_EQ(16u, result.newEndOffset);
83 EXPECT_FALSE(result.shouldRemoveMarker);
84 }
85
86 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBefore) {
87 DocumentMarker* marker = createMarker(40, 45);
88 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 0);
89 EXPECT_EQ(21u, result.newStartOffset);
90 EXPECT_EQ(26u, result.newEndOffset);
91 EXPECT_FALSE(result.shouldRemoveMarker);
92 }
93
94 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteStartAndAfter) {
95 DocumentMarker* marker = createMarker(0, 5);
96 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 10, 0);
97 EXPECT_TRUE(result.shouldRemoveMarker);
98 }
99
100 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteBeforeAndEnd) {
101 DocumentMarker* marker = createMarker(5, 10);
102 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 10, 0);
103 EXPECT_TRUE(result.shouldRemoveMarker);
104 }
105
106 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMarkerExactly) {
107 DocumentMarker* marker = createMarker(5, 10);
108 ShiftMarkerResult result = marker->getShiftedMarkerPosition(5, 5, 0);
109 EXPECT_TRUE(result.shouldRemoveMarker);
110 }
111
112 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_DeleteMiddleOfMarker) {
113 DocumentMarker* marker = createMarker(5, 10);
114 ShiftMarkerResult result = marker->getShiftedMarkerPosition(6, 3, 0);
115 EXPECT_EQ(5u, result.newStartOffset);
116 EXPECT_EQ(7u, result.newEndOffset);
117 EXPECT_FALSE(result.shouldRemoveMarker);
118 }
119
120 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertAfter) {
121 DocumentMarker* marker = createMarker(0, 5);
122 ShiftMarkerResult result = marker->getShiftedMarkerPosition(10, 0, 5);
123 EXPECT_EQ(0u, result.newStartOffset);
124 EXPECT_EQ(5u, result.newEndOffset);
125 EXPECT_FALSE(result.shouldRemoveMarker);
126 }
127
128 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyAfter) {
129 DocumentMarker* marker = createMarker(0, 5);
130 ShiftMarkerResult result = marker->getShiftedMarkerPosition(5, 0, 5);
131 EXPECT_EQ(0u, result.newStartOffset);
132 EXPECT_EQ(5u, result.newEndOffset);
133 EXPECT_FALSE(result.shouldRemoveMarker);
134 }
135
136 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertInMiddle) {
137 DocumentMarker* marker = createMarker(0, 5);
138 ShiftMarkerResult result = marker->getShiftedMarkerPosition(2, 0, 5);
139 EXPECT_EQ(0u, result.newStartOffset);
140 EXPECT_EQ(10u, result.newEndOffset);
141 EXPECT_FALSE(result.shouldRemoveMarker);
142 }
143
144 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertImmediatelyBefore) {
145 DocumentMarker* marker = createMarker(0, 5);
146 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 0, 5);
147 EXPECT_EQ(5u, result.newStartOffset);
148 EXPECT_EQ(10u, result.newEndOffset);
149 EXPECT_FALSE(result.shouldRemoveMarker);
150 }
151
152 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_InsertBefore) {
153 DocumentMarker* marker = createMarker(5, 10);
154 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 0, 5);
155 EXPECT_EQ(10u, result.newStartOffset);
156 EXPECT_EQ(15u, result.newEndOffset);
157 EXPECT_FALSE(result.shouldRemoveMarker);
158 }
159
160 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceAfter) {
161 DocumentMarker* marker = createMarker(0, 5);
162 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1);
163 EXPECT_EQ(0u, result.newStartOffset);
164 EXPECT_EQ(5u, result.newEndOffset);
165 EXPECT_FALSE(result.shouldRemoveMarker);
166 }
167
168 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEndAndAfter) {
169 DocumentMarker* marker = createMarker(10, 15);
170 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1);
171 EXPECT_EQ(10u, result.newStartOffset);
172 EXPECT_EQ(13u, result.newEndOffset);
173 EXPECT_FALSE(result.shouldRemoveMarker);
174 }
175
176 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndAfter) {
177 DocumentMarker* marker = createMarker(20, 25);
178 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1);
179 EXPECT_TRUE(result.shouldRemoveMarker);
180 }
181
182 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndBeginning) {
183 DocumentMarker* marker = createMarker(30, 35);
184 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1);
185 EXPECT_EQ(14u, result.newStartOffset);
186 EXPECT_EQ(17u, result.newEndOffset);
187 EXPECT_FALSE(result.shouldRemoveMarker);
188 }
189
190 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBefore) {
191 DocumentMarker* marker = createMarker(40, 45);
192 ShiftMarkerResult result = marker->getShiftedMarkerPosition(13, 19, 1);
193 EXPECT_EQ(22u, result.newStartOffset);
194 EXPECT_EQ(27u, result.newEndOffset);
195 EXPECT_FALSE(result.shouldRemoveMarker);
196 }
197
198 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginning) {
199 DocumentMarker* marker = createMarker(0, 5);
200 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 2, 1);
201 EXPECT_EQ(0u, result.newStartOffset);
202 EXPECT_EQ(4u, result.newEndOffset);
203 EXPECT_FALSE(result.shouldRemoveMarker);
204 }
205
206 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceEnd) {
207 DocumentMarker* marker = createMarker(0, 5);
208 ShiftMarkerResult result = marker->getShiftedMarkerPosition(3, 2, 1);
209 EXPECT_EQ(0u, result.newStartOffset);
210 EXPECT_EQ(4u, result.newEndOffset);
211 EXPECT_FALSE(result.shouldRemoveMarker);
212 }
213
214 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceExactly) {
215 DocumentMarker* marker = createMarker(0, 5);
216 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 5, 1);
217 EXPECT_EQ(0u, result.newStartOffset);
218 EXPECT_EQ(1u, result.newEndOffset);
219 EXPECT_FALSE(result.shouldRemoveMarker);
220 }
221
222 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeginningAndAfter) {
223 DocumentMarker* marker = createMarker(0, 5);
224 ShiftMarkerResult result = marker->getShiftedMarkerPosition(0, 6, 1);
225 EXPECT_TRUE(result.shouldRemoveMarker);
226 }
227
228 TEST_F(DocumentMarkerTest, GetShiftedMarkerPosition_ReplaceBeforeAndEnd) {
229 DocumentMarker* marker = createMarker(5, 10);
230 ShiftMarkerResult result = marker->getShiftedMarkerPosition(4, 6, 1);
231 EXPECT_TRUE(result.shouldRemoveMarker);
232 }
233
234 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698