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

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

Issue 2827903002: Hide cold mode idle time spellchecker behind a flag (Closed)
Patch Set: 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/spellcheck/IdleSpellCheckCallback.h" 5 #include "core/editing/spellcheck/IdleSpellCheckCallback.h"
6 6
7 #include "core/editing/spellcheck/SpellCheckTestBase.h" 7 #include "core/editing/spellcheck/SpellCheckTestBase.h"
8 #include "core/editing/spellcheck/SpellChecker.h" 8 #include "core/editing/spellcheck/SpellChecker.h"
9 #include "core/frame/LocalFrame.h" 9 #include "core/frame/LocalFrame.h"
10 #include "platform/RuntimeEnabledFeatures.h" 10 #include "platform/RuntimeEnabledFeatures.h"
(...skipping 10 matching lines...) Expand all
21 21
22 void TransitTo(State state) { 22 void TransitTo(State state) {
23 switch (state) { 23 switch (state) {
24 case State::kInactive: 24 case State::kInactive:
25 IdleChecker().Deactivate(); 25 IdleChecker().Deactivate();
26 break; 26 break;
27 case State::kHotModeRequested: 27 case State::kHotModeRequested:
28 IdleChecker().SetNeedsInvocation(); 28 IdleChecker().SetNeedsInvocation();
29 break; 29 break;
30 case State::kColdModeTimerStarted: 30 case State::kColdModeTimerStarted:
31 DCHECK(RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled());
31 break; 32 break;
32 case State::kColdModeRequested: 33 case State::kColdModeRequested:
34 DCHECK(RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled());
33 IdleChecker().SkipColdModeTimerForTesting(); 35 IdleChecker().SkipColdModeTimerForTesting();
34 break; 36 break;
35 case State::kInHotModeInvocation: 37 case State::kInHotModeInvocation:
36 case State::kInColdModeInvocation: 38 case State::kInColdModeInvocation:
37 NOTREACHED(); 39 NOTREACHED();
38 } 40 }
39 } 41 }
40 }; 42 };
41 43
42 // Test cases for lifecycle state transitions. 44 // Test cases for lifecycle state transitions.
43 45
44 TEST_F(IdleSpellCheckCallbackTest, Initialization) { 46 TEST_F(IdleSpellCheckCallbackTest, InitializationWithColdMode) {
45 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 47 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
46 return; 48 return;
49 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
50 return;
47 51
48 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState()); 52 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState());
49 } 53 }
50 54
55 TEST_F(IdleSpellCheckCallbackTest, InitializationWithoutColdMode) {
56 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
57 return;
58 if (RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
59 return;
60
61 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
62 }
63
51 TEST_F(IdleSpellCheckCallbackTest, RequestWhenInactive) { 64 TEST_F(IdleSpellCheckCallbackTest, RequestWhenInactive) {
52 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 65 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
53 return; 66 return;
54 67
55 TransitTo(State::kInactive); 68 TransitTo(State::kInactive);
56 IdleChecker().SetNeedsInvocation(); 69 IdleChecker().SetNeedsInvocation();
57 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState()); 70 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState());
58 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); 71 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
59 } 72 }
60 73
61 TEST_F(IdleSpellCheckCallbackTest, RequestWhenHotModeRequested) { 74 TEST_F(IdleSpellCheckCallbackTest, RequestWhenHotModeRequested) {
62 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 75 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
63 return; 76 return;
64 77
65 TransitTo(State::kHotModeRequested); 78 TransitTo(State::kHotModeRequested);
66 int handle = IdleChecker().IdleCallbackHandle(); 79 int handle = IdleChecker().IdleCallbackHandle();
67 IdleChecker().SetNeedsInvocation(); 80 IdleChecker().SetNeedsInvocation();
68 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState()); 81 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState());
69 EXPECT_EQ(handle, IdleChecker().IdleCallbackHandle()); 82 EXPECT_EQ(handle, IdleChecker().IdleCallbackHandle());
70 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); 83 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
71 } 84 }
72 85
73 TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) { 86 TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeTimerStarted) {
74 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 87 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
75 return; 88 return;
89 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
90 return;
76 91
77 TransitTo(State::kColdModeTimerStarted); 92 TransitTo(State::kColdModeTimerStarted);
78 IdleChecker().SetNeedsInvocation(); 93 IdleChecker().SetNeedsInvocation();
79 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState()); 94 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState());
80 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); 95 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
81 } 96 }
82 97
83 TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) { 98 TEST_F(IdleSpellCheckCallbackTest, RequestWhenColdModeRequested) {
84 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 99 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
85 return; 100 return;
101 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
102 return;
86 103
87 TransitTo(State::kColdModeRequested); 104 TransitTo(State::kColdModeRequested);
88 int handle = IdleChecker().IdleCallbackHandle(); 105 int handle = IdleChecker().IdleCallbackHandle();
89 IdleChecker().SetNeedsInvocation(); 106 IdleChecker().SetNeedsInvocation();
90 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState()); 107 EXPECT_EQ(State::kHotModeRequested, IdleChecker().GetState());
91 EXPECT_NE(handle, IdleChecker().IdleCallbackHandle()); 108 EXPECT_NE(handle, IdleChecker().IdleCallbackHandle());
92 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); 109 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
93 } 110 }
94 111
112 TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToInactive) {
113 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
114 return;
115 if (RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
116 return;
117
118 TransitTo(State::kHotModeRequested);
119 IdleChecker().ForceInvocationForTesting();
120 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
121 }
122
95 TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToColdMode) { 123 TEST_F(IdleSpellCheckCallbackTest, HotModeTransitToColdMode) {
96 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 124 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
97 return; 125 return;
126 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
127 return;
98 128
99 TransitTo(State::kHotModeRequested); 129 TransitTo(State::kHotModeRequested);
100 IdleChecker().ForceInvocationForTesting(); 130 IdleChecker().ForceInvocationForTesting();
101 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState()); 131 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState());
102 } 132 }
103 133
104 TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) { 134 TEST_F(IdleSpellCheckCallbackTest, ColdModeTimerStartedToRequested) {
105 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 135 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
106 return; 136 return;
137 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
138 return;
107 139
108 TransitTo(State::kColdModeTimerStarted); 140 TransitTo(State::kColdModeTimerStarted);
109 IdleChecker().SkipColdModeTimerForTesting(); 141 IdleChecker().SkipColdModeTimerForTesting();
110 EXPECT_EQ(State::kColdModeRequested, IdleChecker().GetState()); 142 EXPECT_EQ(State::kColdModeRequested, IdleChecker().GetState());
111 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle()); 143 EXPECT_NE(-1, IdleChecker().IdleCallbackHandle());
112 } 144 }
113 145
114 TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) { 146 TEST_F(IdleSpellCheckCallbackTest, ColdModeStayAtColdMode) {
115 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 147 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
116 return; 148 return;
149 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
150 return;
117 151
118 TransitTo(State::kColdModeRequested); 152 TransitTo(State::kColdModeRequested);
119 IdleChecker().SetNeedsMoreColdModeInvocationForTesting(); 153 IdleChecker().SetNeedsMoreColdModeInvocationForTesting();
120 IdleChecker().ForceInvocationForTesting(); 154 IdleChecker().ForceInvocationForTesting();
121 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState()); 155 EXPECT_EQ(State::kColdModeTimerStarted, IdleChecker().GetState());
122 } 156 }
123 157
124 TEST_F(IdleSpellCheckCallbackTest, ColdModeToInactive) { 158 TEST_F(IdleSpellCheckCallbackTest, ColdModeToInactive) {
125 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 159 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
126 return; 160 return;
161 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
162 return;
127 163
128 TransitTo(State::kColdModeRequested); 164 TransitTo(State::kColdModeRequested);
129 IdleChecker().ForceInvocationForTesting(); 165 IdleChecker().ForceInvocationForTesting();
130 EXPECT_EQ(State::kInactive, IdleChecker().GetState()); 166 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
131 } 167 }
132 168
133 TEST_F(IdleSpellCheckCallbackTest, DetachWhenInactive) { 169 TEST_F(IdleSpellCheckCallbackTest, DetachWhenInactive) {
134 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 170 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
135 return; 171 return;
136 172
137 TransitTo(State::kInactive); 173 TransitTo(State::kInactive);
138 GetDocument().Shutdown(); 174 GetDocument().Shutdown();
139 EXPECT_EQ(State::kInactive, IdleChecker().GetState()); 175 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
140 } 176 }
141 177
142 TEST_F(IdleSpellCheckCallbackTest, DetachWhenHotModeRequested) { 178 TEST_F(IdleSpellCheckCallbackTest, DetachWhenHotModeRequested) {
143 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 179 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
144 return; 180 return;
145 181
146 TransitTo(State::kHotModeRequested); 182 TransitTo(State::kHotModeRequested);
147 GetDocument().Shutdown(); 183 GetDocument().Shutdown();
148 EXPECT_EQ(State::kInactive, IdleChecker().GetState()); 184 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
149 } 185 }
150 186
151 TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeTimerStarted) { 187 TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeTimerStarted) {
152 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 188 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
153 return; 189 return;
190 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
191 return;
154 192
155 TransitTo(State::kColdModeTimerStarted); 193 TransitTo(State::kColdModeTimerStarted);
156 GetDocument().Shutdown(); 194 GetDocument().Shutdown();
157 EXPECT_EQ(State::kInactive, IdleChecker().GetState()); 195 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
158 } 196 }
159 197
160 TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeRequested) { 198 TEST_F(IdleSpellCheckCallbackTest, DetachWhenColdModeRequested) {
161 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled()) 199 if (!RuntimeEnabledFeatures::idleTimeSpellCheckingEnabled())
162 return; 200 return;
201 if (!RuntimeEnabledFeatures::idleTimeColdModeSpellCheckingEnabled())
202 return;
163 203
164 TransitTo(State::kColdModeRequested); 204 TransitTo(State::kColdModeRequested);
165 GetDocument().Shutdown(); 205 GetDocument().Shutdown();
166 EXPECT_EQ(State::kInactive, IdleChecker().GetState()); 206 EXPECT_EQ(State::kInactive, IdleChecker().GetState());
167 } 207 }
168 208
169 } // namespace blink 209 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698