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

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

Issue 2627013002: MacViews: Fix combobox keyboard shortcuts. (Closed)
Patch Set: Add a comment. 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/controls/combobox/combobox.cc ('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/events/test/event_generator.h"
22 #include "ui/views/controls/combobox/combobox_listener.h" 22 #include "ui/views/controls/combobox/combobox_listener.h"
23 #include "ui/views/style/platform_style.h"
23 #include "ui/views/test/combobox_test_api.h" 24 #include "ui/views/test/combobox_test_api.h"
24 #include "ui/views/test/views_test_base.h" 25 #include "ui/views/test/views_test_base.h"
25 #include "ui/views/widget/widget.h" 26 #include "ui/views/widget/widget.h"
26 27
27 using base::ASCIIToUTF16; 28 using base::ASCIIToUTF16;
28 29
29 namespace views { 30 namespace views {
30 31
31 using test::ComboboxTestApi; 32 using test::ComboboxTestApi;
32 33
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 219
219 combobox_->RequestFocus(); 220 combobox_->RequestFocus();
220 combobox_->SizeToPreferredSize(); 221 combobox_->SizeToPreferredSize();
221 222
222 event_generator_ = 223 event_generator_ =
223 base::MakeUnique<ui::test::EventGenerator>(widget_->GetNativeWindow()); 224 base::MakeUnique<ui::test::EventGenerator>(widget_->GetNativeWindow());
224 event_generator_->set_target(ui::test::EventGenerator::Target::WINDOW); 225 event_generator_->set_target(ui::test::EventGenerator::Target::WINDOW);
225 } 226 }
226 227
227 protected: 228 protected:
228 void PressKey(ui::KeyboardCode key_code) { 229 void PressKey(ui::KeyboardCode key_code, ui::EventFlags flags = ui::EF_NONE) {
229 event_generator_->PressKey(key_code, ui::EF_NONE); 230 event_generator_->PressKey(key_code, flags);
230 } 231 }
231 232
232 void ReleaseKey(ui::KeyboardCode key_code) { 233 void ReleaseKey(ui::KeyboardCode key_code,
233 event_generator_->ReleaseKey(key_code, ui::EF_NONE); 234 ui::EventFlags flags = ui::EF_NONE) {
235 event_generator_->ReleaseKey(key_code, flags);
234 } 236 }
235 237
236 View* GetFocusedView() { 238 View* GetFocusedView() {
237 return widget_->GetFocusManager()->GetFocusedView(); 239 return widget_->GetFocusManager()->GetFocusedView();
238 } 240 }
239 241
240 void PerformMousePress(const gfx::Point& point) { 242 void PerformMousePress(const gfx::Point& point) {
241 ui::MouseEvent pressed_event = ui::MouseEvent( 243 ui::MouseEvent pressed_event = ui::MouseEvent(
242 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(), 244 ui::ET_MOUSE_PRESSED, point, point, ui::EventTimeForNow(),
243 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); 245 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON);
(...skipping 24 matching lines...) Expand all
268 270
269 // The current menu show count. 271 // The current menu show count.
270 int menu_show_count_ = 0; 272 int menu_show_count_ = 0;
271 273
272 std::unique_ptr<ui::test::EventGenerator> event_generator_; 274 std::unique_ptr<ui::test::EventGenerator> event_generator_;
273 275
274 private: 276 private:
275 DISALLOW_COPY_AND_ASSIGN(ComboboxTest); 277 DISALLOW_COPY_AND_ASSIGN(ComboboxTest);
276 }; 278 };
277 279
278 TEST_F(ComboboxTest, KeyTest) { 280 #if defined(OS_MACOSX)
281 // Tests whether the various Mac specific keyboard shortcuts invoke the dropdown
282 // menu or not.
283 TEST_F(ComboboxTest, KeyTestMac) {
279 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 284 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
280 PressKey(ui::VKEY_END); 285 PressKey(ui::VKEY_END);
281 EXPECT_EQ(combobox_->selected_index() + 1, model_->GetItemCount()); 286 EXPECT_EQ(0, combobox_->selected_index());
287 EXPECT_EQ(1, menu_show_count_);
288
282 PressKey(ui::VKEY_HOME); 289 PressKey(ui::VKEY_HOME);
283 EXPECT_EQ(combobox_->selected_index(), 0); 290 EXPECT_EQ(0, combobox_->selected_index());
291 EXPECT_EQ(2, menu_show_count_);
292
293 PressKey(ui::VKEY_UP, ui::EF_COMMAND_DOWN);
294 EXPECT_EQ(0, combobox_->selected_index());
295 EXPECT_EQ(3, menu_show_count_);
296
297 PressKey(ui::VKEY_DOWN, ui::EF_COMMAND_DOWN);
298 EXPECT_EQ(0, combobox_->selected_index());
299 EXPECT_EQ(4, menu_show_count_);
300
284 PressKey(ui::VKEY_DOWN); 301 PressKey(ui::VKEY_DOWN);
285 PressKey(ui::VKEY_DOWN); 302 EXPECT_EQ(0, combobox_->selected_index());
286 EXPECT_EQ(combobox_->selected_index(), 2); 303 EXPECT_EQ(5, menu_show_count_);
304
287 PressKey(ui::VKEY_RIGHT); 305 PressKey(ui::VKEY_RIGHT);
288 EXPECT_EQ(combobox_->selected_index(), 2); 306 EXPECT_EQ(0, combobox_->selected_index());
307 EXPECT_EQ(5, menu_show_count_);
308
289 PressKey(ui::VKEY_LEFT); 309 PressKey(ui::VKEY_LEFT);
290 EXPECT_EQ(combobox_->selected_index(), 2); 310 EXPECT_EQ(0, combobox_->selected_index());
311 EXPECT_EQ(5, menu_show_count_);
312
291 PressKey(ui::VKEY_UP); 313 PressKey(ui::VKEY_UP);
292 EXPECT_EQ(combobox_->selected_index(), 1); 314 EXPECT_EQ(0, combobox_->selected_index());
315 EXPECT_EQ(6, menu_show_count_);
316
293 PressKey(ui::VKEY_PRIOR); 317 PressKey(ui::VKEY_PRIOR);
294 EXPECT_EQ(combobox_->selected_index(), 0); 318 EXPECT_EQ(0, combobox_->selected_index());
319 EXPECT_EQ(6, menu_show_count_);
320
295 PressKey(ui::VKEY_NEXT); 321 PressKey(ui::VKEY_NEXT);
296 EXPECT_EQ(combobox_->selected_index(), model_->GetItemCount() - 1); 322 EXPECT_EQ(0, combobox_->selected_index());
323 EXPECT_EQ(6, menu_show_count_);
297 } 324 }
325 #endif
298 326
299 // Check that if a combobox is disabled before it has a native wrapper, then the 327 // Check that if a combobox is disabled before it has a native wrapper, then the
300 // native wrapper inherits the disabled state when it gets created. 328 // native wrapper inherits the disabled state when it gets created.
301 TEST_F(ComboboxTest, DisabilityTest) { 329 TEST_F(ComboboxTest, DisabilityTest) {
302 model_.reset(new TestComboboxModel()); 330 model_.reset(new TestComboboxModel());
303 331
304 ASSERT_FALSE(combobox_); 332 ASSERT_FALSE(combobox_);
305 combobox_ = new TestCombobox(model_.get(), Combobox::STYLE_NORMAL); 333 combobox_ = new TestCombobox(model_.get(), Combobox::STYLE_NORMAL);
306 combobox_->SetEnabled(false); 334 combobox_->SetEnabled(false);
307 335
308 widget_ = new Widget; 336 widget_ = new Widget;
309 Widget::InitParams params = 337 Widget::InitParams params =
310 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); 338 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
311 params.bounds = gfx::Rect(100, 100, 100, 100); 339 params.bounds = gfx::Rect(100, 100, 100, 100);
312 widget_->Init(params); 340 widget_->Init(params);
313 View* container = new View(); 341 View* container = new View();
314 widget_->SetContentsView(container); 342 widget_->SetContentsView(container);
315 container->AddChildView(combobox_); 343 container->AddChildView(combobox_);
316 EXPECT_FALSE(combobox_->enabled()); 344 EXPECT_FALSE(combobox_->enabled());
317 } 345 }
318 346
347 // On Mac, key events can't change the currently selected index directly for a
348 // combobox.
349 #if !defined(OS_MACOSX)
350
351 // Tests the behavior of various keyboard shortcuts on the currently selected
352 // index.
353 TEST_F(ComboboxTest, KeyTest) {
354 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
355 PressKey(ui::VKEY_END);
356 EXPECT_EQ(model_->GetItemCount(), combobox_->selected_index() + 1);
357 PressKey(ui::VKEY_HOME);
358 EXPECT_EQ(0, combobox_->selected_index());
359 PressKey(ui::VKEY_DOWN);
360 PressKey(ui::VKEY_DOWN);
361 EXPECT_EQ(2, combobox_->selected_index());
362 PressKey(ui::VKEY_RIGHT);
363 EXPECT_EQ(2, combobox_->selected_index());
364 PressKey(ui::VKEY_LEFT);
365 EXPECT_EQ(2, combobox_->selected_index());
366 PressKey(ui::VKEY_UP);
367 EXPECT_EQ(1, combobox_->selected_index());
368 PressKey(ui::VKEY_PRIOR);
369 EXPECT_EQ(0, combobox_->selected_index());
370 PressKey(ui::VKEY_NEXT);
371 EXPECT_EQ(model_->GetItemCount() - 1, combobox_->selected_index());
372 }
373
319 // Verifies that we don't select a separator line in combobox when navigating 374 // Verifies that we don't select a separator line in combobox when navigating
320 // through keyboard. 375 // through keyboard.
321 TEST_F(ComboboxTest, SkipSeparatorSimple) { 376 TEST_F(ComboboxTest, SkipSeparatorSimple) {
322 std::set<int> separators; 377 std::set<int> separators;
323 separators.insert(2); 378 separators.insert(2);
324 InitCombobox(&separators, Combobox::STYLE_NORMAL); 379 InitCombobox(&separators, Combobox::STYLE_NORMAL);
325 EXPECT_EQ(0, combobox_->selected_index()); 380 EXPECT_EQ(0, combobox_->selected_index());
326 PressKey(ui::VKEY_DOWN); 381 PressKey(ui::VKEY_DOWN);
327 EXPECT_EQ(1, combobox_->selected_index()); 382 EXPECT_EQ(1, combobox_->selected_index());
328 PressKey(ui::VKEY_DOWN); 383 PressKey(ui::VKEY_DOWN);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 EXPECT_EQ(5, combobox_->selected_index()); 484 EXPECT_EQ(5, combobox_->selected_index());
430 PressKey(ui::VKEY_HOME); 485 PressKey(ui::VKEY_HOME);
431 EXPECT_EQ(0, combobox_->selected_index()); 486 EXPECT_EQ(0, combobox_->selected_index());
432 PressKey(ui::VKEY_NEXT); 487 PressKey(ui::VKEY_NEXT);
433 EXPECT_EQ(6, combobox_->selected_index()); 488 EXPECT_EQ(6, combobox_->selected_index());
434 PressKey(ui::VKEY_PRIOR); 489 PressKey(ui::VKEY_PRIOR);
435 EXPECT_EQ(0, combobox_->selected_index()); 490 EXPECT_EQ(0, combobox_->selected_index());
436 PressKey(ui::VKEY_END); 491 PressKey(ui::VKEY_END);
437 EXPECT_EQ(6, combobox_->selected_index()); 492 EXPECT_EQ(6, combobox_->selected_index());
438 } 493 }
494 #endif // !OS_MACOSX
439 495
440 TEST_F(ComboboxTest, GetTextForRowTest) { 496 TEST_F(ComboboxTest, GetTextForRowTest) {
441 std::set<int> separators; 497 std::set<int> separators;
442 separators.insert(0); 498 separators.insert(0);
443 separators.insert(1); 499 separators.insert(1);
444 separators.insert(9); 500 separators.insert(9);
445 InitCombobox(&separators, Combobox::STYLE_NORMAL); 501 InitCombobox(&separators, Combobox::STYLE_NORMAL);
446 for (int i = 0; i < combobox_->GetRowCount(); ++i) { 502 for (int i = 0; i < combobox_->GetRowCount(); ++i) {
447 if (separators.count(i) != 0) { 503 if (separators.count(i) != 0) {
448 EXPECT_TRUE(combobox_->GetTextForRow(i).empty()) << i; 504 EXPECT_TRUE(combobox_->GetTextForRow(i).empty()) << i;
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 } 595 }
540 596
541 TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) { 597 TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) {
542 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 598 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
543 599
544 TestComboboxListener listener; 600 TestComboboxListener listener;
545 combobox_->set_listener(&listener); 601 combobox_->set_listener(&listener);
546 602
547 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shown. 603 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shown.
548 PressKey(ui::VKEY_RETURN); 604 PressKey(ui::VKEY_RETURN);
549 EXPECT_EQ(1, menu_show_count_); 605 EXPECT_EQ(PlatformStyle::kReturnClicksFocusedControl ? 1 : 0,
606 menu_show_count_);
550 EXPECT_FALSE(listener.on_perform_action_called()); 607 EXPECT_FALSE(listener.on_perform_action_called());
551 } 608 }
552 609
553 TEST_F(ComboboxTest, NotifyOnClickWithReturnKeyActionStyle) { 610 TEST_F(ComboboxTest, NotifyOnClickWithReturnKeyActionStyle) {
554 InitCombobox(nullptr, Combobox::STYLE_ACTION); 611 InitCombobox(nullptr, Combobox::STYLE_ACTION);
555 612
556 TestComboboxListener listener; 613 TestComboboxListener listener;
557 combobox_->set_listener(&listener); 614 combobox_->set_listener(&listener);
558 615
559 // With STYLE_ACTION, the click event is notified and the menu is not shown. 616 // With STYLE_ACTION, the click event is notified and the menu is not shown.
560 PressKey(ui::VKEY_RETURN); 617 PressKey(ui::VKEY_RETURN);
561 EXPECT_EQ(0, menu_show_count_); 618 EXPECT_EQ(0, menu_show_count_);
562 EXPECT_TRUE(listener.on_perform_action_called()); 619
563 EXPECT_EQ(0, listener.perform_action_index()); 620 if (PlatformStyle::kReturnClicksFocusedControl) {
621 EXPECT_TRUE(listener.on_perform_action_called());
622 EXPECT_EQ(0, listener.perform_action_index());
623 } else {
624 EXPECT_FALSE(listener.on_perform_action_called());
625 EXPECT_EQ(-1, listener.perform_action_index());
626 }
564 } 627 }
565 628
566 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) { 629 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) {
567 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 630 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
568 631
569 TestComboboxListener listener; 632 TestComboboxListener listener;
570 combobox_->set_listener(&listener); 633 combobox_->set_listener(&listener);
571 634
572 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shwon. 635 // With STYLE_NORMAL, the click event is ignored. Instead the menu is shwon.
573 PressKey(ui::VKEY_SPACE); 636 PressKey(ui::VKEY_SPACE);
574 EXPECT_EQ(1, menu_show_count_); 637 EXPECT_EQ(1, menu_show_count_);
575 EXPECT_FALSE(listener.on_perform_action_called()); 638 EXPECT_FALSE(listener.on_perform_action_called());
576 639
577 ReleaseKey(ui::VKEY_SPACE); 640 ReleaseKey(ui::VKEY_SPACE);
578 EXPECT_EQ(1, menu_show_count_); 641 EXPECT_EQ(1, menu_show_count_);
579 EXPECT_FALSE(listener.on_perform_action_called()); 642 EXPECT_FALSE(listener.on_perform_action_called());
580 } 643 }
581 644
582 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKeyActionStyle) { 645 TEST_F(ComboboxTest, NotifyOnClickWithSpaceKeyActionStyle) {
583 InitCombobox(nullptr, Combobox::STYLE_ACTION); 646 InitCombobox(nullptr, Combobox::STYLE_ACTION);
584 647
585 TestComboboxListener listener; 648 TestComboboxListener listener;
586 combobox_->set_listener(&listener); 649 combobox_->set_listener(&listener);
587 650
588 // With STYLE_ACTION, the click event is notified after releasing and the menu 651 // With STYLE_ACTION, the click event is notified after releasing and the menu
589 // is not shown. 652 // is not shown. On Mac, the menu should be shown.
590 PressKey(ui::VKEY_SPACE); 653 PressKey(ui::VKEY_SPACE);
654 #if defined(OS_MACOSX)
655 EXPECT_EQ(1, menu_show_count_);
656 #else
591 EXPECT_EQ(0, menu_show_count_); 657 EXPECT_EQ(0, menu_show_count_);
658 #endif
592 EXPECT_FALSE(listener.on_perform_action_called()); 659 EXPECT_FALSE(listener.on_perform_action_called());
660 EXPECT_EQ(-1, listener.perform_action_index());
593 661
594 ReleaseKey(ui::VKEY_SPACE); 662 ReleaseKey(ui::VKEY_SPACE);
663 #if defined(OS_MACOSX)
664 EXPECT_EQ(1, menu_show_count_);
665 EXPECT_FALSE(listener.on_perform_action_called());
666 EXPECT_EQ(-1, listener.perform_action_index());
667 #else
595 EXPECT_EQ(0, menu_show_count_); 668 EXPECT_EQ(0, menu_show_count_);
596 EXPECT_TRUE(listener.on_perform_action_called()); 669 EXPECT_TRUE(listener.on_perform_action_called());
597 EXPECT_EQ(0, listener.perform_action_index()); 670 EXPECT_EQ(0, listener.perform_action_index());
671 #endif
598 } 672 }
599 673
600 TEST_F(ComboboxTest, NotifyOnClickWithMouse) { 674 TEST_F(ComboboxTest, NotifyOnClickWithMouse) {
601 InitCombobox(nullptr, Combobox::STYLE_ACTION); 675 InitCombobox(nullptr, Combobox::STYLE_ACTION);
602 676
603 TestComboboxListener listener; 677 TestComboboxListener listener;
604 combobox_->set_listener(&listener); 678 combobox_->set_listener(&listener);
605 679
606 combobox_->Layout(); 680 combobox_->Layout();
607 681
(...skipping 23 matching lines...) Expand all
631 PerformMouseRelease(left_point); 705 PerformMouseRelease(left_point);
632 706
633 EXPECT_EQ(1, menu_show_count_); // Unchanged. 707 EXPECT_EQ(1, menu_show_count_); // Unchanged.
634 EXPECT_EQ(0, listener.perform_action_index()); 708 EXPECT_EQ(0, listener.perform_action_index());
635 } 709 }
636 710
637 TEST_F(ComboboxTest, ConsumingPressKeyEvents) { 711 TEST_F(ComboboxTest, ConsumingPressKeyEvents) {
638 InitCombobox(nullptr, Combobox::STYLE_NORMAL); 712 InitCombobox(nullptr, Combobox::STYLE_NORMAL);
639 713
640 EXPECT_TRUE(combobox_->OnKeyPressed( 714 EXPECT_TRUE(combobox_->OnKeyPressed(
641 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE))); 715 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_SPACE, ui::EF_NONE)));
642 EXPECT_EQ(1, menu_show_count_); 716 EXPECT_EQ(1, menu_show_count_);
643 EXPECT_TRUE(combobox_->OnKeyPressed( 717
644 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_SPACE, ui::EF_NONE))); 718 ui::KeyEvent return_press(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE);
645 EXPECT_EQ(2, menu_show_count_); 719 if (PlatformStyle::kReturnClicksFocusedControl) {
720 EXPECT_TRUE(combobox_->OnKeyPressed(return_press));
721 EXPECT_EQ(2, menu_show_count_);
722 } else {
723 EXPECT_FALSE(combobox_->OnKeyPressed(return_press));
724 EXPECT_EQ(1, menu_show_count_);
725 }
646 } 726 }
647 727
648 TEST_F(ComboboxTest, ConsumingKeyPressEventsActionStyle) { 728 TEST_F(ComboboxTest, ConsumingKeyPressEventsActionStyle) {
649 // When the combobox's style is STYLE_ACTION, pressing events of a space key 729 // When the combobox's style is STYLE_ACTION, pressing events of a space key
650 // or an enter key will be consumed and the menu is not shown. 730 // or an enter key will be consumed and the menu is not shown. However, on
731 // Mac, space will show the menu.
651 InitCombobox(nullptr, Combobox::STYLE_ACTION); 732 InitCombobox(nullptr, Combobox::STYLE_ACTION);
652 733
653 EXPECT_TRUE(combobox_->OnKeyPressed( 734 EXPECT_EQ(PlatformStyle::kReturnClicksFocusedControl,
654 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE))); 735 combobox_->OnKeyPressed(ui::KeyEvent(
736 ui::ET_KEY_PRESSED, ui::VKEY_RETURN, ui::EF_NONE)));
655 EXPECT_EQ(0, menu_show_count_); 737 EXPECT_EQ(0, menu_show_count_);
738
656 EXPECT_TRUE(combobox_->OnKeyPressed( 739 EXPECT_TRUE(combobox_->OnKeyPressed(
657 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_SPACE, ui::EF_NONE))); 740 ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_SPACE, ui::EF_NONE)));
741 #if defined(OS_MACOSX)
742 EXPECT_EQ(1, menu_show_count_);
743 #else
658 EXPECT_EQ(0, menu_show_count_); 744 EXPECT_EQ(0, menu_show_count_);
745 #endif
659 } 746 }
660 747
661 TEST_F(ComboboxTest, ContentWidth) { 748 TEST_F(ComboboxTest, ContentWidth) {
662 std::vector<std::string> values; 749 std::vector<std::string> values;
663 VectorComboboxModel model(&values); 750 VectorComboboxModel model(&values);
664 TestCombobox combobox(&model, Combobox::STYLE_NORMAL); 751 TestCombobox combobox(&model, Combobox::STYLE_NORMAL);
665 TestCombobox action_combobox(&model, Combobox::STYLE_ACTION); 752 TestCombobox action_combobox(&model, Combobox::STYLE_ACTION);
666 ComboboxTestApi test_api(&combobox); 753 ComboboxTestApi test_api(&combobox);
667 ComboboxTestApi action_test_api(&action_combobox); 754 ComboboxTestApi action_test_api(&action_combobox);
668 755
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(0)); 916 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(0));
830 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(1)); 917 EXPECT_EQ(ui::MenuModel::TYPE_COMMAND, menu_model->GetTypeAt(1));
831 918
832 EXPECT_EQ(ASCIIToUTF16("PEANUT BUTTER"), menu_model->GetLabelAt(0)); 919 EXPECT_EQ(ASCIIToUTF16("PEANUT BUTTER"), menu_model->GetLabelAt(0));
833 EXPECT_EQ(ASCIIToUTF16("JELLY"), menu_model->GetLabelAt(1)); 920 EXPECT_EQ(ASCIIToUTF16("JELLY"), menu_model->GetLabelAt(1));
834 EXPECT_FALSE(menu_model->IsVisibleAt(0)); 921 EXPECT_FALSE(menu_model->IsVisibleAt(0));
835 EXPECT_TRUE(menu_model->IsVisibleAt(1)); 922 EXPECT_TRUE(menu_model->IsVisibleAt(1));
836 } 923 }
837 924
838 } // namespace views 925 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/combobox/combobox.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698