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 33b898866a7cefbc730eb604fa35506b1cce4694..3dcd076fc8dfb3c23e3921196d896558f99c65b2 100644 |
--- a/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
+++ b/ash/wm/maximize_mode/maximize_mode_controller_unittest.cc |
@@ -10,6 +10,8 @@ |
#include "ash/system/tray/system_tray_delegate.h" |
#include "ash/test/ash_test_base.h" |
#include "ash/test/display_manager_test_api.h" |
+#include "ash/test/test_lock_state_controller_delegate.h" |
+#include "ash/test/test_screenshot_delegate.h" |
#include "ash/test/test_volume_control_delegate.h" |
#include "ui/aura/test/event_generator.h" |
#include "ui/events/event_handler.h" |
@@ -329,6 +331,36 @@ TEST_F(MaximizeModeControllerTest, BlocksKeyboard) { |
counter.reset(); |
} |
+#if defined(OS_CHROMEOS) |
+// Tests that a screenshot can be taken in maximize mode by holding volume down |
+// and pressing power. |
+TEST_F(MaximizeModeControllerTest, Screenshot) { |
+ Shell::GetInstance()->lock_state_controller()->SetDelegate( |
+ new test::TestLockStateControllerDelegate); |
+ aura::Window* root = Shell::GetPrimaryRootWindow(); |
+ aura::test::EventGenerator event_generator(root, root); |
+ test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
+ delegate->set_can_take_screenshot(true); |
+ |
+ // Open up 270 degrees. |
+ TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), |
+ gfx::Vector3dF(1.0f, 0.0f, 0.0f)); |
+ ASSERT_TRUE(IsMaximizeModeStarted()); |
+ |
+ // Pressing power alone does not take a screenshot. |
+ event_generator.PressKey(ui::VKEY_POWER, 0); |
+ event_generator.ReleaseKey(ui::VKEY_POWER, 0); |
+ EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
+ |
+ // Holding volume down and pressing power takes a screenshot. |
+ event_generator.PressKey(ui::VKEY_VOLUME_DOWN, 0); |
+ event_generator.PressKey(ui::VKEY_POWER, 0); |
+ event_generator.ReleaseKey(ui::VKEY_POWER, 0); |
+ 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. |
TEST_F(MaximizeModeControllerTest, AllowsVolumeControl) { |
aura::Window* root = Shell::GetPrimaryRootWindow(); |