| Index: ash/accelerators/accelerator_controller_unittest.cc
|
| diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
|
| index 178130e40c216bfd6914f306d307fc83ee136b33..e9de06f61e32e426727d11743565484a787d9c83 100644
|
| --- a/ash/accelerators/accelerator_controller_unittest.cc
|
| +++ b/ash/accelerators/accelerator_controller_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "ash/accessibility_delegate.h"
|
| #include "ash/accessibility_types.h"
|
| #include "ash/ash_switches.h"
|
| +#include "ash/ime_control_delegate.h"
|
| #include "ash/public/cpp/config.h"
|
| #include "ash/public/cpp/shell_window_ids.h"
|
| #include "ash/session/session_controller.h"
|
| @@ -53,8 +54,6 @@
|
| #include "ui/events/test/events_test_utils_x11.h"
|
| #endif
|
|
|
| -using chromeos::input_method::InputMethodManager;
|
| -
|
| namespace ash {
|
|
|
| namespace {
|
| @@ -125,57 +124,34 @@
|
| DISALLOW_COPY_AND_ASSIGN(DummyBrightnessControlDelegate);
|
| };
|
|
|
| -class TestInputMethodManagerState
|
| - : public chromeos::input_method::MockInputMethodManager::State {
|
| +class DummyImeControlDelegate : public ImeControlDelegate {
|
| public:
|
| - TestInputMethodManagerState() = default;
|
| -
|
| - // InputMethodManager::State:
|
| - bool CanCycleInputMethod() override { return can_change_input_method_; }
|
| - void SwitchToNextInputMethod() override { next_ime_count_++; }
|
| - void SwitchToPreviousInputMethod() override { previous_ime_count_++; }
|
| - bool CanSwitchInputMethod(const ui::Accelerator& accelerator) override {
|
| - return can_change_input_method_;
|
| - }
|
| - void SwitchInputMethod(const ui::Accelerator& accelerator) override {
|
| - switch_ime_count_++;
|
| - }
|
| -
|
| - bool can_change_input_method_ = true;
|
| - int next_ime_count_ = 0;
|
| - int previous_ime_count_ = 0;
|
| - int switch_ime_count_ = 0;
|
| + DummyImeControlDelegate()
|
| + : handle_next_ime_count_(0),
|
| + handle_previous_ime_count_(0),
|
| + handle_switch_ime_count_(0) {}
|
| + ~DummyImeControlDelegate() override {}
|
| +
|
| + bool CanCycleIme() override { return true; }
|
| + void HandleNextIme() override { ++handle_next_ime_count_; }
|
| + void HandlePreviousIme() override { ++handle_previous_ime_count_; }
|
| + bool CanSwitchIme(const ui::Accelerator& accelerator) override {
|
| + return true;
|
| + }
|
| + void HandleSwitchIme(const ui::Accelerator& accelerator) override {
|
| + ++handle_switch_ime_count_;
|
| + }
|
| +
|
| + int handle_next_ime_count() const { return handle_next_ime_count_; }
|
| + int handle_previous_ime_count() const { return handle_previous_ime_count_; }
|
| + int handle_switch_ime_count() const { return handle_switch_ime_count_; }
|
|
|
| private:
|
| - // Base class is ref-counted.
|
| - ~TestInputMethodManagerState() override = default;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestInputMethodManagerState);
|
| -};
|
| -
|
| -class TestInputMethodManager
|
| - : public chromeos::input_method::MockInputMethodManager {
|
| - public:
|
| - TestInputMethodManager() : state_(new TestInputMethodManagerState) {}
|
| - ~TestInputMethodManager() override = default;
|
| -
|
| - void SetCanChangeInputMethod(bool can_change) {
|
| - state_->can_change_input_method_ = can_change;
|
| - }
|
| -
|
| - // MockInputMethodManager:
|
| - chromeos::input_method::ImeKeyboard* GetImeKeyboard() override {
|
| - return &keyboard_;
|
| - }
|
| - scoped_refptr<InputMethodManager::State> GetActiveIMEState() override {
|
| - return state_;
|
| - }
|
| -
|
| - chromeos::input_method::FakeImeKeyboard keyboard_;
|
| - scoped_refptr<TestInputMethodManagerState> state_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(TestInputMethodManager);
|
| + int handle_next_ime_count_;
|
| + int handle_previous_ime_count_;
|
| + int handle_switch_ime_count_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DummyImeControlDelegate);
|
| };
|
|
|
| class DummyKeyboardBrightnessControlDelegate
|
| @@ -231,20 +207,8 @@
|
|
|
| class AcceleratorControllerTest : public test::AshTestBase {
|
| public:
|
| - AcceleratorControllerTest() = default;
|
| - ~AcceleratorControllerTest() override = default;
|
| -
|
| - void SetUp() override {
|
| - test::AshTestBase::SetUp();
|
| - test_input_method_manager_ = new TestInputMethodManager;
|
| - // Takes ownership.
|
| - InputMethodManager::Initialize(test_input_method_manager_);
|
| - }
|
| -
|
| - void TearDown() override {
|
| - InputMethodManager::Shutdown();
|
| - test::AshTestBase::TearDown();
|
| - }
|
| + AcceleratorControllerTest() {}
|
| + ~AcceleratorControllerTest() override {}
|
|
|
| protected:
|
| static AcceleratorController* GetController();
|
| @@ -299,9 +263,6 @@
|
| std::unique_ptr<KeyboardBrightnessControlDelegate> delegate) {
|
| Shell::Get()->keyboard_brightness_control_delegate_ = std::move(delegate);
|
| }
|
| -
|
| - // Owned by InputMethodManager.
|
| - TestInputMethodManager* test_input_method_manager_ = nullptr;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(AcceleratorControllerTest);
|
| @@ -888,11 +849,7 @@
|
| }
|
|
|
| TEST_F(AcceleratorControllerTest, ImeGlobalAccelerators) {
|
| - TestInputMethodManagerState* test_state =
|
| - test_input_method_manager_->state_.get();
|
| -
|
| - // Test IME shortcuts when cycling IME is blocked.
|
| - test_state->can_change_input_method_ = false;
|
| + // Test IME shortcuts.
|
| ui::Accelerator control_space_down(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN);
|
| ui::Accelerator control_space_up(ui::VKEY_SPACE, ui::EF_CONTROL_DOWN);
|
| control_space_up.set_key_state(ui::Accelerator::KeyState::RELEASED);
|
| @@ -908,25 +865,25 @@
|
| EXPECT_FALSE(ProcessInController(wide_half_1));
|
| EXPECT_FALSE(ProcessInController(wide_half_2));
|
| EXPECT_FALSE(ProcessInController(hangul));
|
| -
|
| - // Test IME shortcuts when cycling IME is allowed.
|
| - test_state->can_change_input_method_ = true;
|
| - EXPECT_EQ(0, test_state->previous_ime_count_);
|
| + DummyImeControlDelegate* delegate = new DummyImeControlDelegate;
|
| + GetController()->SetImeControlDelegate(
|
| + std::unique_ptr<ImeControlDelegate>(delegate));
|
| + EXPECT_EQ(0, delegate->handle_previous_ime_count());
|
| EXPECT_TRUE(ProcessInController(control_space_down));
|
| - EXPECT_EQ(1, test_state->previous_ime_count_);
|
| + EXPECT_EQ(1, delegate->handle_previous_ime_count());
|
| EXPECT_TRUE(ProcessInController(control_space_up));
|
| - EXPECT_EQ(1, test_state->previous_ime_count_);
|
| - EXPECT_EQ(0, test_state->switch_ime_count_);
|
| + EXPECT_EQ(1, delegate->handle_previous_ime_count());
|
| + EXPECT_EQ(0, delegate->handle_switch_ime_count());
|
| EXPECT_TRUE(ProcessInController(convert));
|
| - EXPECT_EQ(1, test_state->switch_ime_count_);
|
| + EXPECT_EQ(1, delegate->handle_switch_ime_count());
|
| EXPECT_TRUE(ProcessInController(non_convert));
|
| - EXPECT_EQ(2, test_state->switch_ime_count_);
|
| + EXPECT_EQ(2, delegate->handle_switch_ime_count());
|
| EXPECT_TRUE(ProcessInController(wide_half_1));
|
| - EXPECT_EQ(3, test_state->switch_ime_count_);
|
| + EXPECT_EQ(3, delegate->handle_switch_ime_count());
|
| EXPECT_TRUE(ProcessInController(wide_half_2));
|
| - EXPECT_EQ(4, test_state->switch_ime_count_);
|
| + EXPECT_EQ(4, delegate->handle_switch_ime_count());
|
| EXPECT_TRUE(ProcessInController(hangul));
|
| - EXPECT_EQ(5, test_state->switch_ime_count_);
|
| + EXPECT_EQ(5, delegate->handle_switch_ime_count());
|
| }
|
|
|
| // TODO(nona|mazda): Remove this when crbug.com/139556 in a better way.
|
| @@ -975,8 +932,45 @@
|
|
|
| namespace {
|
|
|
| +class TestInputMethodManager
|
| + : public chromeos::input_method::MockInputMethodManager {
|
| + public:
|
| + TestInputMethodManager() = default;
|
| + ~TestInputMethodManager() override = default;
|
| +
|
| + // MockInputMethodManager:
|
| + chromeos::input_method::ImeKeyboard* GetImeKeyboard() override {
|
| + return &keyboard_;
|
| + }
|
| +
|
| + private:
|
| + chromeos::input_method::FakeImeKeyboard keyboard_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestInputMethodManager);
|
| +};
|
| +
|
| +class ToggleCapsLockTest : public AcceleratorControllerTest {
|
| + public:
|
| + ToggleCapsLockTest() = default;
|
| + ~ToggleCapsLockTest() override = default;
|
| +
|
| + void SetUp() override {
|
| + AcceleratorControllerTest::SetUp();
|
| + chromeos::input_method::InputMethodManager::Initialize(
|
| + new TestInputMethodManager);
|
| + }
|
| +
|
| + void TearDown() override {
|
| + chromeos::input_method::InputMethodManager::Shutdown();
|
| + AcceleratorControllerTest::TearDown();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ToggleCapsLockTest);
|
| +};
|
| +
|
| // Tests the five combinations of the TOGGLE_CAPS_LOCK accelerator.
|
| -TEST_F(AcceleratorControllerTest, ToggleCapsLockAccelerators) {
|
| +TEST_F(ToggleCapsLockTest, ToggleCapsLockAccelerators) {
|
| chromeos::input_method::InputMethodManager* input_method_manager =
|
| chromeos::input_method::InputMethodManager::Get();
|
| ASSERT_TRUE(input_method_manager);
|
| @@ -1268,8 +1262,17 @@
|
| // defines a class to test the behavior of deprecated accelerators.
|
| class DeprecatedAcceleratorTester : public AcceleratorControllerTest {
|
| public:
|
| - DeprecatedAcceleratorTester() = default;
|
| - ~DeprecatedAcceleratorTester() override = default;
|
| + DeprecatedAcceleratorTester() {}
|
| + ~DeprecatedAcceleratorTester() override {}
|
| +
|
| + void SetUp() override {
|
| + AcceleratorControllerTest::SetUp();
|
| +
|
| + // For testing the deprecated and new IME shortcuts.
|
| + DummyImeControlDelegate* delegate = new DummyImeControlDelegate;
|
| + GetController()->SetImeControlDelegate(
|
| + std::unique_ptr<ImeControlDelegate>(delegate));
|
| + }
|
|
|
| ui::Accelerator CreateAccelerator(const AcceleratorData& data) const {
|
| ui::Accelerator result(data.keycode, data.modifiers);
|
|
|