| Index: ash/accelerators/accelerator_controller_unittest.cc
|
| diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
|
| index 933d0a580e6954dbe8e82699143b5b44757d2c0a..216dbb551c7ee779c672239d2669895b17a0d1b4 100644
|
| --- a/ash/accelerators/accelerator_controller_unittest.cc
|
| +++ b/ash/accelerators/accelerator_controller_unittest.cc
|
| @@ -322,23 +322,26 @@ class AcceleratorControllerTest : public test::AshTestBase {
|
| static bool ProcessWithContext(const ui::Accelerator& accelerator);
|
|
|
| // Several functions to access ExitWarningHandler (as friend).
|
| - static void StubForTest(ExitWarningHandler& ewh) {
|
| - ewh.stub_timers_for_test_ = true;
|
| + static void StubForTest(ExitWarningHandler* ewh) {
|
| + ewh->stub_timers_for_test_ = true;
|
| }
|
| - static void SimulateTimer1Expired(ExitWarningHandler& ewh) {
|
| - ewh.Timer1Action();
|
| + static void Reset(ExitWarningHandler* ewh) {
|
| + ewh->state_ = ExitWarningHandler::IDLE;
|
| }
|
| - static void SimulateTimer2Expired(ExitWarningHandler& ewh) {
|
| - ewh.Timer2Action();
|
| + static void SimulateTimer1Expired(ExitWarningHandler* ewh) {
|
| + ewh->Timer1Action();
|
| }
|
| - static bool is_ui_shown(ExitWarningHandler& ewh) {
|
| - return !!ewh.widget_;
|
| + static void SimulateTimer2Expired(ExitWarningHandler* ewh) {
|
| + ewh->Timer2Action();
|
| }
|
| - static bool is_idle(ExitWarningHandler& ewh) {
|
| - return ewh.state_ == ExitWarningHandler::IDLE;
|
| + static bool is_ui_shown(ExitWarningHandler* ewh) {
|
| + return !!ewh->widget_;
|
| }
|
| - static bool is_exiting(ExitWarningHandler& ewh) {
|
| - return ewh.state_ == ExitWarningHandler::EXITING;
|
| + static bool is_idle(ExitWarningHandler* ewh) {
|
| + return ewh->state_ == ExitWarningHandler::IDLE;
|
| + }
|
| + static bool is_exiting(ExitWarningHandler* ewh) {
|
| + return ewh->state_ == ExitWarningHandler::EXITING;
|
| }
|
|
|
| private:
|
| @@ -356,71 +359,87 @@ bool AcceleratorControllerTest::ProcessWithContext(
|
| return controller->Process(accelerator);
|
| }
|
|
|
| -// Quick double press of exit key => exiting
|
| +#if !defined(OS_WIN)
|
| +// Quick double press of exit shortcut => exiting
|
| TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestDoublePress) {
|
| - ExitWarningHandler ewh;
|
| + ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
|
| + ui::Accelerator release(press);
|
| + release.set_type(ui::ET_KEY_RELEASED);
|
| + ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest();
|
| + ASSERT_TRUE(!!ewh);
|
| StubForTest(ewh);
|
| EXPECT_TRUE(is_idle(ewh));
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| -
|
| - ewh.HandleExitKey(true);
|
| + EXPECT_TRUE(ProcessWithContext(press));
|
| + EXPECT_FALSE(ProcessWithContext(release));
|
| EXPECT_TRUE(is_ui_shown(ewh));
|
| - ewh.HandleExitKey(false);
|
| - ewh.HandleExitKey(true); // double press
|
| + EXPECT_TRUE(ProcessWithContext(press)); // double press
|
| + EXPECT_FALSE(ProcessWithContext(release));
|
| SimulateTimer1Expired(ewh); // simulate double press timer expired
|
| SimulateTimer2Expired(ewh); // simulate long hold timer expired
|
| - ewh.HandleExitKey(false);
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| EXPECT_TRUE(is_exiting(ewh));
|
| + Reset(ewh);
|
| }
|
|
|
| -// Long hold of exit key => exiting
|
| +// Long hold of exit shortcut => exiting
|
| TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestLongHold) {
|
| - ExitWarningHandler ewh;
|
| + ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
|
| + ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest();
|
| + ASSERT_TRUE(!!ewh);
|
| StubForTest(ewh);
|
| EXPECT_TRUE(is_idle(ewh));
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| -
|
| - ewh.HandleExitKey(true);
|
| + EXPECT_TRUE(ProcessWithContext(press)); // hold
|
| EXPECT_TRUE(is_ui_shown(ewh));
|
| SimulateTimer1Expired(ewh); // simulate double press timer expired
|
| SimulateTimer2Expired(ewh); // simulate long hold timer expired
|
| - ewh.HandleExitKey(false); // release after long hold
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| EXPECT_TRUE(is_exiting(ewh));
|
| + Reset(ewh);
|
| }
|
|
|
| -// Release of exit key before hold time limit => cancel
|
| +// Release of exit shortcut before hold time limit => cancel
|
| TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestEarlyRelease) {
|
| - ExitWarningHandler ewh;
|
| + ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
|
| + ui::Accelerator release(press);
|
| + release.set_type(ui::ET_KEY_RELEASED);
|
| + ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest();
|
| + ASSERT_TRUE(!!ewh);
|
| StubForTest(ewh);
|
| EXPECT_TRUE(is_idle(ewh));
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| -
|
| - ewh.HandleExitKey(true);
|
| + EXPECT_TRUE(ProcessWithContext(press));
|
| EXPECT_TRUE(is_ui_shown(ewh));
|
| SimulateTimer1Expired(ewh); // simulate double press timer expired
|
| - ewh.HandleExitKey(false); // release before long hold limit
|
| + EXPECT_FALSE(ProcessWithContext(release));
|
| SimulateTimer2Expired(ewh); // simulate long hold timer expired
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| EXPECT_TRUE(is_idle(ewh));
|
| + Reset(ewh);
|
| }
|
|
|
| -// Release of exit key before double press limit => cancel.
|
| +// Second Press after double press time limit => cancel
|
| TEST_F(AcceleratorControllerTest, ExitWarningHandlerTestQuickRelease) {
|
| - ExitWarningHandler ewh;
|
| + ui::Accelerator press(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
|
| + ui::Accelerator release(press);
|
| + release.set_type(ui::ET_KEY_RELEASED);
|
| + ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest();
|
| + ASSERT_TRUE(!!ewh);
|
| StubForTest(ewh);
|
| EXPECT_TRUE(is_idle(ewh));
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| -
|
| - ewh.HandleExitKey(true);
|
| + EXPECT_TRUE(ProcessWithContext(press));
|
| + EXPECT_FALSE(ProcessWithContext(release));
|
| EXPECT_TRUE(is_ui_shown(ewh));
|
| - ewh.HandleExitKey(false); // release before double press limit
|
| SimulateTimer1Expired(ewh); // simulate double press timer expired
|
| + EXPECT_TRUE(ProcessWithContext(press));
|
| SimulateTimer2Expired(ewh); // simulate long hold timer expired
|
| EXPECT_FALSE(is_ui_shown(ewh));
|
| EXPECT_TRUE(is_idle(ewh));
|
| + Reset(ewh);
|
| }
|
| +#endif // !defined(OS_WIN)
|
|
|
| TEST_F(AcceleratorControllerTest, Register) {
|
| const ui::Accelerator accelerator_a(ui::VKEY_A, ui::EF_NONE);
|
| @@ -948,17 +967,18 @@ TEST_F(AcceleratorControllerTest, GlobalAccelerators) {
|
| // Exit
|
| ExitWarningHandler* ewh = GetController()->GetExitWarningHandlerForTest();
|
| ASSERT_TRUE(!!ewh);
|
| - StubForTest(*ewh);
|
| - EXPECT_TRUE(is_idle(*ewh));
|
| - EXPECT_FALSE(is_ui_shown(*ewh));
|
| + StubForTest(ewh);
|
| + EXPECT_TRUE(is_idle(ewh));
|
| + EXPECT_FALSE(is_ui_shown(ewh));
|
| EXPECT_TRUE(ProcessWithContext(
|
| ui::Accelerator(ui::VKEY_Q, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN)));
|
| - EXPECT_FALSE(is_idle(*ewh));
|
| - EXPECT_TRUE(is_ui_shown(*ewh));
|
| - SimulateTimer1Expired(*ewh);
|
| - SimulateTimer2Expired(*ewh);
|
| - EXPECT_FALSE(is_ui_shown(*ewh));
|
| - EXPECT_TRUE(is_exiting(*ewh));
|
| + EXPECT_FALSE(is_idle(ewh));
|
| + EXPECT_TRUE(is_ui_shown(ewh));
|
| + SimulateTimer1Expired(ewh);
|
| + SimulateTimer2Expired(ewh);
|
| + EXPECT_FALSE(is_ui_shown(ewh));
|
| + EXPECT_TRUE(is_exiting(ewh));
|
| + Reset(ewh);
|
| #endif
|
|
|
| // New tab
|
|
|