11 #include "gtest/gtest.h"
16 auto model = std::make_unique<TextInputModel>();
17 model->SetText(
"ABCDE");
18 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
22 auto model = std::make_unique<TextInputModel>();
23 model->SetText(
"😄🙃🤪🧐");
24 EXPECT_STREQ(model->GetText().c_str(),
"😄🙃🤪🧐");
28 auto model = std::make_unique<TextInputModel>();
30 EXPECT_STREQ(model->GetText().c_str(),
"");
34 auto model = std::make_unique<TextInputModel>();
35 model->SetText(
"ABCDE");
36 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
38 EXPECT_STREQ(model->GetText().c_str(),
"");
42 auto model = std::make_unique<TextInputModel>();
43 model->SetText(
"ABCDE");
44 EXPECT_TRUE(model->SetSelection(
TextRange(3)));
45 EXPECT_EQ(model->selection(),
TextRange(3));
46 model->SetText(
"FGHJI");
47 EXPECT_EQ(model->selection(),
TextRange(0));
51 auto model = std::make_unique<TextInputModel>();
52 model->SetText(
"ABCDE");
53 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
54 EXPECT_EQ(model->selection(),
TextRange(0));
55 EXPECT_EQ(model->composing_range(),
TextRange(0));
56 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
60 auto model = std::make_unique<TextInputModel>();
61 model->SetText(
"ABCDE");
62 model->BeginComposing();
63 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
64 EXPECT_TRUE(model->SetSelection(
TextRange(1)));
65 EXPECT_EQ(model->selection(),
TextRange(1));
66 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
67 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
71 auto model = std::make_unique<TextInputModel>();
72 model->SetText(
"ABCDE");
73 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
74 EXPECT_EQ(model->selection(),
TextRange(2));
75 EXPECT_EQ(model->composing_range(),
TextRange(0));
76 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
80 auto model = std::make_unique<TextInputModel>();
81 model->SetText(
"ABCDE");
82 model->BeginComposing();
83 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
84 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
85 EXPECT_EQ(model->selection(),
TextRange(2));
86 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
87 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
91 auto model = std::make_unique<TextInputModel>();
92 model->SetText(
"ABCDE");
93 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
94 EXPECT_EQ(model->selection(),
TextRange(5));
95 EXPECT_EQ(model->composing_range(),
TextRange(0));
96 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
100 auto model = std::make_unique<TextInputModel>();
101 model->SetText(
"ABCDE");
102 model->BeginComposing();
103 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
104 EXPECT_TRUE(model->SetSelection(
TextRange(4)));
105 EXPECT_EQ(model->selection(),
TextRange(4));
106 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
107 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
111 auto model = std::make_unique<TextInputModel>();
112 model->SetText(
"ABCDE");
113 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
114 EXPECT_EQ(model->selection(),
TextRange(1, 4));
115 EXPECT_EQ(model->composing_range(),
TextRange(0));
116 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
120 auto model = std::make_unique<TextInputModel>();
121 model->SetText(
"ABCDE");
122 model->BeginComposing();
123 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
124 EXPECT_FALSE(model->SetSelection(
TextRange(1, 4)));
125 EXPECT_EQ(model->selection(),
TextRange(1));
126 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
127 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
131 auto model = std::make_unique<TextInputModel>();
132 model->SetText(
"ABCDE");
133 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
134 EXPECT_EQ(model->selection(),
TextRange(4, 1));
135 EXPECT_EQ(model->composing_range(),
TextRange(0));
136 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
140 auto model = std::make_unique<TextInputModel>();
141 model->SetText(
"ABCDE");
142 model->BeginComposing();
143 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
144 EXPECT_FALSE(model->SetSelection(
TextRange(4, 1)));
145 EXPECT_EQ(model->selection(),
TextRange(1));
146 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
147 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
151 auto model = std::make_unique<TextInputModel>();
152 model->SetText(
"ABCDE");
153 EXPECT_FALSE(model->SetSelection(
TextRange(4, 6)));
154 EXPECT_FALSE(model->SetSelection(
TextRange(5, 6)));
155 EXPECT_FALSE(model->SetSelection(
TextRange(6)));
159 auto model = std::make_unique<TextInputModel>();
160 model->SetText(
"ABCDE");
161 model->BeginComposing();
162 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
163 EXPECT_FALSE(model->SetSelection(
TextRange(0)));
164 EXPECT_EQ(model->selection(),
TextRange(1));
165 EXPECT_FALSE(model->SetSelection(
TextRange(5)));
166 EXPECT_EQ(model->selection(),
TextRange(1));
167 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
171 auto model = std::make_unique<TextInputModel>();
172 model->SetText(
"ABCDE");
173 model->BeginComposing();
174 EXPECT_TRUE(model->SetComposingRange(
TextRange(0, 0), 0));
175 EXPECT_EQ(model->selection(),
TextRange(0));
176 EXPECT_EQ(model->composing_range(),
TextRange(0));
177 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
181 auto model = std::make_unique<TextInputModel>();
182 model->SetText(
"ABCDE");
183 model->BeginComposing();
184 EXPECT_TRUE(model->SetComposingRange(
TextRange(2, 2), 0));
185 EXPECT_EQ(model->selection(),
TextRange(2));
186 EXPECT_EQ(model->composing_range(),
TextRange(2));
187 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
191 auto model = std::make_unique<TextInputModel>();
192 model->SetText(
"ABCDE");
193 model->BeginComposing();
194 EXPECT_TRUE(model->SetComposingRange(
TextRange(5, 5), 0));
195 EXPECT_EQ(model->selection(),
TextRange(5));
196 EXPECT_EQ(model->composing_range(),
TextRange(5));
197 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
201 auto model = std::make_unique<TextInputModel>();
202 model->SetText(
"ABCDE");
203 model->BeginComposing();
204 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
205 EXPECT_EQ(model->selection(),
TextRange(4));
206 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
207 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
211 auto model = std::make_unique<TextInputModel>();
212 model->SetText(
"ABCDE");
213 model->BeginComposing();
214 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
215 EXPECT_EQ(model->selection(),
TextRange(4));
216 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
217 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
221 auto model = std::make_unique<TextInputModel>();
222 model->SetText(
"ABCDE");
223 model->BeginComposing();
224 EXPECT_FALSE(model->SetComposingRange(
TextRange(4, 6), 0));
225 EXPECT_FALSE(model->SetComposingRange(
TextRange(5, 6), 0));
226 EXPECT_FALSE(model->SetComposingRange(
TextRange(6, 6), 0));
231 auto model = std::make_unique<TextInputModel>();
232 model->SetText(
"ABCDE");
236 model->BeginComposing();
237 EXPECT_EQ(model->selection(),
TextRange(0));
238 EXPECT_EQ(model->composing_range(),
TextRange(0));
239 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
242 model->CommitComposing();
243 EXPECT_EQ(model->selection(),
TextRange(0));
244 EXPECT_EQ(model->composing_range(),
TextRange(0));
245 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
248 model->EndComposing();
249 EXPECT_EQ(model->selection(),
TextRange(0));
250 EXPECT_EQ(model->composing_range(),
TextRange(0));
251 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
256 auto model = std::make_unique<TextInputModel>();
257 model->SetText(
"ABCDE");
261 model->BeginComposing();
262 EXPECT_EQ(model->selection(),
TextRange(1, 3));
263 EXPECT_EQ(model->composing_range(),
TextRange(1));
264 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
267 model->CommitComposing();
268 EXPECT_EQ(model->selection(),
TextRange(1, 3));
269 EXPECT_EQ(model->composing_range(),
TextRange(1));
270 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
273 model->EndComposing();
274 EXPECT_EQ(model->selection(),
TextRange(1, 3));
275 EXPECT_EQ(model->composing_range(),
TextRange(0));
276 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
281 auto model = std::make_unique<TextInputModel>();
282 model->SetText(
"ABCDE");
286 model->BeginComposing();
287 EXPECT_EQ(model->selection(),
TextRange(1));
288 EXPECT_EQ(model->composing_range(),
TextRange(1));
289 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
293 model->UpdateComposingText(
"つ");
294 EXPECT_EQ(model->selection(),
TextRange(2));
295 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
296 EXPECT_STREQ(model->GetText().c_str(),
"AつBCDE");
297 model->UpdateComposingText(
"つる");
298 EXPECT_EQ(model->selection(),
TextRange(3));
299 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
300 EXPECT_STREQ(model->GetText().c_str(),
"AつるBCDE");
303 model->UpdateComposingText(
"鶴");
304 EXPECT_TRUE(model->SetSelection(
TextRange(1)));
305 EXPECT_EQ(model->selection(),
TextRange(1));
306 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
307 EXPECT_STREQ(model->GetText().c_str(),
"A鶴BCDE");
310 model->CommitComposing();
311 EXPECT_EQ(model->selection(),
TextRange(2));
312 EXPECT_EQ(model->composing_range(),
TextRange(2));
313 EXPECT_STREQ(model->GetText().c_str(),
"A鶴BCDE");
317 model->UpdateComposingText(
"が");
318 EXPECT_EQ(model->selection(),
TextRange(3));
319 EXPECT_EQ(model->composing_range(),
TextRange(2, 3));
320 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がBCDE");
323 model->CommitComposing();
324 EXPECT_EQ(model->selection(),
TextRange(3));
325 EXPECT_EQ(model->composing_range(),
TextRange(3));
326 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がBCDE");
329 model->EndComposing();
330 EXPECT_EQ(model->selection(),
TextRange(3));
331 EXPECT_EQ(model->composing_range(),
TextRange(0));
332 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がBCDE");
337 auto model = std::make_unique<TextInputModel>();
338 model->SetText(
"ABCDE");
342 model->BeginComposing();
343 EXPECT_EQ(model->selection(),
TextRange(1, 3));
344 EXPECT_EQ(model->composing_range(),
TextRange(1));
345 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
350 model->UpdateComposingText(
"つ");
351 EXPECT_EQ(model->selection(),
TextRange(2));
352 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
353 EXPECT_STREQ(model->GetText().c_str(),
"AつDE");
357 model->UpdateComposingText(
"つる");
358 EXPECT_EQ(model->selection(),
TextRange(3));
359 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
360 EXPECT_STREQ(model->GetText().c_str(),
"AつるDE");
363 model->UpdateComposingText(
"鶴");
364 EXPECT_TRUE(model->SetSelection(
TextRange(1)));
365 EXPECT_EQ(model->selection(),
TextRange(1));
366 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
367 EXPECT_STREQ(model->GetText().c_str(),
"A鶴DE");
370 model->CommitComposing();
371 EXPECT_EQ(model->selection(),
TextRange(2));
372 EXPECT_EQ(model->composing_range(),
TextRange(2));
373 EXPECT_STREQ(model->GetText().c_str(),
"A鶴DE");
377 model->UpdateComposingText(
"が");
378 EXPECT_EQ(model->selection(),
TextRange(3));
379 EXPECT_EQ(model->composing_range(),
TextRange(2, 3));
380 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がDE");
383 model->CommitComposing();
384 EXPECT_EQ(model->selection(),
TextRange(3));
385 EXPECT_EQ(model->composing_range(),
TextRange(3));
386 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がDE");
389 model->EndComposing();
390 EXPECT_EQ(model->selection(),
TextRange(3));
391 EXPECT_EQ(model->composing_range(),
TextRange(0));
392 EXPECT_STREQ(model->GetText().c_str(),
"A鶴がDE");
396 auto model = std::make_unique<TextInputModel>();
397 model->SetText(
"ABCDE");
398 model->BeginComposing();
399 model->SetComposingRange(
TextRange(1, 2), 1);
400 model->UpdateComposingText(
"");
401 EXPECT_EQ(model->selection(),
TextRange(1));
402 EXPECT_EQ(model->composing_range(),
TextRange(1));
403 model->SetText(
"ACDE");
407 auto model = std::make_unique<TextInputModel>();
408 model->AddCodePoint(
'A');
409 model->AddCodePoint(
'B');
410 model->AddCodePoint(0x1f604);
411 model->AddCodePoint(
'D');
412 model->AddCodePoint(
'E');
413 EXPECT_EQ(model->selection(),
TextRange(6));
414 EXPECT_EQ(model->composing_range(),
TextRange(0));
415 EXPECT_STREQ(model->GetText().c_str(),
"AB😄DE");
419 auto model = std::make_unique<TextInputModel>();
420 model->SetText(
"ABCDE");
421 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
422 model->AddCodePoint(
'x');
423 EXPECT_EQ(model->selection(),
TextRange(2));
424 EXPECT_EQ(model->composing_range(),
TextRange(0));
425 EXPECT_STREQ(model->GetText().c_str(),
"AxE");
429 auto model = std::make_unique<TextInputModel>();
430 model->SetText(
"ABCDE");
431 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
432 model->AddCodePoint(
'x');
433 EXPECT_EQ(model->selection(),
TextRange(2));
434 EXPECT_EQ(model->composing_range(),
TextRange(0));
435 EXPECT_STREQ(model->GetText().c_str(),
"AxE");
439 auto model = std::make_unique<TextInputModel>();
440 model->SetText(
"ABCDE");
441 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
442 model->AddCodePoint(0x1f604);
443 EXPECT_EQ(model->selection(),
TextRange(3));
444 EXPECT_EQ(model->composing_range(),
TextRange(0));
445 EXPECT_STREQ(model->GetText().c_str(),
"A😄E");
449 auto model = std::make_unique<TextInputModel>();
450 model->SetText(
"ABCDE");
451 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
452 model->AddCodePoint(0x1f604);
453 EXPECT_EQ(model->selection(),
TextRange(3));
454 EXPECT_EQ(model->composing_range(),
TextRange(0));
455 EXPECT_STREQ(model->GetText().c_str(),
"A😄E");
459 auto model = std::make_unique<TextInputModel>();
460 model->AddText(u
"ABCDE");
462 model->AddText(
"FGHIJ");
463 EXPECT_EQ(model->selection(),
TextRange(12));
464 EXPECT_EQ(model->composing_range(),
TextRange(0));
465 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE😄FGHIJ");
469 auto model = std::make_unique<TextInputModel>();
470 model->SetText(
"ABCDE");
471 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
472 model->AddText(
"xy");
473 EXPECT_EQ(model->selection(),
TextRange(3));
474 EXPECT_EQ(model->composing_range(),
TextRange(0));
475 EXPECT_STREQ(model->GetText().c_str(),
"AxyE");
479 auto model = std::make_unique<TextInputModel>();
480 model->SetText(
"ABCDE");
481 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
482 model->AddText(
"xy");
483 EXPECT_EQ(model->selection(),
TextRange(3));
484 EXPECT_EQ(model->composing_range(),
TextRange(0));
485 EXPECT_STREQ(model->GetText().c_str(),
"AxyE");
489 auto model = std::make_unique<TextInputModel>();
490 model->SetText(
"ABCDE");
491 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
492 model->AddText(u
"😄🙃");
493 EXPECT_EQ(model->selection(),
TextRange(5));
494 EXPECT_EQ(model->composing_range(),
TextRange(0));
495 EXPECT_STREQ(model->GetText().c_str(),
"A😄🙃E");
499 auto model = std::make_unique<TextInputModel>();
500 model->SetText(
"ABCDE");
501 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
502 model->AddText(u
"😄🙃");
503 EXPECT_EQ(model->selection(),
TextRange(5));
504 EXPECT_EQ(model->composing_range(),
TextRange(0));
505 EXPECT_STREQ(model->GetText().c_str(),
"A😄🙃E");
509 auto model = std::make_unique<TextInputModel>();
510 model->SetText(
"ABCDE");
511 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
512 ASSERT_TRUE(model->Delete());
513 EXPECT_EQ(model->selection(),
TextRange(0));
514 EXPECT_EQ(model->composing_range(),
TextRange(0));
515 EXPECT_STREQ(model->GetText().c_str(),
"BCDE");
519 auto model = std::make_unique<TextInputModel>();
520 model->SetText(
"ABCDE");
521 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
522 ASSERT_TRUE(model->Delete());
523 EXPECT_EQ(model->selection(),
TextRange(2));
524 EXPECT_EQ(model->composing_range(),
TextRange(0));
525 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
529 auto model = std::make_unique<TextInputModel>();
530 model->SetText(
"ABCDE");
531 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
532 ASSERT_FALSE(model->Delete());
533 EXPECT_EQ(model->selection(),
TextRange(5));
534 EXPECT_EQ(model->composing_range(),
TextRange(0));
535 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
539 auto model = std::make_unique<TextInputModel>();
540 model->SetText(
"😄🙃🤪🧐");
541 EXPECT_TRUE(model->SetSelection(
TextRange(4)));
542 ASSERT_TRUE(model->Delete());
543 EXPECT_EQ(model->selection(),
TextRange(4));
544 EXPECT_EQ(model->composing_range(),
TextRange(0));
545 EXPECT_STREQ(model->GetText().c_str(),
"😄🙃🧐");
549 auto model = std::make_unique<TextInputModel>();
550 model->SetText(
"ABCDE");
551 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
552 ASSERT_TRUE(model->Delete());
553 EXPECT_EQ(model->selection(),
TextRange(1));
554 EXPECT_EQ(model->composing_range(),
TextRange(0));
555 EXPECT_STREQ(model->GetText().c_str(),
"AE");
559 auto model = std::make_unique<TextInputModel>();
560 model->SetText(
"ABCDE");
561 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
562 ASSERT_TRUE(model->Delete());
563 EXPECT_EQ(model->selection(),
TextRange(1));
564 EXPECT_EQ(model->composing_range(),
TextRange(0));
565 EXPECT_STREQ(model->GetText().c_str(),
"AE");
569 auto model = std::make_unique<TextInputModel>();
570 model->SetText(
"ABCDE");
571 model->BeginComposing();
572 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
573 EXPECT_EQ(model->selection(),
TextRange(1));
574 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
575 ASSERT_TRUE(model->Delete());
576 EXPECT_EQ(model->selection(),
TextRange(1));
577 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
578 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
582 auto model = std::make_unique<TextInputModel>();
583 model->SetText(
"ABCDE");
584 model->BeginComposing();
585 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
586 EXPECT_EQ(model->selection(),
TextRange(1));
587 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
588 ASSERT_TRUE(model->Delete());
589 EXPECT_EQ(model->selection(),
TextRange(1));
590 EXPECT_EQ(model->composing_range(),
TextRange(3, 1));
591 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
595 auto model = std::make_unique<TextInputModel>();
596 model->SetText(
"ABCDE");
597 model->BeginComposing();
598 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
599 ASSERT_TRUE(model->Delete());
600 EXPECT_EQ(model->selection(),
TextRange(2));
601 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
602 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
606 auto model = std::make_unique<TextInputModel>();
607 model->SetText(
"ABCDE");
608 model->BeginComposing();
609 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
610 ASSERT_TRUE(model->Delete());
611 EXPECT_EQ(model->selection(),
TextRange(2));
612 EXPECT_EQ(model->composing_range(),
TextRange(3, 1));
613 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
617 auto model = std::make_unique<TextInputModel>();
618 model->SetText(
"ABCDE");
619 model->BeginComposing();
620 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
621 ASSERT_FALSE(model->Delete());
622 EXPECT_EQ(model->selection(),
TextRange(4));
623 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
624 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
628 auto model = std::make_unique<TextInputModel>();
629 model->SetText(
"ABCDE");
630 model->BeginComposing();
631 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
632 ASSERT_FALSE(model->Delete());
633 EXPECT_EQ(model->selection(),
TextRange(4));
634 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
635 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
639 auto model = std::make_unique<TextInputModel>();
640 model->SetText(
"ABCDE");
641 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
642 EXPECT_TRUE(model->DeleteSurrounding(0, 1));
643 EXPECT_EQ(model->selection(),
TextRange(2));
644 EXPECT_EQ(model->composing_range(),
TextRange(0));
645 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
649 auto model = std::make_unique<TextInputModel>();
650 model->SetText(
"ABCDE");
651 model->BeginComposing();
652 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
653 EXPECT_TRUE(model->DeleteSurrounding(0, 1));
654 EXPECT_EQ(model->selection(),
TextRange(2));
655 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
656 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
660 auto model = std::make_unique<TextInputModel>();
661 model->SetText(
"ABCDE");
662 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
663 EXPECT_TRUE(model->DeleteSurrounding(0, 3));
664 EXPECT_EQ(model->selection(),
TextRange(2));
665 EXPECT_EQ(model->composing_range(),
TextRange(0));
666 EXPECT_STREQ(model->GetText().c_str(),
"AB");
670 auto model = std::make_unique<TextInputModel>();
671 model->SetText(
"ABCDE");
672 model->BeginComposing();
673 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
674 EXPECT_TRUE(model->DeleteSurrounding(0, 2));
675 EXPECT_EQ(model->selection(),
TextRange(2));
676 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
677 EXPECT_STREQ(model->GetText().c_str(),
"ABE");
681 auto model = std::make_unique<TextInputModel>();
682 model->SetText(
"ABCDE");
683 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
684 EXPECT_TRUE(model->DeleteSurrounding(0, 4));
685 EXPECT_EQ(model->selection(),
TextRange(2));
686 EXPECT_EQ(model->composing_range(),
TextRange(0));
687 EXPECT_STREQ(model->GetText().c_str(),
"AB");
691 auto model = std::make_unique<TextInputModel>();
692 model->SetText(
"ABCDE");
693 model->BeginComposing();
694 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
695 EXPECT_TRUE(model->DeleteSurrounding(0, 4));
696 EXPECT_EQ(model->selection(),
TextRange(2));
697 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
698 EXPECT_STREQ(model->GetText().c_str(),
"ABE");
702 auto model = std::make_unique<TextInputModel>();
703 model->SetText(
"ABCDE");
704 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
705 EXPECT_TRUE(model->DeleteSurrounding(-1, 1));
706 EXPECT_EQ(model->selection(),
TextRange(1));
707 EXPECT_EQ(model->composing_range(),
TextRange(0));
708 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
712 auto model = std::make_unique<TextInputModel>();
713 model->SetText(
"ABCDE");
714 model->BeginComposing();
715 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 2));
716 EXPECT_TRUE(model->DeleteSurrounding(-1, 1));
717 EXPECT_EQ(model->selection(),
TextRange(2));
718 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
719 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
723 auto model = std::make_unique<TextInputModel>();
724 model->SetText(
"ABCDE");
725 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
726 EXPECT_TRUE(model->DeleteSurrounding(-2, 2));
727 EXPECT_EQ(model->selection(),
TextRange(0));
728 EXPECT_EQ(model->composing_range(),
TextRange(0));
729 EXPECT_STREQ(model->GetText().c_str(),
"CDE");
733 auto model = std::make_unique<TextInputModel>();
734 model->SetText(
"ABCDE");
735 model->BeginComposing();
736 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 2));
737 EXPECT_TRUE(model->DeleteSurrounding(-2, 2));
738 EXPECT_EQ(model->selection(),
TextRange(1));
739 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
740 EXPECT_STREQ(model->GetText().c_str(),
"ADE");
744 auto model = std::make_unique<TextInputModel>();
745 model->SetText(
"ABCDE");
746 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
747 EXPECT_TRUE(model->DeleteSurrounding(-3, 3));
748 EXPECT_EQ(model->selection(),
TextRange(0));
749 EXPECT_EQ(model->composing_range(),
TextRange(0));
750 EXPECT_STREQ(model->GetText().c_str(),
"CDE");
754 auto model = std::make_unique<TextInputModel>();
755 model->SetText(
"ABCDE");
756 model->BeginComposing();
757 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 2));
758 EXPECT_TRUE(model->DeleteSurrounding(-3, 3));
759 EXPECT_EQ(model->selection(),
TextRange(1));
760 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
761 EXPECT_STREQ(model->GetText().c_str(),
"ADE");
765 auto model = std::make_unique<TextInputModel>();
766 model->SetText(
"ABCDE");
767 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
768 EXPECT_TRUE(model->DeleteSurrounding(1, 1));
769 EXPECT_EQ(model->selection(),
TextRange(2));
770 EXPECT_EQ(model->composing_range(),
TextRange(0));
771 EXPECT_STREQ(model->GetText().c_str(),
"ABCE");
775 auto model = std::make_unique<TextInputModel>();
776 model->SetText(
"ABCDE");
777 model->BeginComposing();
778 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
779 EXPECT_TRUE(model->DeleteSurrounding(1, 1));
780 EXPECT_EQ(model->selection(),
TextRange(1));
781 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
782 EXPECT_STREQ(model->GetText().c_str(),
"ABDE");
786 auto model = std::make_unique<TextInputModel>();
787 model->SetText(
"ABCDE");
788 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
789 EXPECT_TRUE(model->DeleteSurrounding(1, 2));
790 EXPECT_EQ(model->selection(),
TextRange(2));
791 EXPECT_EQ(model->composing_range(),
TextRange(0));
792 EXPECT_STREQ(model->GetText().c_str(),
"ABC");
796 auto model = std::make_unique<TextInputModel>();
797 model->SetText(
"ABCDE");
798 model->BeginComposing();
799 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
800 EXPECT_TRUE(model->DeleteSurrounding(1, 2));
801 EXPECT_EQ(model->selection(),
TextRange(1));
802 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
803 EXPECT_STREQ(model->GetText().c_str(),
"ABE");
807 auto model = std::make_unique<TextInputModel>();
808 model->SetText(
"ABCDE");
809 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
810 EXPECT_TRUE(model->DeleteSurrounding(1, 3));
811 EXPECT_EQ(model->selection(),
TextRange(2));
812 EXPECT_EQ(model->composing_range(),
TextRange(0));
813 EXPECT_STREQ(model->GetText().c_str(),
"ABC");
817 auto model = std::make_unique<TextInputModel>();
818 model->SetText(
"ABCDE");
819 model->BeginComposing();
820 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
821 EXPECT_TRUE(model->DeleteSurrounding(1, 3));
822 EXPECT_EQ(model->selection(),
TextRange(1));
823 EXPECT_EQ(model->composing_range(),
TextRange(1, 2));
824 EXPECT_STREQ(model->GetText().c_str(),
"ABE");
828 auto model = std::make_unique<TextInputModel>();
829 model->SetText(
"ABCDE");
830 EXPECT_TRUE(model->SetSelection(
TextRange(2, 3)));
831 EXPECT_TRUE(model->DeleteSurrounding(0, 1));
832 EXPECT_EQ(model->selection(),
TextRange(3));
833 EXPECT_EQ(model->composing_range(),
TextRange(0));
834 EXPECT_STREQ(model->GetText().c_str(),
"ABCE");
838 auto model = std::make_unique<TextInputModel>();
839 model->SetText(
"ABCDE");
840 EXPECT_TRUE(model->SetSelection(
TextRange(4, 3)));
841 EXPECT_TRUE(model->DeleteSurrounding(0, 1));
842 EXPECT_EQ(model->selection(),
TextRange(3));
843 EXPECT_EQ(model->composing_range(),
TextRange(0));
844 EXPECT_STREQ(model->GetText().c_str(),
"ABCE");
848 auto model = std::make_unique<TextInputModel>();
849 model->SetText(
"ABCDE");
850 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
851 ASSERT_FALSE(model->Backspace());
852 EXPECT_EQ(model->selection(),
TextRange(0));
853 EXPECT_EQ(model->composing_range(),
TextRange(0));
854 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
858 auto model = std::make_unique<TextInputModel>();
859 model->SetText(
"ABCDE");
860 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
861 ASSERT_TRUE(model->Backspace());
862 EXPECT_EQ(model->selection(),
TextRange(1));
863 EXPECT_EQ(model->composing_range(),
TextRange(0));
864 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
868 auto model = std::make_unique<TextInputModel>();
869 model->SetText(
"ABCDE");
870 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
871 ASSERT_TRUE(model->Backspace());
872 EXPECT_EQ(model->selection(),
TextRange(4));
873 EXPECT_EQ(model->composing_range(),
TextRange(0));
874 EXPECT_STREQ(model->GetText().c_str(),
"ABCD");
878 auto model = std::make_unique<TextInputModel>();
879 model->SetText(
"😄🙃🤪🧐");
880 EXPECT_TRUE(model->SetSelection(
TextRange(4)));
881 ASSERT_TRUE(model->Backspace());
882 EXPECT_EQ(model->selection(),
TextRange(2));
883 EXPECT_EQ(model->composing_range(),
TextRange(0));
884 EXPECT_STREQ(model->GetText().c_str(),
"😄🤪🧐");
888 auto model = std::make_unique<TextInputModel>();
889 model->SetText(
"ABCDE");
890 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
891 ASSERT_TRUE(model->Delete());
892 EXPECT_EQ(model->selection(),
TextRange(1));
893 EXPECT_EQ(model->composing_range(),
TextRange(0));
894 EXPECT_STREQ(model->GetText().c_str(),
"AE");
898 auto model = std::make_unique<TextInputModel>();
899 model->SetText(
"ABCDE");
900 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
901 ASSERT_TRUE(model->Delete());
902 EXPECT_EQ(model->selection(),
TextRange(1));
903 EXPECT_EQ(model->composing_range(),
TextRange(0));
904 EXPECT_STREQ(model->GetText().c_str(),
"AE");
908 auto model = std::make_unique<TextInputModel>();
909 model->SetText(
"ABCDE");
910 model->BeginComposing();
911 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
912 ASSERT_FALSE(model->Backspace());
913 EXPECT_EQ(model->selection(),
TextRange(1));
914 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
915 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
919 auto model = std::make_unique<TextInputModel>();
920 model->SetText(
"ABCDE");
921 model->BeginComposing();
922 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
923 ASSERT_FALSE(model->Backspace());
924 EXPECT_EQ(model->selection(),
TextRange(1));
925 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
926 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
930 auto model = std::make_unique<TextInputModel>();
931 model->SetText(
"ABCDE");
932 model->BeginComposing();
933 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
934 ASSERT_TRUE(model->Backspace());
935 EXPECT_EQ(model->selection(),
TextRange(1));
936 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
937 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
941 auto model = std::make_unique<TextInputModel>();
942 model->SetText(
"ABCDE");
943 model->BeginComposing();
944 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
945 ASSERT_TRUE(model->Backspace());
946 EXPECT_EQ(model->selection(),
TextRange(1));
947 EXPECT_EQ(model->composing_range(),
TextRange(3, 1));
948 EXPECT_STREQ(model->GetText().c_str(),
"ACDE");
952 auto model = std::make_unique<TextInputModel>();
953 model->SetText(
"ABCDE");
954 model->BeginComposing();
955 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
956 ASSERT_TRUE(model->Backspace());
957 EXPECT_EQ(model->selection(),
TextRange(3));
958 EXPECT_EQ(model->composing_range(),
TextRange(1, 3));
959 EXPECT_STREQ(model->GetText().c_str(),
"ABCE");
963 auto model = std::make_unique<TextInputModel>();
964 model->SetText(
"ABCDE");
965 model->BeginComposing();
966 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
967 ASSERT_TRUE(model->Backspace());
968 EXPECT_EQ(model->selection(),
TextRange(3));
969 EXPECT_EQ(model->composing_range(),
TextRange(3, 1));
970 EXPECT_STREQ(model->GetText().c_str(),
"ABCE");
974 auto model = std::make_unique<TextInputModel>();
975 model->SetText(
"ABCDE");
976 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
977 EXPECT_TRUE(model->MoveCursorForward());
978 EXPECT_EQ(model->selection(),
TextRange(1));
979 EXPECT_EQ(model->composing_range(),
TextRange(0));
980 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
984 auto model = std::make_unique<TextInputModel>();
985 model->SetText(
"ABCDE");
986 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
987 EXPECT_TRUE(model->MoveCursorForward());
988 EXPECT_EQ(model->selection(),
TextRange(3));
989 EXPECT_EQ(model->composing_range(),
TextRange(0));
990 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
994 auto model = std::make_unique<TextInputModel>();
995 model->SetText(
"ABCDE");
996 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
997 EXPECT_FALSE(model->MoveCursorForward());
998 EXPECT_EQ(model->selection(),
TextRange(5));
999 EXPECT_EQ(model->composing_range(),
TextRange(0));
1000 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1004 auto model = std::make_unique<TextInputModel>();
1005 model->SetText(
"😄🙃🤪🧐");
1006 EXPECT_TRUE(model->SetSelection(
TextRange(4)));
1007 ASSERT_TRUE(model->MoveCursorForward());
1008 EXPECT_EQ(model->selection(),
TextRange(6));
1009 EXPECT_EQ(model->composing_range(),
TextRange(0));
1010 EXPECT_STREQ(model->GetText().c_str(),
"😄🙃🤪🧐");
1014 auto model = std::make_unique<TextInputModel>();
1015 model->SetText(
"ABCDE");
1016 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1017 EXPECT_TRUE(model->MoveCursorForward());
1018 EXPECT_EQ(model->selection(),
TextRange(4));
1019 EXPECT_EQ(model->composing_range(),
TextRange(0));
1020 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1024 auto model = std::make_unique<TextInputModel>();
1025 model->SetText(
"ABCDE");
1026 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1027 EXPECT_TRUE(model->MoveCursorForward());
1028 EXPECT_EQ(model->selection(),
TextRange(4));
1029 EXPECT_EQ(model->composing_range(),
TextRange(0));
1030 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1034 auto model = std::make_unique<TextInputModel>();
1035 model->SetText(
"ABCDE");
1036 model->BeginComposing();
1037 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1038 EXPECT_TRUE(model->MoveCursorForward());
1039 EXPECT_EQ(model->selection(),
TextRange(2));
1040 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1041 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1045 auto model = std::make_unique<TextInputModel>();
1046 model->SetText(
"ABCDE");
1047 model->BeginComposing();
1048 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
1049 EXPECT_TRUE(model->MoveCursorForward());
1050 EXPECT_EQ(model->selection(),
TextRange(2));
1051 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1052 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1056 auto model = std::make_unique<TextInputModel>();
1057 model->SetText(
"ABCDE");
1058 model->BeginComposing();
1059 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1060 EXPECT_TRUE(model->MoveCursorForward());
1061 EXPECT_EQ(model->selection(),
TextRange(3));
1062 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1063 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1067 auto model = std::make_unique<TextInputModel>();
1068 model->SetText(
"ABCDE");
1069 model->BeginComposing();
1070 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1071 EXPECT_TRUE(model->MoveCursorForward());
1072 EXPECT_EQ(model->selection(),
TextRange(3));
1073 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1074 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1078 auto model = std::make_unique<TextInputModel>();
1079 model->SetText(
"ABCDE");
1080 model->BeginComposing();
1081 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1082 EXPECT_FALSE(model->MoveCursorForward());
1083 EXPECT_EQ(model->selection(),
TextRange(4));
1084 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1085 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1089 auto model = std::make_unique<TextInputModel>();
1090 model->SetText(
"ABCDE");
1091 model->BeginComposing();
1092 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1093 EXPECT_FALSE(model->MoveCursorForward());
1094 EXPECT_EQ(model->selection(),
TextRange(4));
1095 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1096 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1100 auto model = std::make_unique<TextInputModel>();
1101 model->SetText(
"ABCDE");
1102 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1103 EXPECT_FALSE(model->MoveCursorBack());
1104 EXPECT_EQ(model->selection(),
TextRange(0));
1105 EXPECT_EQ(model->composing_range(),
TextRange(0));
1106 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1110 auto model = std::make_unique<TextInputModel>();
1111 model->SetText(
"ABCDE");
1112 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
1113 EXPECT_TRUE(model->MoveCursorBack());
1114 EXPECT_EQ(model->selection(),
TextRange(1));
1115 EXPECT_EQ(model->composing_range(),
TextRange(0));
1116 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1120 auto model = std::make_unique<TextInputModel>();
1121 model->SetText(
"ABCDE");
1122 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
1123 EXPECT_TRUE(model->MoveCursorBack());
1124 EXPECT_EQ(model->selection(),
TextRange(4));
1125 EXPECT_EQ(model->composing_range(),
TextRange(0));
1126 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1130 auto model = std::make_unique<TextInputModel>();
1131 model->SetText(
"😄🙃🤪🧐");
1132 EXPECT_TRUE(model->SetSelection(
TextRange(4)));
1133 ASSERT_TRUE(model->MoveCursorBack());
1134 EXPECT_EQ(model->selection(),
TextRange(2));
1135 EXPECT_EQ(model->composing_range(),
TextRange(0));
1136 EXPECT_STREQ(model->GetText().c_str(),
"😄🙃🤪🧐");
1140 auto model = std::make_unique<TextInputModel>();
1141 model->SetText(
"ABCDE");
1142 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1143 EXPECT_TRUE(model->MoveCursorBack());
1144 EXPECT_EQ(model->selection(),
TextRange(1));
1145 EXPECT_EQ(model->composing_range(),
TextRange(0));
1146 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1150 auto model = std::make_unique<TextInputModel>();
1151 model->SetText(
"ABCDE");
1152 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1153 EXPECT_TRUE(model->MoveCursorBack());
1154 EXPECT_EQ(model->selection(),
TextRange(1));
1155 EXPECT_EQ(model->composing_range(),
TextRange(0));
1156 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1160 auto model = std::make_unique<TextInputModel>();
1161 model->SetText(
"ABCDE");
1162 model->BeginComposing();
1163 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1164 EXPECT_TRUE(model->SetSelection(
TextRange(1)));
1165 EXPECT_FALSE(model->MoveCursorBack());
1166 EXPECT_EQ(model->selection(),
TextRange(1));
1167 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1168 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1172 auto model = std::make_unique<TextInputModel>();
1173 model->SetText(
"ABCDE");
1174 model->BeginComposing();
1175 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
1176 EXPECT_TRUE(model->SetSelection(
TextRange(1)));
1177 EXPECT_FALSE(model->MoveCursorBack());
1178 EXPECT_EQ(model->selection(),
TextRange(1));
1179 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1180 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1184 auto model = std::make_unique<TextInputModel>();
1185 model->SetText(
"ABCDE");
1186 model->BeginComposing();
1187 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1188 EXPECT_TRUE(model->MoveCursorBack());
1189 EXPECT_EQ(model->selection(),
TextRange(1));
1190 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1191 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1195 auto model = std::make_unique<TextInputModel>();
1196 model->SetText(
"ABCDE");
1197 model->BeginComposing();
1198 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1199 EXPECT_TRUE(model->MoveCursorBack());
1200 EXPECT_EQ(model->selection(),
TextRange(1));
1201 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1202 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1206 auto model = std::make_unique<TextInputModel>();
1207 model->SetText(
"ABCDE");
1208 model->BeginComposing();
1209 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1210 EXPECT_TRUE(model->MoveCursorBack());
1211 EXPECT_EQ(model->selection(),
TextRange(3));
1212 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1213 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1217 auto model = std::make_unique<TextInputModel>();
1218 model->SetText(
"ABCDE");
1219 model->BeginComposing();
1220 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1221 EXPECT_TRUE(model->MoveCursorBack());
1222 EXPECT_EQ(model->selection(),
TextRange(3));
1223 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1224 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1228 auto model = std::make_unique<TextInputModel>();
1229 model->SetText(
"ABCDE");
1230 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1231 EXPECT_FALSE(model->MoveCursorToBeginning());
1232 EXPECT_EQ(model->selection(),
TextRange(0));
1233 EXPECT_EQ(model->composing_range(),
TextRange(0));
1234 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1238 auto model = std::make_unique<TextInputModel>();
1239 model->SetText(
"ABCDE");
1240 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1241 EXPECT_FALSE(model->SelectToBeginning());
1242 EXPECT_EQ(model->selection(),
TextRange(0));
1243 EXPECT_EQ(model->composing_range(),
TextRange(0));
1244 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1248 auto model = std::make_unique<TextInputModel>();
1249 model->SetText(
"ABCDE");
1250 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
1251 EXPECT_TRUE(model->MoveCursorToBeginning());
1252 EXPECT_EQ(model->selection(),
TextRange(0));
1253 EXPECT_EQ(model->composing_range(),
TextRange(0));
1254 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1258 auto model = std::make_unique<TextInputModel>();
1259 model->SetText(
"ABCDE");
1260 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
1261 EXPECT_TRUE(model->SelectToBeginning());
1262 EXPECT_EQ(model->selection(),
TextRange(2, 0));
1263 EXPECT_EQ(model->composing_range(),
TextRange(0));
1264 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1268 auto model = std::make_unique<TextInputModel>();
1269 model->SetText(
"ABCDE");
1270 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
1271 EXPECT_TRUE(model->MoveCursorToBeginning());
1272 EXPECT_EQ(model->selection(),
TextRange(0));
1273 EXPECT_EQ(model->composing_range(),
TextRange(0));
1274 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1278 auto model = std::make_unique<TextInputModel>();
1279 model->SetText(
"ABCDE");
1280 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
1281 EXPECT_TRUE(model->SelectToBeginning());
1282 EXPECT_EQ(model->selection(),
TextRange(5, 0));
1283 EXPECT_EQ(model->composing_range(),
TextRange(0));
1284 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1288 auto model = std::make_unique<TextInputModel>();
1289 model->SetText(
"ABCDE");
1290 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1291 EXPECT_TRUE(model->MoveCursorToBeginning());
1292 EXPECT_EQ(model->selection(),
TextRange(0));
1293 EXPECT_EQ(model->composing_range(),
TextRange(0));
1294 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1298 auto model = std::make_unique<TextInputModel>();
1299 model->SetText(
"ABCDE");
1300 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1301 EXPECT_TRUE(model->SelectToBeginning());
1302 EXPECT_EQ(model->selection(),
TextRange(1, 0));
1303 EXPECT_EQ(model->composing_range(),
TextRange(0));
1304 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1308 auto model = std::make_unique<TextInputModel>();
1309 model->SetText(
"ABCDE");
1310 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1311 EXPECT_TRUE(model->MoveCursorToBeginning());
1312 EXPECT_EQ(model->selection(),
TextRange(0));
1313 EXPECT_EQ(model->composing_range(),
TextRange(0));
1314 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1318 auto model = std::make_unique<TextInputModel>();
1319 model->SetText(
"ABCDE");
1320 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1321 EXPECT_TRUE(model->SelectToBeginning());
1322 EXPECT_EQ(model->selection(),
TextRange(4, 0));
1323 EXPECT_EQ(model->composing_range(),
TextRange(0));
1324 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1328 auto model = std::make_unique<TextInputModel>();
1329 model->SetText(
"ABCDE");
1330 model->BeginComposing();
1331 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1332 EXPECT_FALSE(model->MoveCursorToBeginning());
1333 EXPECT_EQ(model->selection(),
TextRange(1));
1334 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1335 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1339 auto model = std::make_unique<TextInputModel>();
1340 model->SetText(
"ABCDE");
1341 model->BeginComposing();
1342 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1343 EXPECT_FALSE(model->SelectToBeginning());
1344 EXPECT_EQ(model->selection(),
TextRange(1));
1345 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1346 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1350 auto model = std::make_unique<TextInputModel>();
1351 model->SetText(
"ABCDE");
1352 model->BeginComposing();
1353 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
1354 EXPECT_FALSE(model->MoveCursorToBeginning());
1355 EXPECT_EQ(model->selection(),
TextRange(1));
1356 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1357 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1361 auto model = std::make_unique<TextInputModel>();
1362 model->SetText(
"ABCDE");
1363 model->BeginComposing();
1364 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 0));
1365 EXPECT_FALSE(model->SelectToBeginning());
1366 EXPECT_EQ(model->selection(),
TextRange(1));
1367 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1368 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1372 auto model = std::make_unique<TextInputModel>();
1373 model->SetText(
"ABCDE");
1374 model->BeginComposing();
1375 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1376 EXPECT_TRUE(model->MoveCursorToBeginning());
1377 EXPECT_EQ(model->selection(),
TextRange(1));
1378 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1379 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1383 auto model = std::make_unique<TextInputModel>();
1384 model->SetText(
"ABCDE");
1385 model->BeginComposing();
1386 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1387 EXPECT_TRUE(model->SelectToBeginning());
1388 EXPECT_EQ(model->selection(),
TextRange(2, 1));
1389 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1390 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1394 auto model = std::make_unique<TextInputModel>();
1395 model->SetText(
"ABCDE");
1396 model->BeginComposing();
1397 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1398 EXPECT_TRUE(model->MoveCursorToBeginning());
1399 EXPECT_EQ(model->selection(),
TextRange(1));
1400 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1401 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1405 auto model = std::make_unique<TextInputModel>();
1406 model->SetText(
"ABCDE");
1407 model->BeginComposing();
1408 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1409 EXPECT_TRUE(model->SelectToBeginning());
1410 EXPECT_EQ(model->selection(),
TextRange(2, 1));
1411 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1412 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1416 auto model = std::make_unique<TextInputModel>();
1417 model->SetText(
"ABCDE");
1418 model->BeginComposing();
1419 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1420 EXPECT_TRUE(model->MoveCursorToBeginning());
1421 EXPECT_EQ(model->selection(),
TextRange(1));
1422 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1423 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1427 auto model = std::make_unique<TextInputModel>();
1428 model->SetText(
"ABCDE");
1429 model->BeginComposing();
1430 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1431 EXPECT_TRUE(model->MoveCursorToBeginning());
1432 EXPECT_EQ(model->selection(),
TextRange(1));
1433 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1434 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1438 auto model = std::make_unique<TextInputModel>();
1439 model->SetText(
"ABCDE");
1440 model->BeginComposing();
1441 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1442 EXPECT_TRUE(model->MoveCursorToBeginning());
1443 EXPECT_EQ(model->selection(),
TextRange(1));
1444 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1445 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1449 auto model = std::make_unique<TextInputModel>();
1450 model->SetText(
"ABCDE");
1451 model->BeginComposing();
1452 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1453 EXPECT_TRUE(model->SelectToBeginning());
1454 EXPECT_EQ(model->selection(),
TextRange(4, 1));
1455 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1456 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1460 auto model = std::make_unique<TextInputModel>();
1461 model->SetText(
"ABCDE");
1462 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1463 EXPECT_TRUE(model->MoveCursorToEnd());
1464 EXPECT_EQ(model->selection(),
TextRange(5));
1465 EXPECT_EQ(model->composing_range(),
TextRange(0));
1466 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1470 auto model = std::make_unique<TextInputModel>();
1471 model->SetText(
"ABCDE");
1472 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1473 EXPECT_TRUE(model->SelectToEnd());
1474 EXPECT_EQ(model->selection(),
TextRange(0, 5));
1475 EXPECT_EQ(model->composing_range(),
TextRange(0));
1476 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1480 auto model = std::make_unique<TextInputModel>();
1481 model->SetText(
"ABCDE");
1482 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
1483 EXPECT_TRUE(model->MoveCursorToEnd());
1484 EXPECT_EQ(model->selection(),
TextRange(5));
1485 EXPECT_EQ(model->composing_range(),
TextRange(0));
1486 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1490 auto model = std::make_unique<TextInputModel>();
1491 model->SetText(
"ABCDE");
1492 EXPECT_TRUE(model->SetSelection(
TextRange(2)));
1493 EXPECT_TRUE(model->SelectToEnd());
1494 EXPECT_EQ(model->selection(),
TextRange(2, 5));
1495 EXPECT_EQ(model->composing_range(),
TextRange(0));
1496 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1500 auto model = std::make_unique<TextInputModel>();
1501 model->SetText(
"ABCDE");
1502 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
1503 EXPECT_FALSE(model->MoveCursorToEnd());
1504 EXPECT_EQ(model->selection(),
TextRange(5));
1505 EXPECT_EQ(model->composing_range(),
TextRange(0));
1506 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1510 auto model = std::make_unique<TextInputModel>();
1511 model->SetText(
"ABCDE");
1512 EXPECT_TRUE(model->SetSelection(
TextRange(5)));
1513 EXPECT_FALSE(model->SelectToEnd());
1514 EXPECT_EQ(model->selection(),
TextRange(5));
1515 EXPECT_EQ(model->composing_range(),
TextRange(0));
1516 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1520 auto model = std::make_unique<TextInputModel>();
1521 model->SetText(
"ABCDE");
1522 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1523 EXPECT_TRUE(model->MoveCursorToEnd());
1524 EXPECT_EQ(model->selection(),
TextRange(5));
1525 EXPECT_EQ(model->composing_range(),
TextRange(0));
1526 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1530 auto model = std::make_unique<TextInputModel>();
1531 model->SetText(
"ABCDE");
1532 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1533 EXPECT_TRUE(model->SelectToEnd());
1534 EXPECT_EQ(model->selection(),
TextRange(1, 5));
1535 EXPECT_EQ(model->composing_range(),
TextRange(0));
1536 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1540 auto model = std::make_unique<TextInputModel>();
1541 model->SetText(
"ABCDE");
1542 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1543 EXPECT_TRUE(model->MoveCursorToEnd());
1544 EXPECT_EQ(model->selection(),
TextRange(5));
1545 EXPECT_EQ(model->composing_range(),
TextRange(0));
1546 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1550 auto model = std::make_unique<TextInputModel>();
1551 model->SetText(
"ABCDE");
1552 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1553 EXPECT_TRUE(model->SelectToEnd());
1554 EXPECT_EQ(model->selection(),
TextRange(4, 5));
1555 EXPECT_EQ(model->composing_range(),
TextRange(0));
1556 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1560 auto model = std::make_unique<TextInputModel>();
1561 model->SetText(
"ABCDE");
1562 model->BeginComposing();
1563 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1564 EXPECT_TRUE(model->MoveCursorToEnd());
1565 EXPECT_EQ(model->selection(),
TextRange(4));
1566 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1567 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1571 auto model = std::make_unique<TextInputModel>();
1572 model->SetText(
"ABCDE");
1573 model->BeginComposing();
1574 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1575 EXPECT_TRUE(model->SelectToEnd());
1576 EXPECT_EQ(model->selection(),
TextRange(1, 4));
1577 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1578 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1582 auto model = std::make_unique<TextInputModel>();
1583 model->SetText(
"ABCDE");
1584 model->BeginComposing();
1585 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1586 EXPECT_TRUE(model->MoveCursorToEnd());
1587 EXPECT_EQ(model->selection(),
TextRange(4));
1588 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1589 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1593 auto model = std::make_unique<TextInputModel>();
1594 model->SetText(
"ABCDE");
1595 model->BeginComposing();
1596 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 0));
1597 EXPECT_TRUE(model->SelectToEnd());
1598 EXPECT_EQ(model->selection(),
TextRange(1, 4));
1599 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1600 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1604 auto model = std::make_unique<TextInputModel>();
1605 model->SetText(
"ABCDE");
1606 model->BeginComposing();
1607 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1608 EXPECT_TRUE(model->MoveCursorToEnd());
1609 EXPECT_EQ(model->selection(),
TextRange(4));
1610 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1611 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1615 auto model = std::make_unique<TextInputModel>();
1616 model->SetText(
"ABCDE");
1617 model->BeginComposing();
1618 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 1));
1619 EXPECT_TRUE(model->SelectToEnd());
1620 EXPECT_EQ(model->selection(),
TextRange(2, 4));
1621 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1622 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1626 auto model = std::make_unique<TextInputModel>();
1627 model->SetText(
"ABCDE");
1628 model->BeginComposing();
1629 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1630 EXPECT_TRUE(model->MoveCursorToEnd());
1631 EXPECT_EQ(model->selection(),
TextRange(4));
1632 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1633 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1637 auto model = std::make_unique<TextInputModel>();
1638 model->SetText(
"ABCDE");
1639 model->BeginComposing();
1640 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 1));
1641 EXPECT_TRUE(model->SelectToEnd());
1642 EXPECT_EQ(model->selection(),
TextRange(2, 4));
1643 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1644 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1648 auto model = std::make_unique<TextInputModel>();
1649 model->SetText(
"ABCDE");
1650 model->BeginComposing();
1651 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1652 EXPECT_FALSE(model->MoveCursorToEnd());
1653 EXPECT_EQ(model->selection(),
TextRange(4));
1654 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1655 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1659 auto model = std::make_unique<TextInputModel>();
1660 model->SetText(
"ABCDE");
1661 model->BeginComposing();
1662 EXPECT_TRUE(model->SetComposingRange(
TextRange(1, 4), 3));
1663 EXPECT_FALSE(model->SelectToEnd());
1664 EXPECT_EQ(model->selection(),
TextRange(4));
1665 EXPECT_EQ(model->composing_range(),
TextRange(1, 4));
1666 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1670 auto model = std::make_unique<TextInputModel>();
1671 model->SetText(
"ABCDE");
1672 model->BeginComposing();
1673 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1674 EXPECT_FALSE(model->MoveCursorToEnd());
1675 EXPECT_EQ(model->selection(),
TextRange(4));
1676 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1677 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1681 auto model = std::make_unique<TextInputModel>();
1682 model->SetText(
"ABCDE");
1683 model->BeginComposing();
1684 EXPECT_TRUE(model->SetComposingRange(
TextRange(4, 1), 3));
1685 EXPECT_FALSE(model->SelectToEnd());
1686 EXPECT_EQ(model->selection(),
TextRange(4));
1687 EXPECT_EQ(model->composing_range(),
TextRange(4, 1));
1688 EXPECT_STREQ(model->GetText().c_str(),
"ABCDE");
1692 auto model = std::make_unique<TextInputModel>();
1694 model->SetText(
"$¢€𐍈");
1695 EXPECT_TRUE(model->SetSelection(
TextRange(0)));
1696 EXPECT_EQ(model->GetCursorOffset(), 0);
1697 EXPECT_TRUE(model->MoveCursorForward());
1698 EXPECT_EQ(model->GetCursorOffset(), 1);
1699 EXPECT_TRUE(model->MoveCursorForward());
1700 EXPECT_EQ(model->GetCursorOffset(), 3);
1701 EXPECT_TRUE(model->MoveCursorForward());
1702 EXPECT_EQ(model->GetCursorOffset(), 6);
1703 EXPECT_TRUE(model->MoveCursorForward());
1704 EXPECT_EQ(model->GetCursorOffset(), 10);
1708 auto model = std::make_unique<TextInputModel>();
1709 model->SetText(
"ABCDE");
1710 EXPECT_TRUE(model->SetSelection(
TextRange(1, 4)));
1711 EXPECT_EQ(model->GetCursorOffset(), 4);
1715 auto model = std::make_unique<TextInputModel>();
1716 model->SetText(
"ABCDE");
1717 EXPECT_TRUE(model->SetSelection(
TextRange(4, 1)));
1718 EXPECT_EQ(model->GetCursorOffset(), 1);