Index: ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
diff --git a/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc b/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
index 4145281969e4e5b210094f6375d5ccd3ab162902..de8be86e954346cf44c4bc97a01d33e4f78cceb3 100644 |
--- a/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
+++ b/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
@@ -21,6 +21,10 @@ |
#include "ui/gfx/vector3d_f.h" |
#include "ui/message_center/message_center.h" |
+#if defined(USE_X11) |
+#include "ui/events/test/events_test_utils_x11.h" |
+#endif |
+ |
namespace ash { |
namespace { |
@@ -416,9 +420,9 @@ TEST_F(MaximizeModeControllerTest, Screenshot) { |
EXPECT_EQ(1, delegate->handle_take_screenshot_count()); |
event_generator.ReleaseKey(ui::VKEY_VOLUME_DOWN, 0); |
} |
-#endif // OS_CHROMEOS |
-// Tests that maximize mode does not block Volume Up & Down events. |
+// Tests that maximize mode allows volume up/down events originating |
+// from dedicated buttons versus remapped keyboard buttons. |
TEST_F(MaximizeModeControllerTest, AllowsVolumeControl) { |
sadrul
2014/05/26 14:39:52
wrap this test around if defined(USE_X11) instead
bruthig
2014/05/26 14:53:59
Done.
|
aura::Window* root = Shell::GetPrimaryRootWindow(); |
aura::test::EventGenerator event_generator(root, root); |
@@ -433,18 +437,39 @@ TEST_F(MaximizeModeControllerTest, AllowsVolumeControl) { |
gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); |
ASSERT_TRUE(IsMaximizeModeStarted()); |
+ ui::ScopedXI2Event xevent; |
+ |
+ // Verify F9 button event is blocked |
+ ASSERT_EQ(0, volume_delegate->handle_volume_down_count()); |
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
+ ui::KeyEvent press_f9(xevent, false /*is_char*/); |
+ press_f9.set_flags(ui::EF_FUNCTION_KEY); |
+ event_generator.Dispatch(&press_f9); |
+ EXPECT_EQ(0, volume_delegate->handle_volume_down_count()); |
+ |
+ // Verify F10 button event is blocked |
+ ASSERT_EQ(0, volume_delegate->handle_volume_up_count()); |
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_VOLUME_UP, ui::EF_NONE); |
+ ui::KeyEvent press_f10(xevent, false /*is_char*/); |
+ press_f10.set_flags(ui::EF_FUNCTION_KEY); |
+ event_generator.Dispatch(&press_f10); |
+ EXPECT_EQ(0, volume_delegate->handle_volume_up_count()); |
+ |
// Verify volume down button event is not blocked |
ASSERT_EQ(0, volume_delegate->handle_volume_down_count()); |
- event_generator.PressKey(ui::VKEY_VOLUME_DOWN, 0); |
- event_generator.ReleaseKey(ui::VKEY_VOLUME_DOWN, 0); |
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_VOLUME_DOWN, ui::EF_NONE); |
+ ui::KeyEvent press_vol_down(xevent, false /*is_char*/); |
+ event_generator.Dispatch(&press_vol_down); |
EXPECT_EQ(1, volume_delegate->handle_volume_down_count()); |
// Verify volume up event is not blocked |
ASSERT_EQ(0, volume_delegate->handle_volume_up_count()); |
- event_generator.PressKey(ui::VKEY_VOLUME_UP, 0); |
- event_generator.ReleaseKey(ui::VKEY_VOLUME_UP, 0); |
+ xevent.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_VOLUME_UP, ui::EF_NONE); |
+ ui::KeyEvent press_vol_up(xevent, false /*is_char*/); |
+ event_generator.Dispatch(&press_vol_up); |
EXPECT_EQ(1, volume_delegate->handle_volume_up_count()); |
} |
+#endif // OS_CHROMEOS |
TEST_F(MaximizeModeControllerTest, LaptopTest) { |
// Feeds in sample accelerometer data and verifies that there are no |