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

Side by Side Diff: ui/views/controls/combobox/combobox_unittest.cc

Issue 2624093002: MacViews: Correctly handle character events when there's an active TextInputClient. (Closed)
Patch Set: Flip isKeyDownEventHandled_ -> hasUnhandledKeyDownEvent_ Created 3 years, 11 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
« no previous file with comments | « ui/views/cocoa/bridged_content_view.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ui/views/controls/combobox/combobox.h" 5 #include "ui/views/controls/combobox/combobox.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "build/build_config.h" 11 #include "build/build_config.h"
12 #include "ui/base/ime/input_method.h" 12 #include "ui/base/ime/input_method.h"
13 #include "ui/base/ime/text_input_client.h" 13 #include "ui/base/ime/text_input_client.h"
14 #include "ui/base/models/combobox_model.h" 14 #include "ui/base/models/combobox_model.h"
15 #include "ui/base/models/menu_model.h" 15 #include "ui/base/models/menu_model.h"
16 #include "ui/events/event.h" 16 #include "ui/events/event.h"
17 #include "ui/events/event_constants.h" 17 #include "ui/events/event_constants.h"
18 #include "ui/events/event_utils.h" 18 #include "ui/events/event_utils.h"
19 #include "ui/events/keycodes/dom/dom_code.h" 19 #include "ui/events/keycodes/dom/dom_code.h"
20 #include "ui/events/keycodes/keyboard_codes.h" 20 #include "ui/events/keycodes/keyboard_codes.h"
21 #include "ui/events/test/event_generator.h"
21 #include "ui/views/controls/combobox/combobox_listener.h" 22 #include "ui/views/controls/combobox/combobox_listener.h"
22 #include "ui/views/test/combobox_test_api.h" 23 #include "ui/views/test/combobox_test_api.h"
23 #include "ui/views/test/views_test_base.h" 24 #include "ui/views/test/views_test_base.h"
24 #include "ui/views/widget/widget.h" 25 #include "ui/views/widget/widget.h"
25 26
26 using base::ASCIIToUTF16; 27 using base::ASCIIToUTF16;
27 28
28 namespace views { 29 namespace views {
29 30
30 using test::ComboboxTestApi; 31 using test::ComboboxTestApi;
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 if (separators) 200 if (separators)
200 model_->SetSeparators(*separators); 201 model_->SetSeparators(*separators);
201 202
202 ASSERT_FALSE(combobox_); 203 ASSERT_FALSE(combobox_);
203 combobox_ = new TestCombobox(model_.get(), style); 204 combobox_ = new TestCombobox(model_.get(), style);
204 test_api_.reset(new ComboboxTestApi(combobox_)); 205 test_api_.reset(new ComboboxTestApi(combobox_));
205 test_api_->InstallTestMenuRunner(&menu_show_count_); 206 test_api_->InstallTestMenuRunner(&menu_show_count_);
206 combobox_->set_id(1); 207 combobox_->set_id(1);
207 208
208 widget_ = new Widget; 209 widget_ = new Widget;
209 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 210 Widget::InitParams params =
211 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
210 params.bounds = gfx::Rect(200, 200, 200, 200); 212 params.bounds = gfx::Rect(200, 200, 200, 200);
211 widget_->Init(params); 213 widget_->Init(params);
212 View* container = new View(); 214 View* container = new View();
213 widget_->SetContentsView(container); 215 widget_->SetContentsView(container);
214 container->AddChildView(combobox_); 216 container->AddChildView(combobox_);
215 widget_->Show(); 217 widget_->Show();
216 218
217 combobox_->RequestFocus(); 219 combobox_->RequestFocus();
218 combobox_->SizeToPreferredSize(); 220 combobox_->SizeToPreferredSize();
221
222 event_generator_ =
223 base::MakeUnique<ui::test::EventGenerator>(widget_->GetNativeWindow());
224 event_generator_->set_target(ui::test::EventGenerator::Target::WINDOW);
219 } 225 }
220 226
221 protected: 227 protected:
222 void SendKeyEvent(ui::KeyboardCode key_code) { 228 void PressKey(ui::KeyboardCode key_code) {
223 SendKeyEventWithType(key_code, ui::ET_KEY_PRESSED); 229 event_generator_->PressKey(key_code, ui::EF_NONE);
224 } 230 }
225 231
226 void SendKeyEventWithType(ui::KeyboardCode key_code, ui::EventType type) { 232 void ReleaseKey(ui::KeyboardCode key_code) {
227 ui::KeyEvent event(type, key_code, ui::EF_NONE); 233 event_generator_->ReleaseKey(key_code, ui::EF_NONE);
228 FocusManager* focus_manager = widget_->GetFocusManager();
229 widget_->OnKeyEvent(&event);
230 if (!event.handled() && focus_manager)
231 focus_manager->OnKeyEvent(event);
232 } 234 }
233 235
234 View* GetFocusedView() { 236 View* GetFocusedView() {
235 return widget_->GetFocusManager()->GetFocusedView(); 237 return widget_->GetFocusManager()->GetFocusedView();
236 } 238 }
237 239
238 void PerformMousePress(const gfx::Point& point) { 240 void PerformMousePress(const gfx::Point& point) {
239 ui::MouseEvent pressed_event = ui::MouseEvent( 241 ui::MouseEvent pressed_event = ui::MouseEvent(
240 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), 242 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(),
241 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); 243 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON);
(...skipping 18 matching lines...) Expand all
260 // |combobox_| will be allocated InitCombobox() and then owned by |widget_|. 262 // |combobox_| will be allocated InitCombobox() and then owned by |widget_|.
261 TestCombobox* combobox_ = nullptr; 263 TestCombobox* combobox_ = nullptr;
262 std::unique_ptr<ComboboxTestApi> test_api_; 264 std::unique_ptr<ComboboxTestApi> test_api_;
263 265
264 // Combobox does not take ownership of the model, hence it needs to be scoped. 266 // Combobox does not take ownership of the model, hence it needs to be scoped.
265 std::unique_ptr<TestComboboxModel> model_; 267 std::unique_ptr<TestComboboxModel> model_;
266 268
267 // The current menu show count. 269 // The current menu show count.
268 int menu_show_count_ = 0; 270 int menu_show_count_ = 0;
269 271
272 std::unique_ptr<ui::test::EventGenerator> event_generator_;
273
270 private: 274 private:
271 DISALLOW_COPY_AND_ASSIGN(ComboboxTest); 275 DISALLOW_COPY_AND_ASSIGN(ComboboxTest);
272 }; 276 };
273 277
274 TEST_F(ComboboxTest, KeyTest) { 278 TEST_F(ComboboxTest, KeyTest) {
275 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 279 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
276 SendKeyEvent(ui::VKEY_END); 280 PressKey(ui::VKEY_END);
277 EXPECT_EQ(combobox_->selected_index() + 1, model_->GetItemCount()); 281 EXPECT_EQ(combobox_->selected_index() + 1, model_->GetItemCount());
278 SendKeyEvent(ui::VKEY_HOME); 282 PressKey(ui::VKEY_HOME);
279 EXPECT_EQ(combobox_->selected_index(), 0); 283 EXPECT_EQ(combobox_->selected_index(), 0);
280 SendKeyEvent(ui::VKEY_DOWN); 284 PressKey(ui::VKEY_DOWN);
281 SendKeyEvent(ui::VKEY_DOWN); 285 PressKey(ui::VKEY_DOWN);
282 EXPECT_EQ(combobox_->selected_index(), 2); 286 EXPECT_EQ(combobox_->selected_index(), 2);
283 SendKeyEvent(ui::VKEY_RIGHT); 287 PressKey(ui::VKEY_RIGHT);
284 EXPECT_EQ(combobox_->selected_index(), 2); 288 EXPECT_EQ(combobox_->selected_index(), 2);
285 SendKeyEvent(ui::VKEY_LEFT); 289 PressKey(ui::VKEY_LEFT);
286 EXPECT_EQ(combobox_->selected_index(), 2); 290 EXPECT_EQ(combobox_->selected_index(), 2);
287 SendKeyEvent(ui::VKEY_UP); 291 PressKey(ui::VKEY_UP);
288 EXPECT_EQ(combobox_->selected_index(), 1); 292 EXPECT_EQ(combobox_->selected_index(), 1);
289 SendKeyEvent(ui::VKEY_PRIOR); 293 PressKey(ui::VKEY_PRIOR);
290 EXPECT_EQ(combobox_->selected_index(), 0); 294 EXPECT_EQ(combobox_->selected_index(), 0);
291 SendKeyEvent(ui::VKEY_NEXT); 295 PressKey(ui::VKEY_NEXT);
292 EXPECT_EQ(combobox_->selected_index(), model_->GetItemCount() - 1); 296 EXPECT_EQ(combobox_->selected_index(), model_->GetItemCount() - 1);
293 } 297 }
294 298
295 // Check that if a combobox is disabled before it has a native wrapper, then the 299 // Check that if a combobox is disabled before it has a native wrapper, then the
296 // native wrapper inherits the disabled state when it gets created. 300 // native wrapper inherits the disabled state when it gets created.
297 TEST_F(ComboboxTest, DisabilityTest) { 301 TEST_F(ComboboxTest, DisabilityTest) {
298 model_.reset(new TestComboboxModel()); 302 model_.reset(new TestComboboxModel());
299 303
300 ASSERT_FALSE(combobox_); 304 ASSERT_FALSE(combobox_);
301 combobox_ = new TestCombobox(model_.get(), Combobox::STYLE_NORMAL); 305 combobox_ = new TestCombobox(model_.get(), Combobox::STYLE_NORMAL);
302 combobox_->SetEnabled(false); 306 combobox_->SetEnabled(false);
303 307
304 widget_ = new Widget; 308 widget_ = new Widget;
305 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 309 Widget::InitParams params =
310 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
306 params.bounds = gfx::Rect(100, 100, 100, 100); 311 params.bounds = gfx::Rect(100, 100, 100, 100);
307 widget_->Init(params); 312 widget_->Init(params);
308 View* container = new View(); 313 View* container = new View();
309 widget_->SetContentsView(container); 314 widget_->SetContentsView(container);
310 container->AddChildView(combobox_); 315 container->AddChildView(combobox_);
311 EXPECT_FALSE(combobox_->enabled()); 316 EXPECT_FALSE(combobox_->enabled());
312 } 317 }
313 318
314 // Verifies that we don't select a separator line in combobox when navigating 319 // Verifies that we don't select a separator line in combobox when navigating
315 // through keyboard. 320 // through keyboard.
316 TEST_F(ComboboxTest, SkipSeparatorSimple) { 321 TEST_F(ComboboxTest, SkipSeparatorSimple) {
317 std::set<int> separators; 322 std::set<int> separators;
318 separators.insert(2); 323 separators.insert(2);
319 InitCombobox(&separators, Combobox::STYLE_NORMAL); 324 InitCombobox(&separators, Combobox::STYLE_NORMAL);
320 EXPECT_EQ(0, combobox_->selected_index()); 325 EXPECT_EQ(0, combobox_->selected_index());
321 SendKeyEvent(ui::VKEY_DOWN); 326 PressKey(ui::VKEY_DOWN);
322 EXPECT_EQ(1, combobox_->selected_index()); 327 EXPECT_EQ(1, combobox_->selected_index());
323 SendKeyEvent(ui::VKEY_DOWN); 328 PressKey(ui::VKEY_DOWN);
324 EXPECT_EQ(3, combobox_->selected_index()); 329 EXPECT_EQ(3, combobox_->selected_index());
325 SendKeyEvent(ui::VKEY_UP); 330 PressKey(ui::VKEY_UP);
326 EXPECT_EQ(1, combobox_->selected_index()); 331 EXPECT_EQ(1, combobox_->selected_index());
327 SendKeyEvent(ui::VKEY_HOME); 332 PressKey(ui::VKEY_HOME);
328 EXPECT_EQ(0, combobox_->selected_index()); 333 EXPECT_EQ(0, combobox_->selected_index());
329 SendKeyEvent(ui::VKEY_PRIOR); 334 PressKey(ui::VKEY_PRIOR);
330 EXPECT_EQ(0, combobox_->selected_index()); 335 EXPECT_EQ(0, combobox_->selected_index());
331 SendKeyEvent(ui::VKEY_END); 336 PressKey(ui::VKEY_END);
332 EXPECT_EQ(9, combobox_->selected_index()); 337 EXPECT_EQ(9, combobox_->selected_index());
333 } 338 }
334 339
335 // Verifies that we never select the separator that is in the beginning of the 340 // Verifies that we never select the separator that is in the beginning of the
336 // combobox list when navigating through keyboard. 341 // combobox list when navigating through keyboard.
337 TEST_F(ComboboxTest, SkipSeparatorBeginning) { 342 TEST_F(ComboboxTest, SkipSeparatorBeginning) {
338 std::set<int> separators; 343 std::set<int> separators;
339 separators.insert(0); 344 separators.insert(0);
340 InitCombobox(&separators, Combobox::STYLE_NORMAL); 345 InitCombobox(&separators, Combobox::STYLE_NORMAL);
341 EXPECT_EQ(1, combobox_->selected_index()); 346 EXPECT_EQ(1, combobox_->selected_index());
342 SendKeyEvent(ui::VKEY_DOWN); 347 PressKey(ui::VKEY_DOWN);
343 EXPECT_EQ(2, combobox_->selected_index()); 348 EXPECT_EQ(2, combobox_->selected_index());
344 SendKeyEvent(ui::VKEY_DOWN); 349 PressKey(ui::VKEY_DOWN);
345 EXPECT_EQ(3, combobox_->selected_index()); 350 EXPECT_EQ(3, combobox_->selected_index());
346 SendKeyEvent(ui::VKEY_UP); 351 PressKey(ui::VKEY_UP);
347 EXPECT_EQ(2, combobox_->selected_index()); 352 EXPECT_EQ(2, combobox_->selected_index());
348 SendKeyEvent(ui::VKEY_HOME); 353 PressKey(ui::VKEY_HOME);
349 EXPECT_EQ(1, combobox_->selected_index()); 354 EXPECT_EQ(1, combobox_->selected_index());
350 SendKeyEvent(ui::VKEY_PRIOR); 355 PressKey(ui::VKEY_PRIOR);
351 EXPECT_EQ(1, combobox_->selected_index()); 356 EXPECT_EQ(1, combobox_->selected_index());
352 SendKeyEvent(ui::VKEY_END); 357 PressKey(ui::VKEY_END);
353 EXPECT_EQ(9, combobox_->selected_index()); 358 EXPECT_EQ(9, combobox_->selected_index());
354 } 359 }
355 360
356 // Verifies that we never select the separator that is in the end of the 361 // Verifies that we never select the separator that is in the end of the
357 // combobox list when navigating through keyboard. 362 // combobox list when navigating through keyboard.
358 TEST_F(ComboboxTest, SkipSeparatorEnd) { 363 TEST_F(ComboboxTest, SkipSeparatorEnd) {
359 std::set<int> separators; 364 std::set<int> separators;
360 separators.insert(TestComboboxModel::kItemCount - 1); 365 separators.insert(TestComboboxModel::kItemCount - 1);
361 InitCombobox(&separators, Combobox::STYLE_NORMAL); 366 InitCombobox(&separators, Combobox::STYLE_NORMAL);
362 combobox_->SetSelectedIndex(8); 367 combobox_->SetSelectedIndex(8);
363 SendKeyEvent(ui::VKEY_DOWN); 368 PressKey(ui::VKEY_DOWN);
364 EXPECT_EQ(8, combobox_->selected_index()); 369 EXPECT_EQ(8, combobox_->selected_index());
365 SendKeyEvent(ui::VKEY_UP); 370 PressKey(ui::VKEY_UP);
366 EXPECT_EQ(7, combobox_->selected_index()); 371 EXPECT_EQ(7, combobox_->selected_index());
367 SendKeyEvent(ui::VKEY_END); 372 PressKey(ui::VKEY_END);
368 EXPECT_EQ(8, combobox_->selected_index()); 373 EXPECT_EQ(8, combobox_->selected_index());
369 } 374 }
370 375
371 // Verifies that we never select any of the adjacent separators (multiple 376 // Verifies that we never select any of the adjacent separators (multiple
372 // consecutive) that appear in the beginning of the combobox list when 377 // consecutive) that appear in the beginning of the combobox list when
373 // navigating through keyboard. 378 // navigating through keyboard.
374 TEST_F(ComboboxTest, SkipMultipleSeparatorsAtBeginning) { 379 TEST_F(ComboboxTest, SkipMultipleSeparatorsAtBeginning) {
375 std::set<int> separators; 380 std::set<int> separators;
376 separators.insert(0); 381 separators.insert(0);
377 separators.insert(1); 382 separators.insert(1);
378 separators.insert(2); 383 separators.insert(2);
379 InitCombobox(&separators, Combobox::STYLE_NORMAL); 384 InitCombobox(&separators, Combobox::STYLE_NORMAL);
380 EXPECT_EQ(3, combobox_->selected_index()); 385 EXPECT_EQ(3, combobox_->selected_index());
381 SendKeyEvent(ui::VKEY_DOWN); 386 PressKey(ui::VKEY_DOWN);
382 EXPECT_EQ(4, combobox_->selected_index()); 387 EXPECT_EQ(4, combobox_->selected_index());
383 SendKeyEvent(ui::VKEY_UP); 388 PressKey(ui::VKEY_UP);
384 EXPECT_EQ(3, combobox_->selected_index()); 389 EXPECT_EQ(3, combobox_->selected_index());
385 SendKeyEvent(ui::VKEY_NEXT); 390 PressKey(ui::VKEY_NEXT);
386 EXPECT_EQ(9, combobox_->selected_index()); 391 EXPECT_EQ(9, combobox_->selected_index());
387 SendKeyEvent(ui::VKEY_HOME); 392 PressKey(ui::VKEY_HOME);
388 EXPECT_EQ(3, combobox_->selected_index()); 393 EXPECT_EQ(3, combobox_->selected_index());
389 SendKeyEvent(ui::VKEY_END); 394 PressKey(ui::VKEY_END);
390 EXPECT_EQ(9, combobox_->selected_index()); 395 EXPECT_EQ(9, combobox_->selected_index());
391 SendKeyEvent(ui::VKEY_PRIOR); 396 PressKey(ui::VKEY_PRIOR);
392 EXPECT_EQ(3, combobox_->selected_index()); 397 EXPECT_EQ(3, combobox_->selected_index());
393 } 398 }
394 399
395 // Verifies that we never select any of the adjacent separators (multiple 400 // Verifies that we never select any of the adjacent separators (multiple
396 // consecutive) that appear in the middle of the combobox list when navigating 401 // consecutive) that appear in the middle of the combobox list when navigating
397 // through keyboard. 402 // through keyboard.
398 TEST_F(ComboboxTest, SkipMultipleAdjacentSeparatorsAtMiddle) { 403 TEST_F(ComboboxTest, SkipMultipleAdjacentSeparatorsAtMiddle) {
399 std::set<int> separators; 404 std::set<int> separators;
400 separators.insert(4); 405 separators.insert(4);
401 separators.insert(5); 406 separators.insert(5);
402 separators.insert(6); 407 separators.insert(6);
403 InitCombobox(&separators, Combobox::STYLE_NORMAL); 408 InitCombobox(&separators, Combobox::STYLE_NORMAL);
404 combobox_->SetSelectedIndex(3); 409 combobox_->SetSelectedIndex(3);
405 SendKeyEvent(ui::VKEY_DOWN); 410 PressKey(ui::VKEY_DOWN);
406 EXPECT_EQ(7, combobox_->selected_index()); 411 EXPECT_EQ(7, combobox_->selected_index());
407 SendKeyEvent(ui::VKEY_UP); 412 PressKey(ui::VKEY_UP);
408 EXPECT_EQ(3, combobox_->selected_index()); 413 EXPECT_EQ(3, combobox_->selected_index());
409 } 414 }
410 415
411 // Verifies that we never select any of the adjacent separators (multiple 416 // Verifies that we never select any of the adjacent separators (multiple
412 // consecutive) that appear in the end of the combobox list when navigating 417 // consecutive) that appear in the end of the combobox list when navigating
413 // through keyboard. 418 // through keyboard.
414 TEST_F(ComboboxTest, SkipMultipleSeparatorsAtEnd) { 419 TEST_F(ComboboxTest, SkipMultipleSeparatorsAtEnd) {
415 std::set<int> separators; 420 std::set<int> separators;
416 separators.insert(7); 421 separators.insert(7);
417 separators.insert(8); 422 separators.insert(8);
418 separators.insert(9); 423 separators.insert(9);
419 InitCombobox(&separators, Combobox::STYLE_NORMAL); 424 InitCombobox(&separators, Combobox::STYLE_NORMAL);
420 combobox_->SetSelectedIndex(6); 425 combobox_->SetSelectedIndex(6);
421 SendKeyEvent(ui::VKEY_DOWN); 426 PressKey(ui::VKEY_DOWN);
422 EXPECT_EQ(6, combobox_->selected_index()); 427 EXPECT_EQ(6, combobox_->selected_index());
423 SendKeyEvent(ui::VKEY_UP); 428 PressKey(ui::VKEY_UP);
424 EXPECT_EQ(5, combobox_->selected_index()); 429 EXPECT_EQ(5, combobox_->selected_index());
425 SendKeyEvent(ui::VKEY_HOME); 430 PressKey(ui::VKEY_HOME);
426 EXPECT_EQ(0, combobox_->selected_index()); 431 EXPECT_EQ(0, combobox_->selected_index());
427 SendKeyEvent(ui::VKEY_NEXT); 432 PressKey(ui::VKEY_NEXT);
428 EXPECT_EQ(6, combobox_->selected_index()); 433 EXPECT_EQ(6, combobox_->selected_index());
429 SendKeyEvent(ui::VKEY_PRIOR); 434 PressKey(ui::VKEY_PRIOR);
430 EXPECT_EQ(0, combobox_->selected_index()); 435 EXPECT_EQ(0, combobox_->selected_index());
431 SendKeyEvent(ui::VKEY_END); 436 PressKey(ui::VKEY_END);
432 EXPECT_EQ(6, combobox_->selected_index()); 437 EXPECT_EQ(6, combobox_->selected_index());
433 } 438 }
434 439
435 TEST_F(ComboboxTest, GetTextForRowTest) { 440 TEST_F(ComboboxTest, GetTextForRowTest) {
436 std::set<int> separators; 441 std::set<int> separators;
437 separators.insert(0); 442 separators.insert(0);
438 separators.insert(1); 443 separators.insert(1);
439 separators.insert(9); 444 separators.insert(9);
440 InitCombobox(&separators, Combobox::STYLE_NORMAL); 445 InitCombobox(&separators, Combobox::STYLE_NORMAL);
441 for (int i = 0; i < combobox_->GetRowCount(); ++i) { 446 for (int i = 0; i < combobox_->GetRowCount(); ++i) {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 EXPECT_EQ(0, menu_show_count_); 538 EXPECT_EQ(0, menu_show_count_);
534 } 539 }
535 540
536 TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) { 541 TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) {
537 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 542 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
538 543
539 TestComboboxListener listener; 544 TestComboboxListener listener;
540 combobox_->set_listener(&listener); 545 combobox_->set_listener(&listener);
541 546
542 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shown. 547 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shown.
543 SendKeyEvent(ui::VKEY_RETURN); 548 PressKey(ui::VKEY_RETURN);
544 EXPECT_EQ(1, menu_show_count_); 549 EXPECT_EQ(1, menu_show_count_);
545 EXPECT_FALSE(listener.on_perform_action_called()); 550 EXPECT_FALSE(listener.on_perform_action_called());
546 } 551 }
547 552
548 TEST_F(ComboboxTest, NotifyOnClickWithReturnKeyActionStyle) { 553 TEST_F(ComboboxTest, NotifyOnClickWithReturnKeyActionStyle) {
549 InitCombobox(nullptr, Combobox::STYLE_ACTION); 554 InitCombobox(nullptr, Combobox::STYLE_ACTION);
550 555
551 TestComboboxListener listener; 556 TestComboboxListener listener;
552 combobox_->set_listener(&listener); 557 combobox_->set_listener(&listener);
553 558
554 // With STYLE_ACTION, the click event is notified and the menu is not shown. 559 // With STYLE_ACTION, the click event is notified and the menu is not shown.
555 SendKeyEvent(ui::VKEY_RETURN); 560 PressKey(ui::VKEY_RETURN);
556 EXPECT_EQ(0, menu_show_count_); 561 EXPECT_EQ(0, menu_show_count_);
557 EXPECT_TRUE(listener.on_perform_action_called()); 562 EXPECT_TRUE(listener.on_perform_action_called());
558 EXPECT_EQ(0, listener.perform_action_index()); 563 EXPECT_EQ(0, listener.perform_action_index());
559 } 564 }
560 565
561 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) { 566 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) {
562 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 567 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
563 568
564 TestComboboxListener listener; 569 TestComboboxListener listener;
565 combobox_->set_listener(&listener); 570 combobox_->set_listener(&listener);
566 571
567 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shwon. 572 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shwon.
568 SendKeyEvent(ui::VKEY_SPACE); 573 PressKey(ui::VKEY_SPACE);
569 EXPECT_EQ(1, menu_show_count_); 574 EXPECT_EQ(1, menu_show_count_);
570 EXPECT_FALSE(listener.on_perform_action_called()); 575 EXPECT_FALSE(listener.on_perform_action_called());
571 576
572 SendKeyEventWithType(ui::VKEY_SPACE, ui::ET_KEY_RELEASED); 577 ReleaseKey(ui::VKEY_SPACE);
573 EXPECT_EQ(1, menu_show_count_); 578 EXPECT_EQ(1, menu_show_count_);
574 EXPECT_FALSE(listener.on_perform_action_called()); 579 EXPECT_FALSE(listener.on_perform_action_called());
575 } 580 }
576 581
577 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKeyActionStyle) { 582 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKeyActionStyle) {
578 InitCombobox(nullptr, Combobox::STYLE_ACTION); 583 InitCombobox(nullptr, Combobox::STYLE_ACTION);
579 584
580 TestComboboxListener listener; 585 TestComboboxListener listener;
581 combobox_->set_listener(&listener); 586 combobox_->set_listener(&listener);
582 587
583 // With STYLE_ACTION, the click event is notified after releasing and the menu 588 // With STYLE_ACTION, the click event is notified after releasing and the menu
584 // is not shown. 589 // is not shown.
585 SendKeyEvent(ui::VKEY_SPACE); 590 PressKey(ui::VKEY_SPACE);
586 EXPECT_EQ(0, menu_show_count_); 591 EXPECT_EQ(0, menu_show_count_);
587 EXPECT_FALSE(listener.on_perform_action_called()); 592 EXPECT_FALSE(listener.on_perform_action_called());
588 593
589 SendKeyEventWithType(ui::VKEY_SPACE, ui::ET_KEY_RELEASED); 594 ReleaseKey(ui::VKEY_SPACE);
590 EXPECT_EQ(0, menu_show_count_); 595 EXPECT_EQ(0, menu_show_count_);
591 EXPECT_TRUE(listener.on_perform_action_called()); 596 EXPECT_TRUE(listener.on_perform_action_called());
592 EXPECT_EQ(0, listener.perform_action_index()); 597 EXPECT_EQ(0, listener.perform_action_index());
593 } 598 }
594 599
595 TEST_F(ComboboxTest, NotifyOnClickWithMouse) { 600 TEST_F(ComboboxTest, NotifyOnClickWithMouse) {
596 InitCombobox(nullptr, Combobox::STYLE_ACTION); 601 InitCombobox(nullptr, Combobox::STYLE_ACTION);
597 602
598 TestComboboxListener listener; 603 TestComboboxListener listener;
599 combobox_->set_listener(&listener); 604 combobox_->set_listener(&listener);
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(0)); 829 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(0));
825 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(1)); 830 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(1));
826 831
827 EXPECT_EQ(ASCIIToUTF16("PEANUT BUTTER"), menu_model->GetLabelAt(0)); 832 EXPECT_EQ(ASCIIToUTF16("PEANUT BUTTER"), menu_model->GetLabelAt(0));
828 EXPECT_EQ(ASCIIToUTF16("JELLY"), menu_model->GetLabelAt(1)); 833 EXPECT_EQ(ASCIIToUTF16("JELLY"), menu_model->GetLabelAt(1));
829 EXPECT_FALSE(menu_model->IsVisibleAt(0)); 834 EXPECT_FALSE(menu_model->IsVisibleAt(0));
830 EXPECT_TRUE(menu_model->IsVisibleAt(1)); 835 EXPECT_TRUE(menu_model->IsVisibleAt(1));
831 } 836 }
832 837
833 } // namespace views 838 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/cocoa/bridged_content_view.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698