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

Side by Side Diff: chrome/browser/chromeos/input_method/mode_indicator_browsertest.cc

Issue 348293002: Do not consume Alt-Shift-Up event for IME switch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <algorithm> 5 #include <algorithm>
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "chrome/browser/chromeos/input_method/input_method_util.h" 8 #include "chrome/browser/chromeos/input_method/input_method_util.h"
9 #include "chrome/browser/chromeos/input_method/mode_indicator_controller.h" 9 #include "chrome/browser/chromeos/input_method/mode_indicator_controller.h"
10 #include "chrome/test/base/in_process_browser_test.h" 10 #include "chrome/test/base/in_process_browser_test.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 chromeos::IMECandidateWindowHandlerInterface* candidate_window = 142 chromeos::IMECandidateWindowHandlerInterface* candidate_window =
143 chromeos::IMEBridge::Get()->GetCandidateWindowHandler(); 143 chromeos::IMEBridge::Get()->GetCandidateWindowHandler();
144 candidate_window->FocusStateChanged(true); 144 candidate_window->FocusStateChanged(true);
145 145
146 // Check if the size of the mode indicator is expected. 146 // Check if the size of the mode indicator is expected.
147 gfx::Rect cursor1_bounds(100, 100, 1, 20); 147 gfx::Rect cursor1_bounds(100, 100, 1, 20);
148 gfx::Rect mi1_bounds; 148 gfx::Rect mi1_bounds;
149 { 149 {
150 ScopedModeIndicatorObserverForTesting observer; 150 ScopedModeIndicatorObserverForTesting observer;
151 candidate_window->SetCursorBounds(cursor1_bounds, cursor1_bounds); 151 candidate_window->SetCursorBounds(cursor1_bounds, cursor1_bounds);
152 EXPECT_TRUE(imm->SwitchToNextInputMethod()); 152 imm->SwitchToNextInputMethod();
153 mi1_bounds = observer.last_bounds(); 153 mi1_bounds = observer.last_bounds();
154 // The bounds should be bigger than the inner size. 154 // The bounds should be bigger than the inner size.
155 EXPECT_LE(kInnerSize, mi1_bounds.width()); 155 EXPECT_LE(kInnerSize, mi1_bounds.width());
156 EXPECT_LE(kInnerSize, mi1_bounds.height()); 156 EXPECT_LE(kInnerSize, mi1_bounds.height());
157 EXPECT_TRUE(observer.is_displayed()); 157 EXPECT_TRUE(observer.is_displayed());
158 } 158 }
159 159
160 // Check if the location of the mode indicator is coresponded to 160 // Check if the location of the mode indicator is coresponded to
161 // the cursor bounds. 161 // the cursor bounds.
162 gfx::Rect cursor2_bounds(50, 200, 1, 20); 162 gfx::Rect cursor2_bounds(50, 200, 1, 20);
163 gfx::Rect mi2_bounds; 163 gfx::Rect mi2_bounds;
164 { 164 {
165 ScopedModeIndicatorObserverForTesting observer; 165 ScopedModeIndicatorObserverForTesting observer;
166 candidate_window->SetCursorBounds(cursor2_bounds, cursor2_bounds); 166 candidate_window->SetCursorBounds(cursor2_bounds, cursor2_bounds);
167 EXPECT_TRUE(imm->SwitchToNextInputMethod()); 167 imm->SwitchToNextInputMethod();
168 mi2_bounds = observer.last_bounds(); 168 mi2_bounds = observer.last_bounds();
169 EXPECT_TRUE(observer.is_displayed()); 169 EXPECT_TRUE(observer.is_displayed());
170 } 170 }
171 171
172 EXPECT_EQ(cursor1_bounds.x() - cursor2_bounds.x(), 172 EXPECT_EQ(cursor1_bounds.x() - cursor2_bounds.x(),
173 mi1_bounds.x() - mi2_bounds.x()); 173 mi1_bounds.x() - mi2_bounds.x());
174 EXPECT_EQ(cursor1_bounds.y() - cursor2_bounds.y(), 174 EXPECT_EQ(cursor1_bounds.y() - cursor2_bounds.y(),
175 mi1_bounds.y() - mi2_bounds.y()); 175 mi1_bounds.y() - mi2_bounds.y());
176 EXPECT_EQ(mi1_bounds.width(), mi2_bounds.width()); 176 EXPECT_EQ(mi1_bounds.width(), mi2_bounds.width());
177 EXPECT_EQ(mi1_bounds.height(), mi2_bounds.height()); 177 EXPECT_EQ(mi1_bounds.height(), mi2_bounds.height());
178 178
179 const gfx::Rect screen_bounds = 179 const gfx::Rect screen_bounds =
180 ash::Shell::GetScreen()->GetDisplayMatching(cursor1_bounds).work_area(); 180 ash::Shell::GetScreen()->GetDisplayMatching(cursor1_bounds).work_area();
181 181
182 // Check if the location of the mode indicator is concidered with 182 // Check if the location of the mode indicator is concidered with
183 // the screen size. 183 // the screen size.
184 const gfx::Rect cursor3_bounds(100, screen_bounds.bottom() - 25, 1, 20); 184 const gfx::Rect cursor3_bounds(100, screen_bounds.bottom() - 25, 1, 20);
185 gfx::Rect mi3_bounds; 185 gfx::Rect mi3_bounds;
186 { 186 {
187 ScopedModeIndicatorObserverForTesting observer; 187 ScopedModeIndicatorObserverForTesting observer;
188 candidate_window->SetCursorBounds(cursor3_bounds, cursor3_bounds); 188 candidate_window->SetCursorBounds(cursor3_bounds, cursor3_bounds);
189 EXPECT_TRUE(imm->SwitchToNextInputMethod()); 189 imm->SwitchToNextInputMethod();
190 mi3_bounds = observer.last_bounds(); 190 mi3_bounds = observer.last_bounds();
191 EXPECT_TRUE(observer.is_displayed()); 191 EXPECT_TRUE(observer.is_displayed());
192 EXPECT_LT(mi3_bounds.bottom(), screen_bounds.bottom()); 192 EXPECT_LT(mi3_bounds.bottom(), screen_bounds.bottom());
193 } 193 }
194 } 194 }
195 195
196 IN_PROC_BROWSER_TEST_F(ModeIndicatorBrowserTest, NumOfWidgets) { 196 IN_PROC_BROWSER_TEST_F(ModeIndicatorBrowserTest, NumOfWidgets) {
197 InitializeIMF(); 197 InitializeIMF();
198 198
199 InputMethodManager* imm = InputMethodManager::Get(); 199 InputMethodManager* imm = InputMethodManager::Get();
200 ASSERT_TRUE(imm); 200 ASSERT_TRUE(imm);
201 201
202 std::vector<std::string> keyboard_layouts; 202 std::vector<std::string> keyboard_layouts;
203 keyboard_layouts.push_back( 203 keyboard_layouts.push_back(
204 extension_ime_util::GetInputMethodIDByEngineID("xkb:fr::fra")); 204 extension_ime_util::GetInputMethodIDByEngineID("xkb:fr::fra"));
205 205
206 // Add keyboard layouts to enable the mode indicator. 206 // Add keyboard layouts to enable the mode indicator.
207 imm->EnableLoginLayouts("fr", keyboard_layouts); 207 imm->EnableLoginLayouts("fr", keyboard_layouts);
208 ASSERT_LT(1UL, imm->GetNumActiveInputMethods()); 208 ASSERT_LT(1UL, imm->GetNumActiveInputMethods());
209 209
210 chromeos::IMECandidateWindowHandlerInterface* candidate_window = 210 chromeos::IMECandidateWindowHandlerInterface* candidate_window =
211 chromeos::IMEBridge::Get()->GetCandidateWindowHandler(); 211 chromeos::IMEBridge::Get()->GetCandidateWindowHandler();
212 candidate_window->FocusStateChanged(true); 212 candidate_window->FocusStateChanged(true);
213 213
214 { 214 {
215 ScopedModeIndicatorObserverForTesting observer; 215 ScopedModeIndicatorObserverForTesting observer;
216 216
217 EXPECT_TRUE(imm->SwitchToNextInputMethod()); 217 imm->SwitchToNextInputMethod();
218 EXPECT_EQ(1UL, observer.max_widget_list_size()); 218 EXPECT_EQ(1UL, observer.max_widget_list_size());
219 const views::Widget* widget1 = observer.widget_list()[0]; 219 const views::Widget* widget1 = observer.widget_list()[0];
220 220
221 EXPECT_TRUE(imm->SwitchToNextInputMethod()); 221 imm->SwitchToNextInputMethod();
222 EXPECT_EQ(2UL, observer.max_widget_list_size()); 222 EXPECT_EQ(2UL, observer.max_widget_list_size());
223 223
224 // When a new mode indicator is displayed, the previous one should be 224 // When a new mode indicator is displayed, the previous one should be
225 // closed. 225 // closed.
226 content::RunAllPendingInMessageLoop(); 226 content::RunAllPendingInMessageLoop();
227 EXPECT_EQ(1UL, observer.widget_list_size()); 227 EXPECT_EQ(1UL, observer.widget_list_size());
228 const views::Widget* widget2 = observer.widget_list()[0]; 228 const views::Widget* widget2 = observer.widget_list()[0];
229 EXPECT_NE(widget1, widget2); 229 EXPECT_NE(widget1, widget2);
230 } 230 }
231 } 231 }
232 } // namespace input_method 232 } // namespace input_method
233 } // namespace chromeos 233 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698