1 // Copyright (c) 2012 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.
5 #ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_
6 #define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_
8 #include "chrome/browser/chromeos/input_method/input_method_util.h"
9 #include "chromeos/ime/fake_input_method_delegate.h"
10 #include "chromeos/ime/input_method_manager.h"
11 #include "chromeos/ime/input_method_whitelist.h"
12 #include "chromeos/ime/mock_xkeyboard.h"
15 namespace input_method
{
17 // The mock implementation of InputMethodManager for testing.
18 class MockInputMethodManager
: public InputMethodManager
{
20 MockInputMethodManager();
21 virtual ~MockInputMethodManager();
23 // InputMethodManager override:
24 virtual void AddObserver(InputMethodManager::Observer
* observer
) OVERRIDE
;
25 virtual void AddCandidateWindowObserver(
26 InputMethodManager::CandidateWindowObserver
* observer
) OVERRIDE
;
27 virtual void RemoveObserver(InputMethodManager::Observer
* observer
) OVERRIDE
;
28 virtual void RemoveCandidateWindowObserver(
29 InputMethodManager::CandidateWindowObserver
* observer
) OVERRIDE
;
30 virtual scoped_ptr
<InputMethodDescriptors
>
31 GetSupportedInputMethods() const OVERRIDE
;
32 virtual scoped_ptr
<InputMethodDescriptors
>
33 GetActiveInputMethods() const OVERRIDE
;
34 virtual const std::vector
<std::string
>& GetActiveInputMethodIds() const
36 virtual size_t GetNumActiveInputMethods() const OVERRIDE
;
37 virtual const InputMethodDescriptor
* GetInputMethodFromId(
38 const std::string
& input_method_id
) const OVERRIDE
;
39 virtual void EnableLayouts(const std::string
& language_code
,
40 const std::string
& initial_layout
) OVERRIDE
;
41 virtual bool EnableInputMethods(
42 const std::vector
<std::string
>& new_active_input_method_ids
) OVERRIDE
;
43 virtual bool EnableInputMethod(
44 const std::string
& new_active_input_method_id
) OVERRIDE
;
45 virtual void ChangeInputMethod(const std::string
& input_method_id
) OVERRIDE
;
46 virtual void ActivateInputMethodProperty(const std::string
& key
) OVERRIDE
;
47 virtual void AddInputMethodExtension(
48 const std::string
& id
,
49 InputMethodEngineInterface
* instance
) OVERRIDE
;
50 virtual void RemoveInputMethodExtension(const std::string
& id
) OVERRIDE
;
51 virtual void GetInputMethodExtensions(
52 InputMethodDescriptors
* result
) OVERRIDE
;
53 virtual void SetEnabledExtensionImes(std::vector
<std::string
>* ids
) OVERRIDE
;
54 virtual void SetInputMethodDefault() OVERRIDE
;
55 virtual bool SwitchToNextInputMethod() OVERRIDE
;
56 virtual bool SwitchToPreviousInputMethod(
57 const ui::Accelerator
& accelerator
) OVERRIDE
;
58 virtual bool SwitchInputMethod(const ui::Accelerator
& accelerator
) OVERRIDE
;
59 virtual InputMethodDescriptor
GetCurrentInputMethod() const OVERRIDE
;
60 virtual InputMethodPropertyList
61 GetCurrentInputMethodProperties() const OVERRIDE
;
62 virtual void SetCurrentInputMethodProperties(
63 const InputMethodPropertyList
& property_list
) OVERRIDE
;
64 virtual XKeyboard
* GetXKeyboard() OVERRIDE
;
65 virtual InputMethodUtil
* GetInputMethodUtil() OVERRIDE
;
66 virtual ComponentExtensionIMEManager
*
67 GetComponentExtensionIMEManager() OVERRIDE
;
68 virtual bool IsLoginKeyboard(const std::string
& layout
) const OVERRIDE
;
70 // Sets an input method ID which will be returned by GetCurrentInputMethod().
71 void SetCurrentInputMethodId(const std::string
& input_method_id
) {
72 current_input_method_id_
= input_method_id
;
75 // Set values that will be provided to the InputMethodUtil.
76 void set_application_locale(const std::string
& value
);
77 void set_hardware_keyboard_layout(const std::string
& value
);
79 // TODO(yusukes): Add more variables for counting the numbers of the API calls
80 int add_observer_count_
;
81 int remove_observer_count_
;
84 // The value GetCurrentInputMethod().id() will return.
85 std::string current_input_method_id_
;
87 InputMethodWhitelist whitelist_
;
88 FakeInputMethodDelegate delegate_
; // used by util_
89 InputMethodUtil util_
;
90 MockXKeyboard xkeyboard_
;
92 // The active input method ids cache (actually default only)
93 std::vector
<std::string
> active_input_method_ids_
;
95 DISALLOW_COPY_AND_ASSIGN(MockInputMethodManager
);
98 } // namespace input_method
99 } // namespace chromeos
101 #endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_MOCK_INPUT_METHOD_MANAGER_H_