OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
6 | 6 |
7 #include "app/combobox_model.h" | 7 #include "app/combobox_model.h" |
8 #include "base/keyboard_codes.h" | 8 #include "base/keyboard_codes.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 1467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1478 } | 1478 } |
1479 | 1479 |
1480 private: | 1480 private: |
1481 bool accelerator_pressed_; | 1481 bool accelerator_pressed_; |
1482 std::vector<base::KeyboardCode> keys_pressed_; | 1482 std::vector<base::KeyboardCode> keys_pressed_; |
1483 std::vector<base::KeyboardCode> keys_released_; | 1483 std::vector<base::KeyboardCode> keys_released_; |
1484 | 1484 |
1485 DISALLOW_COPY_AND_ASSIGN(MessageTrackingView); | 1485 DISALLOW_COPY_AND_ASSIGN(MessageTrackingView); |
1486 }; | 1486 }; |
1487 | 1487 |
| 1488 #if defined(OS_WIN) |
| 1489 // This test is now Windows only. Linux Views port does not handle accelerator |
| 1490 // keys in AcceleratorHandler anymore. The logic has been moved into |
| 1491 // WidgetGtk::OnKeyEvent(). |
1488 // Tests that the keyup messages are eaten for accelerators. | 1492 // Tests that the keyup messages are eaten for accelerators. |
1489 TEST_F(FocusManagerTest, IgnoreKeyupForAccelerators) { | 1493 TEST_F(FocusManagerTest, IgnoreKeyupForAccelerators) { |
1490 FocusManager* focus_manager = GetFocusManager(); | 1494 FocusManager* focus_manager = GetFocusManager(); |
1491 MessageTrackingView* mtv = new MessageTrackingView(); | 1495 MessageTrackingView* mtv = new MessageTrackingView(); |
1492 mtv->AddAccelerator(Accelerator(base::VKEY_0, false, false, false)); | 1496 mtv->AddAccelerator(Accelerator(base::VKEY_0, false, false, false)); |
1493 mtv->AddAccelerator(Accelerator(base::VKEY_1, false, false, false)); | 1497 mtv->AddAccelerator(Accelerator(base::VKEY_1, false, false, false)); |
1494 content_view_->AddChildView(mtv); | 1498 content_view_->AddChildView(mtv); |
1495 focus_manager->SetFocusedView(mtv); | 1499 focus_manager->SetFocusedView(mtv); |
1496 | 1500 |
1497 // First send a non-accelerator key sequence. | 1501 // First send a non-accelerator key sequence. |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1546 // Same thing with repeat and more than one key at once. | 1550 // Same thing with repeat and more than one key at once. |
1547 PostKeyDown(base::VKEY_0); | 1551 PostKeyDown(base::VKEY_0); |
1548 PostKeyDown(base::VKEY_1); | 1552 PostKeyDown(base::VKEY_1); |
1549 PostKeyDown(base::VKEY_1); | 1553 PostKeyDown(base::VKEY_1); |
1550 PostKeyDown(base::VKEY_0); | 1554 PostKeyDown(base::VKEY_0); |
1551 PostKeyDown(base::VKEY_0); | 1555 PostKeyDown(base::VKEY_0); |
1552 PostKeyUp(base::VKEY_1); | 1556 PostKeyUp(base::VKEY_1); |
1553 PostKeyUp(base::VKEY_0); | 1557 PostKeyUp(base::VKEY_0); |
1554 MessageLoopForUI::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); | 1558 MessageLoopForUI::current()->PostTask(FROM_HERE, new MessageLoop::QuitTask()); |
1555 MessageLoopForUI::current()->Run(&accelerator_handler); | 1559 MessageLoopForUI::current()->Run(&accelerator_handler); |
1556 #if defined(OS_WIN) | |
1557 // Linux eats only last accelerator's release event. | |
1558 // See http://crbug.com/23383 for details. | |
1559 EXPECT_TRUE(mtv->keys_pressed().empty()); | 1560 EXPECT_TRUE(mtv->keys_pressed().empty()); |
1560 EXPECT_TRUE(mtv->keys_released().empty()); | 1561 EXPECT_TRUE(mtv->keys_released().empty()); |
1561 #endif | |
1562 EXPECT_TRUE(mtv->accelerator_pressed()); | 1562 EXPECT_TRUE(mtv->accelerator_pressed()); |
1563 mtv->Reset(); | 1563 mtv->Reset(); |
1564 } | 1564 } |
| 1565 #endif |
1565 | 1566 |
1566 #if defined(OS_WIN) | 1567 #if defined(OS_WIN) |
1567 // Test that the focus manager is created successfully for the first view | 1568 // Test that the focus manager is created successfully for the first view |
1568 // window parented to a native dialog. | 1569 // window parented to a native dialog. |
1569 TEST_F(FocusManagerTest, CreationForNativeRoot) { | 1570 TEST_F(FocusManagerTest, CreationForNativeRoot) { |
1570 // Create a window class. | 1571 // Create a window class. |
1571 WNDCLASSEX class_ex; | 1572 WNDCLASSEX class_ex; |
1572 memset(&class_ex, 0, sizeof(class_ex)); | 1573 memset(&class_ex, 0, sizeof(class_ex)); |
1573 class_ex.cbSize = sizeof(WNDCLASSEX); | 1574 class_ex.cbSize = sizeof(WNDCLASSEX); |
1574 class_ex.lpfnWndProc = &DefWindowProc; | 1575 class_ex.lpfnWndProc = &DefWindowProc; |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 // Focus manager should be the last one to destruct. | 1718 // Focus manager should be the last one to destruct. |
1718 ASSERT_STREQ("FocusManagerDtorTracked", dtor_tracker_[2].c_str()); | 1719 ASSERT_STREQ("FocusManagerDtorTracked", dtor_tracker_[2].c_str()); |
1719 | 1720 |
1720 // Clear window_ so that we don't try to close it again. | 1721 // Clear window_ so that we don't try to close it again. |
1721 window_ = NULL; | 1722 window_ = NULL; |
1722 } | 1723 } |
1723 | 1724 |
1724 #endif // defined(OS_CHROMEOS) | 1725 #endif // defined(OS_CHROMEOS) |
1725 | 1726 |
1726 } // namespace views | 1727 } // namespace views |
OLD | NEW |