spoken_feedback_toggler_unittest.cc revision 5f1c94371a64b3196d4be9466099bb892df9b88e
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ash/accelerators/spoken_feedback_toggler.h"
6#include "ash/accessibility_delegate.h"
7#include "ash/shell.h"
8#include "ash/test/ash_test_base.h"
9#include "ash/wm/window_util.h"
10#include "ui/aura/test/test_window_delegate.h"
11#include "ui/events/test/event_generator.h"
12
13namespace ash {
14
15typedef ash::test::AshTestBase SpokenFeedbackTogglerTest;
16
17TEST_F(SpokenFeedbackTogglerTest, Basic) {
18  SpokenFeedbackToggler::ScopedEnablerForTest scoped;
19  Shell* shell = Shell::GetInstance();
20  AccessibilityDelegate* delegate = shell->accessibility_delegate();
21  ui::test::EventGenerator& generator = GetEventGenerator();
22  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
23
24  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
25  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
26  generator.ReleaseKey(ui::VKEY_F6, 0);
27  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
28
29  // Click and hold toggles the spoken feedback.
30  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
31  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
32  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
33  EXPECT_TRUE(delegate->IsSpokenFeedbackEnabled());
34  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
35  EXPECT_TRUE(delegate->IsSpokenFeedbackEnabled());
36  generator.ReleaseKey(ui::VKEY_F6, 0);
37  EXPECT_TRUE(delegate->IsSpokenFeedbackEnabled());
38
39  // toggle again
40  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
41  EXPECT_TRUE(delegate->IsSpokenFeedbackEnabled());
42  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
43  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
44  generator.PressKey(ui::VKEY_F6, ui::EF_SHIFT_DOWN);
45  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
46  generator.ReleaseKey(ui::VKEY_F6, 0);
47  EXPECT_FALSE(delegate->IsSpokenFeedbackEnabled());
48}
49
50}  // namespace ash
51