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

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

Issue 1824143003: [All-In-One] Introduce BackspaceStateMachine (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "core/editing/BackspaceStateMachine.h"
6
7 #include <gtest/gtest.h>
yosin_UTC9 2016/03/25 10:01:05 s/<gtest/gtest.h>/"testing/gtest/include/gtest/gte
Seigo Nonaka 2016/03/25 10:26:32 Done.
8
9 namespace blink {
10
yosin_UTC9 2016/03/25 10:01:05 Could you add test for no call for |udpateState()|
Seigo Nonaka 2016/03/25 10:26:32 Done.
11 TEST(BackspaceStateMachineTest, SingleCharacter)
12 {
13 BackspaceStateMachine machine;
14 EXPECT_TRUE(machine.updateState('a'));
15 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
16
17 machine.reset();
18 EXPECT_TRUE(machine.updateState('-'));
19 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
20
21 machine.reset();
22 EXPECT_TRUE(machine.updateState('\t'));
23 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
24
25 machine.reset();
26 // U+3042 HIRAGANA LETTER A.
27 EXPECT_TRUE(machine.updateState(0x3042));
28 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
29 }
30
31 TEST(BackspaceStateMachineTest, SurrogatePair)
32 {
33 BackspaceStateMachine machine;
34
35 // U+1F5FA(WORLD MAP) is \uD83D\uDDFA in UTF-16.
36 uint16_t leadSurrogate = 0xD83D;
37 uint16_t trailSurrogate = 0xDDFA;
38
39 EXPECT_FALSE(machine.updateState(trailSurrogate));
40 EXPECT_TRUE(machine.updateState(leadSurrogate));
41 EXPECT_EQ(2, machine.finalizeAndGetCodeUnitCountToBeDeleted());
42
43 // Edge cases
44 // Unpaired trailing surrogate. Delete only broken trail surrogate.
45 machine.reset();
46 EXPECT_FALSE(machine.updateState(trailSurrogate));
47 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
48
49 machine.reset();
50 EXPECT_FALSE(machine.updateState(trailSurrogate));
51 EXPECT_TRUE(machine.updateState('a'));
52 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
53
54 machine.reset();
55 EXPECT_FALSE(machine.updateState(trailSurrogate));
56 EXPECT_TRUE(machine.updateState(trailSurrogate));
57 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
58
59 // Unpaired leading surrogate. Delete only broken lead surrogate.
60 machine.reset();
61 EXPECT_TRUE(machine.updateState(leadSurrogate));
62 EXPECT_EQ(1, machine.finalizeAndGetCodeUnitCountToBeDeleted());
63 }
64
65 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698