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

Side by Side Diff: third_party/WebKit/Source/core/editing/state_machines/BackwardGraphemeBoundaryStateMachineTest.cpp

Issue 2701993002: DO NOT COMMIT: Results of running new (proposed) clang-format on Blink (Closed)
Patch Set: Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/state_machines/BackwardGraphemeBoundaryStateMachine.h" 5 #include "core/editing/state_machines/BackwardGraphemeBoundaryStateMachine.h"
6 6
7 #include "core/editing/state_machines/StateMachineTestUtil.h" 7 #include "core/editing/state_machines/StateMachineTestUtil.h"
8 #include "wtf/text/CharacterNames.h" 8 #include "wtf/text/CharacterNames.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // [Lead] + 'a' 98 // [Lead] + 'a'
99 EXPECT_EQ("RF", processSequenceBackward(&machine, asCodePoints(kLead, 'a'))); 99 EXPECT_EQ("RF", processSequenceBackward(&machine, asCodePoints(kLead, 'a')));
100 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset()); 100 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
101 101
102 // 'a' + [Trail] + 'a' 102 // 'a' + [Trail] + 'a'
103 EXPECT_EQ("RRF", 103 EXPECT_EQ("RRF",
104 processSequenceBackward(&machine, asCodePoints('a', kTrail, 'a'))); 104 processSequenceBackward(&machine, asCodePoints('a', kTrail, 'a')));
105 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset()); 105 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
106 106
107 // [Trail] + [Trail] + 'a' 107 // [Trail] + [Trail] + 'a'
108 EXPECT_EQ("RRF", processSequenceBackward(&machine, 108 EXPECT_EQ(
109 asCodePoints(kTrail, kTrail, 'a'))); 109 "RRF",
110 processSequenceBackward(&machine, asCodePoints(kTrail, kTrail, 'a')));
110 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset()); 111 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
111 112
112 // SOT + [Trail] + 'a' 113 // SOT + [Trail] + 'a'
113 EXPECT_EQ("RRF", 114 EXPECT_EQ("RRF",
114 processSequenceBackward(&machine, asCodePoints(kTrail, 'a'))); 115 processSequenceBackward(&machine, asCodePoints(kTrail, 'a')));
115 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset()); 116 EXPECT_EQ(-1, machine.finalizeAndGetBoundaryOffset());
116 } 117 }
117 118
118 TEST_F(BackwardGraphemeBoundaryStatemachineTest, 119 TEST_F(BackwardGraphemeBoundaryStatemachineTest,
119 BreakImmediately_SupplementaryPlane) { 120 BreakImmediately_SupplementaryPlane) {
(...skipping 17 matching lines...) Expand all
137 EXPECT_EQ("RRF", 138 EXPECT_EQ("RRF",
138 processSequenceBackward(&machine, asCodePoints(kLead, kEye))); 139 processSequenceBackward(&machine, asCodePoints(kLead, kEye)));
139 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 140 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
140 141
141 // 'a' + [Trail] + U+1F441 142 // 'a' + [Trail] + U+1F441
142 EXPECT_EQ("RRRF", 143 EXPECT_EQ("RRRF",
143 processSequenceBackward(&machine, asCodePoints('a', kTrail, kEye))); 144 processSequenceBackward(&machine, asCodePoints('a', kTrail, kEye)));
144 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 145 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
145 146
146 // [Trail] + [Trail] + U+1F441 147 // [Trail] + [Trail] + U+1F441
147 EXPECT_EQ("RRRF", processSequenceBackward( 148 EXPECT_EQ(
148 &machine, asCodePoints(kTrail, kTrail, kEye))); 149 "RRRF",
150 processSequenceBackward(&machine, asCodePoints(kTrail, kTrail, kEye)));
149 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 151 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
150 152
151 // SOT + [Trail] + U+1F441 153 // SOT + [Trail] + U+1F441
152 EXPECT_EQ("RRRF", 154 EXPECT_EQ("RRRF",
153 processSequenceBackward(&machine, asCodePoints(kTrail, kEye))); 155 processSequenceBackward(&machine, asCodePoints(kTrail, kEye)));
154 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 156 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
155 } 157 }
156 158
157 TEST_F(BackwardGraphemeBoundaryStatemachineTest, 159 TEST_F(BackwardGraphemeBoundaryStatemachineTest,
158 NotBreakImmediatelyBefore_BMP_BMP) { 160 NotBreakImmediatelyBefore_BMP_BMP) {
159 BackwardGraphemeBoundaryStateMachine machine; 161 BackwardGraphemeBoundaryStateMachine machine;
160 162
161 // 'a' + U+231A + U+FE0F 163 // 'a' + U+231A + U+FE0F
162 EXPECT_EQ("RRF", processSequenceBackward(&machine, 164 EXPECT_EQ(
163 asCodePoints('a', kWatch, kVS16))); 165 "RRF",
166 processSequenceBackward(&machine, asCodePoints('a', kWatch, kVS16)));
164 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 167 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
165 168
166 // U+1F441 + U+231A + U+FE0F 169 // U+1F441 + U+231A + U+FE0F
167 EXPECT_EQ("RRRF", processSequenceBackward(&machine, 170 EXPECT_EQ(
168 asCodePoints(kEye, kWatch, kVS16))); 171 "RRRF",
172 processSequenceBackward(&machine, asCodePoints(kEye, kWatch, kVS16)));
169 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 173 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
170 174
171 // SOT + U+231A + U+FE0F 175 // SOT + U+231A + U+FE0F
172 EXPECT_EQ("RRF", 176 EXPECT_EQ("RRF",
173 processSequenceBackward(&machine, asCodePoints(kWatch, kVS16))); 177 processSequenceBackward(&machine, asCodePoints(kWatch, kVS16)));
174 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 178 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
175 179
176 // [Lead] + U+231A + U+FE0F 180 // [Lead] + U+231A + U+FE0F
177 EXPECT_EQ("RRF", processSequenceBackward(&machine, 181 EXPECT_EQ(
178 asCodePoints(kLead, kWatch, kVS16))); 182 "RRF",
183 processSequenceBackward(&machine, asCodePoints(kLead, kWatch, kVS16)));
179 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 184 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
180 185
181 // 'a' + [Trail] + U+231A + U+FE0F 186 // 'a' + [Trail] + U+231A + U+FE0F
182 EXPECT_EQ("RRRF", processSequenceBackward( 187 EXPECT_EQ("RRRF",
183 &machine, asCodePoints('a', kTrail, kWatch, kVS16))); 188 processSequenceBackward(&machine,
189 asCodePoints('a', kTrail, kWatch, kVS16)));
184 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 190 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
185 191
186 // [Trail] + [Trail] + U+231A + U+FE0F 192 // [Trail] + [Trail] + U+231A + U+FE0F
187 EXPECT_EQ("RRRF", processSequenceBackward( 193 EXPECT_EQ("RRRF",
188 &machine, asCodePoints(kTrail, kTrail, kWatch, kVS16))); 194 processSequenceBackward(
195 &machine, asCodePoints(kTrail, kTrail, kWatch, kVS16)));
189 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 196 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
190 197
191 // SOT + [Trail] + U+231A + U+FE0F 198 // SOT + [Trail] + U+231A + U+FE0F
192 EXPECT_EQ("RRRF", processSequenceBackward( 199 EXPECT_EQ(
193 &machine, asCodePoints(kTrail, kWatch, kVS16))); 200 "RRRF",
201 processSequenceBackward(&machine, asCodePoints(kTrail, kWatch, kVS16)));
194 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 202 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
195 } 203 }
196 204
197 TEST_F(BackwardGraphemeBoundaryStatemachineTest, 205 TEST_F(BackwardGraphemeBoundaryStatemachineTest,
198 NotBreakImmediatelyBefore_Supplementary_BMP) { 206 NotBreakImmediatelyBefore_Supplementary_BMP) {
199 BackwardGraphemeBoundaryStateMachine machine; 207 BackwardGraphemeBoundaryStateMachine machine;
200 208
201 // 'a' + U+1F441 + U+FE0F 209 // 'a' + U+1F441 + U+FE0F
202 EXPECT_EQ("RRRF", 210 EXPECT_EQ("RRRF",
203 processSequenceBackward(&machine, asCodePoints('a', kEye, kVS16))); 211 processSequenceBackward(&machine, asCodePoints('a', kEye, kVS16)));
204 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 212 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
205 213
206 // U+1F441 + U+1F441 + U+FE0F 214 // U+1F441 + U+1F441 + U+FE0F
207 EXPECT_EQ("RRRRF", 215 EXPECT_EQ("RRRRF",
208 processSequenceBackward(&machine, asCodePoints(kEye, kEye, kVS16))); 216 processSequenceBackward(&machine, asCodePoints(kEye, kEye, kVS16)));
209 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 217 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
210 218
211 // SOT + U+1F441 + U+FE0F 219 // SOT + U+1F441 + U+FE0F
212 EXPECT_EQ("RRRF", 220 EXPECT_EQ("RRRF",
213 processSequenceBackward(&machine, asCodePoints(kEye, kVS16))); 221 processSequenceBackward(&machine, asCodePoints(kEye, kVS16)));
214 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 222 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
215 223
216 // [Lead] + U+1F441 + U+FE0F 224 // [Lead] + U+1F441 + U+FE0F
217 EXPECT_EQ("RRRF", processSequenceBackward(&machine, 225 EXPECT_EQ(
218 asCodePoints(kLead, kEye, kVS16))); 226 "RRRF",
227 processSequenceBackward(&machine, asCodePoints(kLead, kEye, kVS16)));
219 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 228 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
220 229
221 // 'a' + [Trail] + U+1F441 + U+FE0F 230 // 'a' + [Trail] + U+1F441 + U+FE0F
222 EXPECT_EQ("RRRRF", processSequenceBackward( 231 EXPECT_EQ("RRRRF",
223 &machine, asCodePoints('a', kTrail, kEye, kVS16))); 232 processSequenceBackward(&machine,
233 asCodePoints('a', kTrail, kEye, kVS16)));
224 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 234 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
225 235
226 // [Trail] + [Trail] + U+1F441 + U+FE0F 236 // [Trail] + [Trail] + U+1F441 + U+FE0F
227 EXPECT_EQ("RRRRF", processSequenceBackward( 237 EXPECT_EQ("RRRRF",
228 &machine, asCodePoints(kTrail, kTrail, kEye, kVS16))); 238 processSequenceBackward(&machine,
239 asCodePoints(kTrail, kTrail, kEye, kVS16)));
229 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 240 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
230 241
231 // SOT + [Trail] + U+1F441 + U+FE0F 242 // SOT + [Trail] + U+1F441 + U+FE0F
232 EXPECT_EQ("RRRRF", processSequenceBackward( 243 EXPECT_EQ(
233 &machine, asCodePoints(kTrail, kEye, kVS16))); 244 "RRRRF",
245 processSequenceBackward(&machine, asCodePoints(kTrail, kEye, kVS16)));
234 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 246 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
235 } 247 }
236 248
237 TEST_F(BackwardGraphemeBoundaryStatemachineTest, 249 TEST_F(BackwardGraphemeBoundaryStatemachineTest,
238 NotBreakImmediatelyBefore_BMP_Supplementary) { 250 NotBreakImmediatelyBefore_BMP_Supplementary) {
239 BackwardGraphemeBoundaryStateMachine machine; 251 BackwardGraphemeBoundaryStateMachine machine;
240 252
241 // 'a' + U+845B + U+E0100 253 // 'a' + U+845B + U+E0100
242 EXPECT_EQ("RRRF", processSequenceBackward(&machine, 254 EXPECT_EQ(
243 asCodePoints('a', kHanBMP, kVS17))); 255 "RRRF",
256 processSequenceBackward(&machine, asCodePoints('a', kHanBMP, kVS17)));
244 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 257 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
245 258
246 // U+1F441 + U+845B + U+E0100 259 // U+1F441 + U+845B + U+E0100
247 EXPECT_EQ("RRRRF", processSequenceBackward( 260 EXPECT_EQ(
248 &machine, asCodePoints(kEye, kHanBMP, kVS17))); 261 "RRRRF",
262 processSequenceBackward(&machine, asCodePoints(kEye, kHanBMP, kVS17)));
249 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 263 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
250 264
251 // SOT + U+845B + U+E0100 265 // SOT + U+845B + U+E0100
252 EXPECT_EQ("RRRF", 266 EXPECT_EQ("RRRF",
253 processSequenceBackward(&machine, asCodePoints(kHanBMP, kVS17))); 267 processSequenceBackward(&machine, asCodePoints(kHanBMP, kVS17)));
254 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 268 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
255 269
256 // [Lead] + U+845B + U+E0100 270 // [Lead] + U+845B + U+E0100
257 EXPECT_EQ("RRRF", processSequenceBackward( 271 EXPECT_EQ(
258 &machine, asCodePoints(kLead, kHanBMP, kVS17))); 272 "RRRF",
273 processSequenceBackward(&machine, asCodePoints(kLead, kHanBMP, kVS17)));
259 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 274 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
260 275
261 // 'a' + [Trail] + U+845B + U+E0100 276 // 'a' + [Trail] + U+845B + U+E0100
262 EXPECT_EQ("RRRRF", processSequenceBackward( 277 EXPECT_EQ("RRRRF",
263 &machine, asCodePoints('a', kTrail, kHanBMP, kVS17))); 278 processSequenceBackward(&machine,
279 asCodePoints('a', kTrail, kHanBMP, kVS17)));
264 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 280 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
265 281
266 // [Trail] + [Trail] + U+845B + U+E0100 282 // [Trail] + [Trail] + U+845B + U+E0100
267 EXPECT_EQ("RRRRF", 283 EXPECT_EQ("RRRRF",
268 processSequenceBackward( 284 processSequenceBackward(
269 &machine, asCodePoints(kTrail, kTrail, kHanBMP, kVS17))); 285 &machine, asCodePoints(kTrail, kTrail, kHanBMP, kVS17)));
270 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 286 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
271 287
272 // SOT + [Trail] + U+845B + U+E0100 288 // SOT + [Trail] + U+845B + U+E0100
273 EXPECT_EQ("RRRRF", processSequenceBackward( 289 EXPECT_EQ(
274 &machine, asCodePoints(kTrail, kHanBMP, kVS17))); 290 "RRRRF",
291 processSequenceBackward(&machine, asCodePoints(kTrail, kHanBMP, kVS17)));
275 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset()); 292 EXPECT_EQ(-3, machine.finalizeAndGetBoundaryOffset());
276 } 293 }
277 294
278 TEST_F(BackwardGraphemeBoundaryStatemachineTest, 295 TEST_F(BackwardGraphemeBoundaryStatemachineTest,
279 NotBreakImmediatelyBefore_Supplementary_Supplementary) { 296 NotBreakImmediatelyBefore_Supplementary_Supplementary) {
280 BackwardGraphemeBoundaryStateMachine machine; 297 BackwardGraphemeBoundaryStateMachine machine;
281 298
282 // 'a' + U+20000 + U+E0100 299 // 'a' + U+20000 + U+E0100
283 EXPECT_EQ("RRRRF", processSequenceBackward( 300 EXPECT_EQ(
284 &machine, asCodePoints('a', kHanSIP, kVS17))); 301 "RRRRF",
302 processSequenceBackward(&machine, asCodePoints('a', kHanSIP, kVS17)));
285 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 303 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
286 304
287 // U+1F441 + U+20000 + U+E0100 305 // U+1F441 + U+20000 + U+E0100
288 EXPECT_EQ("RRRRRF", processSequenceBackward( 306 EXPECT_EQ(
289 &machine, asCodePoints(kEye, kHanSIP, kVS17))); 307 "RRRRRF",
308 processSequenceBackward(&machine, asCodePoints(kEye, kHanSIP, kVS17)));
290 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 309 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
291 310
292 // SOT + U+20000 + U+E0100 311 // SOT + U+20000 + U+E0100
293 EXPECT_EQ("RRRRF", 312 EXPECT_EQ("RRRRF",
294 processSequenceBackward(&machine, asCodePoints(kHanSIP, kVS17))); 313 processSequenceBackward(&machine, asCodePoints(kHanSIP, kVS17)));
295 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 314 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
296 315
297 // [Lead] + U+20000 + U+E0100 316 // [Lead] + U+20000 + U+E0100
298 EXPECT_EQ("RRRRF", processSequenceBackward( 317 EXPECT_EQ(
299 &machine, asCodePoints(kLead, kHanSIP, kVS17))); 318 "RRRRF",
319 processSequenceBackward(&machine, asCodePoints(kLead, kHanSIP, kVS17)));
300 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 320 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
301 321
302 // 'a' + [Trail] + U+20000 + U+E0100 322 // 'a' + [Trail] + U+20000 + U+E0100
303 EXPECT_EQ("RRRRRF", processSequenceBackward( 323 EXPECT_EQ("RRRRRF",
304 &machine, asCodePoints('a', kTrail, kHanSIP, kVS17))); 324 processSequenceBackward(&machine,
325 asCodePoints('a', kTrail, kHanSIP, kVS17)));
305 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 326 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
306 327
307 // [Trail] + [Trail] + U+20000 + U+E0100 328 // [Trail] + [Trail] + U+20000 + U+E0100
308 EXPECT_EQ("RRRRRF", 329 EXPECT_EQ("RRRRRF",
309 processSequenceBackward( 330 processSequenceBackward(
310 &machine, asCodePoints(kTrail, kTrail, kHanSIP, kVS17))); 331 &machine, asCodePoints(kTrail, kTrail, kHanSIP, kVS17)));
311 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 332 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
312 333
313 // SOT + [Trail] + U+20000 + U+E0100 334 // SOT + [Trail] + U+20000 + U+E0100
314 EXPECT_EQ("RRRRRF", processSequenceBackward( 335 EXPECT_EQ(
315 &machine, asCodePoints(kTrail, kHanSIP, kVS17))); 336 "RRRRRF",
337 processSequenceBackward(&machine, asCodePoints(kTrail, kHanSIP, kVS17)));
316 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 338 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
317 } 339 }
318 340
319 TEST_F(BackwardGraphemeBoundaryStatemachineTest, MuchLongerCase) { 341 TEST_F(BackwardGraphemeBoundaryStatemachineTest, MuchLongerCase) {
320 const UChar32 kMan = WTF::Unicode::manCharacter; 342 const UChar32 kMan = WTF::Unicode::manCharacter;
321 const UChar32 kZwj = WTF::Unicode::zeroWidthJoinerCharacter; 343 const UChar32 kZwj = WTF::Unicode::zeroWidthJoinerCharacter;
322 const UChar32 kHeart = WTF::Unicode::heavyBlackHeartCharacter; 344 const UChar32 kHeart = WTF::Unicode::heavyBlackHeartCharacter;
323 const UChar32 kKiss = WTF::Unicode::kissMarkCharacter; 345 const UChar32 kKiss = WTF::Unicode::kissMarkCharacter;
324 346
325 BackwardGraphemeBoundaryStateMachine machine; 347 BackwardGraphemeBoundaryStateMachine machine;
326 348
327 // U+1F468 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468 is a valid ZWJ 349 // U+1F468 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468 is a valid ZWJ
328 // emoji sequence. 350 // emoji sequence.
329 // 'a' + ZWJ Emoji Sequence 351 // 'a' + ZWJ Emoji Sequence
330 EXPECT_EQ("RRRRRRRRRRRF", 352 EXPECT_EQ("RRRRRRRRRRRF",
331 processSequenceBackward( 353 processSequenceBackward(&machine,
332 &machine, asCodePoints('a', kMan, kZwj, kHeart, kVS16, kZwj, 354 asCodePoints('a', kMan, kZwj, kHeart, kVS16,
333 kKiss, kZwj, kMan))); 355 kZwj, kKiss, kZwj, kMan)));
334 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 356 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
335 357
336 // U+1F441 + ZWJ Emoji Sequence 358 // U+1F441 + ZWJ Emoji Sequence
337 EXPECT_EQ("RRRRRRRRRRRRF", 359 EXPECT_EQ(
338 processSequenceBackward( 360 "RRRRRRRRRRRRF",
339 &machine, asCodePoints(kEye, kMan, kZwj, kHeart, kVS16, kZwj, 361 processSequenceBackward(&machine,
340 kKiss, kZwj, kMan))); 362 asCodePoints(kEye, kMan, kZwj, kHeart, kVS16,
363 kZwj, kKiss, kZwj, kMan)));
341 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 364 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
342 365
343 // SOT + ZWJ Emoji Sequence 366 // SOT + ZWJ Emoji Sequence
344 EXPECT_EQ( 367 EXPECT_EQ("RRRRRRRRRRRF",
345 "RRRRRRRRRRRF", 368 processSequenceBackward(&machine,
346 processSequenceBackward(&machine, asCodePoints(kMan, kZwj, kHeart, kVS16, 369 asCodePoints(kMan, kZwj, kHeart, kVS16,
347 kZwj, kKiss, kZwj, kMan))); 370 kZwj, kKiss, kZwj, kMan)));
348 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 371 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
349 372
350 // [Lead] + ZWJ Emoji Sequence 373 // [Lead] + ZWJ Emoji Sequence
351 EXPECT_EQ("RRRRRRRRRRRF", 374 EXPECT_EQ(
352 processSequenceBackward( 375 "RRRRRRRRRRRF",
353 &machine, asCodePoints(kLead, kMan, kZwj, kHeart, kVS16, kZwj, 376 processSequenceBackward(&machine,
354 kKiss, kZwj, kMan))); 377 asCodePoints(kLead, kMan, kZwj, kHeart, kVS16,
378 kZwj, kKiss, kZwj, kMan)));
355 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 379 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
356 380
357 // 'a' + [Trail] + ZWJ Emoji Sequence 381 // 'a' + [Trail] + ZWJ Emoji Sequence
358 EXPECT_EQ("RRRRRRRRRRRRF", 382 EXPECT_EQ(
359 processSequenceBackward( 383 "RRRRRRRRRRRRF",
360 &machine, asCodePoints('a', kTrail, kMan, kZwj, kHeart, kVS16, 384 processSequenceBackward(&machine,
361 kZwj, kKiss, kZwj, kMan))); 385 asCodePoints('a', kTrail, kMan, kZwj, kHeart,
386 kVS16, kZwj, kKiss, kZwj, kMan)));
362 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 387 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
363 388
364 // [Trail] + [Trail] + ZWJ Emoji Sequence 389 // [Trail] + [Trail] + ZWJ Emoji Sequence
365 EXPECT_EQ("RRRRRRRRRRRRF", 390 EXPECT_EQ(
366 processSequenceBackward( 391 "RRRRRRRRRRRRF",
367 &machine, asCodePoints(kTrail, kTrail, kMan, kZwj, kHeart, 392 processSequenceBackward(&machine,
368 kVS16, kZwj, kKiss, kZwj, kMan))); 393 asCodePoints(kTrail, kTrail, kMan, kZwj, kHeart,
394 kVS16, kZwj, kKiss, kZwj, kMan)));
369 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 395 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
370 396
371 // SOT + [Trail] + ZWJ Emoji Sequence 397 // SOT + [Trail] + ZWJ Emoji Sequence
372 EXPECT_EQ("RRRRRRRRRRRRF", 398 EXPECT_EQ(
373 processSequenceBackward( 399 "RRRRRRRRRRRRF",
374 &machine, asCodePoints(kTrail, kMan, kZwj, kHeart, kVS16, kZwj, 400 processSequenceBackward(&machine,
375 kKiss, kZwj, kMan))); 401 asCodePoints(kTrail, kMan, kZwj, kHeart, kVS16,
402 kZwj, kKiss, kZwj, kMan)));
376 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset()); 403 EXPECT_EQ(-11, machine.finalizeAndGetBoundaryOffset());
377 } 404 }
378 405
379 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_singleFlag) { 406 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_singleFlag) {
380 BackwardGraphemeBoundaryStateMachine machine; 407 BackwardGraphemeBoundaryStateMachine machine;
381 408
382 // 'a' + [U] + [S] 409 // 'a' + [U] + [S]
383 EXPECT_EQ("RRRRF", 410 EXPECT_EQ("RRRRF",
384 processSequenceBackward(&machine, asCodePoints('a', kRisU, kRisS))); 411 processSequenceBackward(&machine, asCodePoints('a', kRisU, kRisS)));
385 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 412 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
386 413
387 // U+1F441 + [U] + [S] 414 // U+1F441 + [U] + [S]
388 EXPECT_EQ("RRRRRF", processSequenceBackward( 415 EXPECT_EQ(
389 &machine, asCodePoints(kEye, kRisU, kRisS))); 416 "RRRRRF",
417 processSequenceBackward(&machine, asCodePoints(kEye, kRisU, kRisS)));
390 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 418 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
391 419
392 // SOT + [U] + [S] 420 // SOT + [U] + [S]
393 EXPECT_EQ("RRRRF", 421 EXPECT_EQ("RRRRF",
394 processSequenceBackward(&machine, asCodePoints(kRisU, kRisS))); 422 processSequenceBackward(&machine, asCodePoints(kRisU, kRisS)));
395 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 423 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
396 424
397 // [Lead] + [U] + [S] 425 // [Lead] + [U] + [S]
398 EXPECT_EQ("RRRRF", processSequenceBackward( 426 EXPECT_EQ(
399 &machine, asCodePoints(kLead, kRisU, kRisS))); 427 "RRRRF",
428 processSequenceBackward(&machine, asCodePoints(kLead, kRisU, kRisS)));
400 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 429 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
401 430
402 // 'a' + [Trail] + [U] + [S] 431 // 'a' + [Trail] + [U] + [S]
403 EXPECT_EQ("RRRRRF", processSequenceBackward( 432 EXPECT_EQ("RRRRRF",
404 &machine, asCodePoints('a', kTrail, kRisU, kRisS))); 433 processSequenceBackward(&machine,
434 asCodePoints('a', kTrail, kRisU, kRisS)));
405 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 435 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
406 436
407 // [Trail] + [Trail] + [U] + [S] 437 // [Trail] + [Trail] + [U] + [S]
408 EXPECT_EQ("RRRRRF", 438 EXPECT_EQ("RRRRRF",
409 processSequenceBackward( 439 processSequenceBackward(
410 &machine, asCodePoints(kTrail, kTrail, kRisU, kRisS))); 440 &machine, asCodePoints(kTrail, kTrail, kRisU, kRisS)));
411 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 441 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
412 442
413 // SOT + [Trail] + [U] + [S] 443 // SOT + [Trail] + [U] + [S]
414 EXPECT_EQ("RRRRRF", processSequenceBackward( 444 EXPECT_EQ(
415 &machine, asCodePoints(kTrail, kRisU, kRisS))); 445 "RRRRRF",
446 processSequenceBackward(&machine, asCodePoints(kTrail, kRisU, kRisS)));
416 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 447 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
417 } 448 }
418 449
419 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_twoFlags) { 450 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_twoFlags) {
420 BackwardGraphemeBoundaryStateMachine machine; 451 BackwardGraphemeBoundaryStateMachine machine;
421 452
422 // 'a' + [U] + [S] + [U] + [S] 453 // 'a' + [U] + [S] + [U] + [S]
423 EXPECT_EQ("RRRRRRRRF", 454 EXPECT_EQ("RRRRRRRRF",
424 processSequenceBackward( 455 processSequenceBackward(
425 &machine, asCodePoints('a', kRisU, kRisS, kRisU, kRisS))); 456 &machine, asCodePoints('a', kRisU, kRisS, kRisU, kRisS)));
(...skipping 11 matching lines...) Expand all
437 asCodePoints(kRisU, kRisS, kRisU, kRisS))); 468 asCodePoints(kRisU, kRisS, kRisU, kRisS)));
438 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 469 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
439 470
440 // [Lead] + [U] + [S] + [U] + [S] 471 // [Lead] + [U] + [S] + [U] + [S]
441 EXPECT_EQ("RRRRRRRRF", 472 EXPECT_EQ("RRRRRRRRF",
442 processSequenceBackward( 473 processSequenceBackward(
443 &machine, asCodePoints(kLead, kRisU, kRisS, kRisU, kRisS))); 474 &machine, asCodePoints(kLead, kRisU, kRisS, kRisU, kRisS)));
444 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 475 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
445 476
446 // 'a' + [Trail] + [U] + [S] + [U] + [S] 477 // 'a' + [Trail] + [U] + [S] + [U] + [S]
447 EXPECT_EQ("RRRRRRRRRF", processSequenceBackward( 478 EXPECT_EQ(
448 &machine, asCodePoints('a', kTrail, kRisU, kRisS, 479 "RRRRRRRRRF",
449 kRisU, kRisS))); 480 processSequenceBackward(
481 &machine, asCodePoints('a', kTrail, kRisU, kRisS, kRisU, kRisS)));
450 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 482 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
451 483
452 // [Trail] + [Trail] + [U] + [S] + [U] + [S] 484 // [Trail] + [Trail] + [U] + [S] + [U] + [S]
453 EXPECT_EQ("RRRRRRRRRF", processSequenceBackward( 485 EXPECT_EQ(
454 &machine, asCodePoints(kTrail, kTrail, kRisU, 486 "RRRRRRRRRF",
455 kRisS, kRisU, kRisS))); 487 processSequenceBackward(
488 &machine, asCodePoints(kTrail, kTrail, kRisU, kRisS, kRisU, kRisS)));
456 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 489 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
457 490
458 // SOT + [Trail] + [U] + [S] + [U] + [S] 491 // SOT + [Trail] + [U] + [S] + [U] + [S]
459 EXPECT_EQ("RRRRRRRRRF", 492 EXPECT_EQ("RRRRRRRRRF",
460 processSequenceBackward( 493 processSequenceBackward(
461 &machine, asCodePoints(kTrail, kRisU, kRisS, kRisU, kRisS))); 494 &machine, asCodePoints(kTrail, kRisU, kRisS, kRisU, kRisS)));
462 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset()); 495 EXPECT_EQ(-4, machine.finalizeAndGetBoundaryOffset());
463 } 496 }
464 497
465 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_oddNumberedRIS) { 498 TEST_F(BackwardGraphemeBoundaryStatemachineTest, Flags_oddNumberedRIS) {
466 BackwardGraphemeBoundaryStateMachine machine; 499 BackwardGraphemeBoundaryStateMachine machine;
467 500
468 // 'a' + [U] + [S] + [U] 501 // 'a' + [U] + [S] + [U]
469 EXPECT_EQ("RRRRRRF", processSequenceBackward( 502 EXPECT_EQ("RRRRRRF",
470 &machine, asCodePoints('a', kRisU, kRisS, kRisU))); 503 processSequenceBackward(&machine,
504 asCodePoints('a', kRisU, kRisS, kRisU)));
471 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 505 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
472 506
473 // U+1F441 + [U] + [S] + [U] 507 // U+1F441 + [U] + [S] + [U]
474 EXPECT_EQ("RRRRRRRF", processSequenceBackward( 508 EXPECT_EQ("RRRRRRRF",
475 &machine, asCodePoints(kEye, kRisU, kRisS, kRisU))); 509 processSequenceBackward(&machine,
510 asCodePoints(kEye, kRisU, kRisS, kRisU)));
476 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 511 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
477 512
478 // SOT + [U] + [S] + [U] 513 // SOT + [U] + [S] + [U]
479 EXPECT_EQ("RRRRRRF", processSequenceBackward( 514 EXPECT_EQ(
480 &machine, asCodePoints(kRisU, kRisS, kRisU))); 515 "RRRRRRF",
516 processSequenceBackward(&machine, asCodePoints(kRisU, kRisS, kRisU)));
481 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 517 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
482 518
483 // [Lead] + [U] + [S] + [U] 519 // [Lead] + [U] + [S] + [U]
484 EXPECT_EQ("RRRRRRF", processSequenceBackward( 520 EXPECT_EQ("RRRRRRF",
485 &machine, asCodePoints(kLead, kRisU, kRisS, kRisU))); 521 processSequenceBackward(&machine,
522 asCodePoints(kLead, kRisU, kRisS, kRisU)));
486 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 523 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
487 524
488 // 'a' + [Trail] + [U] + [S] + [U] 525 // 'a' + [Trail] + [U] + [S] + [U]
489 EXPECT_EQ("RRRRRRRF", 526 EXPECT_EQ("RRRRRRRF",
490 processSequenceBackward( 527 processSequenceBackward(
491 &machine, asCodePoints('a', kTrail, kRisU, kRisS, kRisU))); 528 &machine, asCodePoints('a', kTrail, kRisU, kRisS, kRisU)));
492 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 529 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
493 530
494 // [Trail] + [Trail] + [U] + [S] + [U] 531 // [Trail] + [Trail] + [U] + [S] + [U]
495 EXPECT_EQ("RRRRRRRF", 532 EXPECT_EQ("RRRRRRRF",
496 processSequenceBackward( 533 processSequenceBackward(
497 &machine, asCodePoints(kTrail, kTrail, kRisU, kRisS, kRisU))); 534 &machine, asCodePoints(kTrail, kTrail, kRisU, kRisS, kRisU)));
498 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 535 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
499 536
500 // SOT + [Trail] + [U] + [S] + [U] 537 // SOT + [Trail] + [U] + [S] + [U]
501 EXPECT_EQ("RRRRRRRF", 538 EXPECT_EQ("RRRRRRRF",
502 processSequenceBackward(&machine, 539 processSequenceBackward(&machine,
503 asCodePoints(kTrail, kRisU, kRisS, kRisU))); 540 asCodePoints(kTrail, kRisU, kRisS, kRisU)));
504 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset()); 541 EXPECT_EQ(-2, machine.finalizeAndGetBoundaryOffset());
505 } 542 }
506 } // namespace blink 543 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698