blob: 7673045fdcf46d44e7cea180a39477206d7fd65e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_
#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_
#include "chrome/browser/chromeos/input_method/input_method_util.h"
#include "ui/base/ime/chromeos/component_extension_ime_manager.h"
#include "ui/base/ime/chromeos/fake_ime_keyboard.h"
#include "ui/base/ime/chromeos/fake_input_method_delegate.h"
#include "ui/base/ime/chromeos/input_method_manager.h"
#include "ui/base/ime/chromeos/input_method_whitelist.h"
namespace chromeos {
namespace input_method {
// The mock implementation of InputMethodManager for testing.
class MockInputMethodManager : public InputMethodManager {
public:
class State : public InputMethodManager::State {
public:
explicit State(MockInputMethodManager* manager);
scoped_refptr<InputMethodManager::State> Clone() const override;
void AddInputMethodExtension(const std::string& extension_id,
const InputMethodDescriptors& descriptors,
InputMethodEngineInterface* instance) override;
void RemoveInputMethodExtension(const std::string& extension_id) override;
void ChangeInputMethod(const std::string& input_method_id,
bool show_message) override;
bool EnableInputMethod(
const std::string& new_active_input_method_id) override;
void EnableLoginLayouts(
const std::string& language_code,
const std::vector<std::string>& initial_layouts) override;
void EnableLockScreenLayouts() override;
void GetInputMethodExtensions(InputMethodDescriptors* result) override;
scoped_ptr<InputMethodDescriptors> GetActiveInputMethods() const override;
const std::vector<std::string>& GetActiveInputMethodIds() const override;
const InputMethodDescriptor* GetInputMethodFromId(
const std::string& input_method_id) const override;
size_t GetNumActiveInputMethods() const override;
void SetEnabledExtensionImes(std::vector<std::string>* ids) override;
void SetInputMethodLoginDefault() override;
void SetInputMethodLoginDefaultFromVPD(const std::string& locale,
const std::string& layout) override;
bool CanCycleInputMethod() override;
void SwitchToNextInputMethod() override;
void SwitchToPreviousInputMethod() override;
bool CanSwitchInputMethod(const ui::Accelerator& accelerator) override;
void SwitchInputMethod(const ui::Accelerator& accelerator) override;
InputMethodDescriptor GetCurrentInputMethod() const override;
bool ReplaceEnabledInputMethods(
const std::vector<std::string>& new_active_input_method_ids) override;
// The value GetCurrentInputMethod().id() will return.
std::string current_input_method_id;
// The active input method ids cache (actually default only)
std::vector<std::string> active_input_method_ids;
protected:
friend base::RefCounted<chromeos::input_method::InputMethodManager::State>;
~State() override;
MockInputMethodManager* const manager_;
};
MockInputMethodManager();
~MockInputMethodManager() override;
// InputMethodManager override:
UISessionState GetUISessionState() override;
void AddObserver(InputMethodManager::Observer* observer) override;
void AddCandidateWindowObserver(
InputMethodManager::CandidateWindowObserver* observer) override;
void RemoveObserver(InputMethodManager::Observer* observer) override;
void RemoveCandidateWindowObserver(
InputMethodManager::CandidateWindowObserver* observer) override;
scoped_ptr<InputMethodDescriptors> GetSupportedInputMethods() const override;
void ActivateInputMethodMenuItem(const std::string& key) override;
bool IsISOLevel5ShiftUsedByCurrentInputMethod() const override;
bool IsAltGrUsedByCurrentInputMethod() const override;
ImeKeyboard* GetImeKeyboard() override;
InputMethodUtil* GetInputMethodUtil() override;
ComponentExtensionIMEManager* GetComponentExtensionIMEManager() override;
bool IsLoginKeyboard(const std::string& layout) const override;
bool MigrateInputMethods(std::vector<std::string>* input_method_ids) override;
scoped_refptr<InputMethodManager::State> CreateNewState(
Profile* profile) override;
scoped_refptr<InputMethodManager::State> GetActiveIMEState() override;
void SetState(scoped_refptr<InputMethodManager::State> state) override;
// Sets an input method ID which will be returned by GetCurrentInputMethod().
void SetCurrentInputMethodId(const std::string& input_method_id);
void SetComponentExtensionIMEManager(
scoped_ptr<ComponentExtensionIMEManager> comp_ime_manager);
// Set values that will be provided to the InputMethodUtil.
void set_application_locale(const std::string& value);
// Set the value returned by IsISOLevel5ShiftUsedByCurrentInputMethod
void set_mod3_used(bool value) { mod3_used_ = value; }
// TODO(yusukes): Add more variables for counting the numbers of the API calls
int add_observer_count_;
int remove_observer_count_;
protected:
scoped_refptr<State> state_;
private:
FakeInputMethodDelegate delegate_; // used by util_
InputMethodUtil util_;
FakeImeKeyboard keyboard_;
bool mod3_used_;
scoped_ptr<ComponentExtensionIMEManager> comp_ime_manager_;
DISALLOW_COPY_AND_ASSIGN(MockInputMethodManager);
};
} // namespace input_method
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_
|