| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_BASE_IME_ASH_MOCK_INPUT_METHOD_MANAGER_H_ |
| #define UI_BASE_IME_ASH_MOCK_INPUT_METHOD_MANAGER_H_ |
| |
| #include "base/component_export.h" |
| #include "base/containers/span.h" |
| #include "base/observer_list.h" |
| #include "ui/base/ime/ash/input_method_manager.h" |
| #include "ui/base/ime/virtual_keyboard_controller.h" |
| #include "ui/base/ime/virtual_keyboard_controller_observer.h" |
| |
| namespace ash { |
| namespace input_method { |
| |
| class ImeKeyboard; |
| |
| // The mock InputMethodManager for testing. |
| class COMPONENT_EXPORT(UI_BASE_IME_ASH) MockInputMethodManager |
| : public InputMethodManager { |
| public: |
| public: |
| class State : public InputMethodManager::State { |
| public: |
| State(); |
| |
| State(const State&) = delete; |
| State& operator=(const State&) = delete; |
| |
| scoped_refptr<InputMethodManager::State> Clone() const override; |
| void AddInputMethodExtension(const std::string& extension_id, |
| const InputMethodDescriptors& descriptors, |
| TextInputMethod* instance) override; |
| void RemoveInputMethodExtension(const std::string& extension_id) override; |
| void ChangeInputMethod(const std::string& input_method_id, |
| bool show_message) override; |
| void ChangeInputMethodToJpKeyboard() override; |
| void ChangeInputMethodToJpIme() override; |
| void ToggleInputMethodForJpIme() override; |
| bool EnableInputMethod( |
| const std::string& new_enabled_input_method_id) override; |
| void EnableLoginLayouts( |
| const std::string& language_code, |
| const std::vector<std::string>& initial_layouts) override; |
| void EnableOobeInputMethods( |
| const std::string& language_code, |
| const std::vector<std::string>& initial_input_methods) override; |
| void DisableNonLockScreenLayouts() override; |
| void GetInputMethodExtensions(InputMethodDescriptors* result) override; |
| InputMethodDescriptors GetEnabledInputMethodsSortedByLocalizedDisplayNames() |
| const override; |
| InputMethodDescriptors GetEnabledInputMethods() const override; |
| const std::vector<std::string>& GetEnabledInputMethodIds() const override; |
| const InputMethodDescriptor* GetInputMethodFromId( |
| const std::string& input_method_id) const override; |
| size_t GetNumEnabledInputMethods() const override; |
| void SetEnabledExtensionImes(base::span<const std::string> ids) override; |
| void SetInputMethodLoginDefault(bool is_in_oobe_context) override; |
| void SetInputMethodLoginDefaultFromVPD(const std::string& locale, |
| const std::string& layout) override; |
| void SwitchToNextInputMethod() override; |
| void SwitchToLastUsedInputMethod() override; |
| InputMethodDescriptor GetCurrentInputMethod() const override; |
| bool ReplaceEnabledInputMethods( |
| const std::vector<std::string>& new_enabled_input_method_ids) override; |
| bool SetAllowedInputMethods( |
| const std::vector<std::string>& new_allowed_input_method_ids) override; |
| const std::vector<std::string>& GetAllowedInputMethodIds() const override; |
| std::string GetAllowedFallBackKeyboardLayout() const override; |
| void EnableInputView() override; |
| void DisableInputView() override; |
| const GURL& GetInputViewUrl() const override; |
| InputMethodManager::UIStyle GetUIStyle() const override; |
| void SetUIStyle(InputMethodManager::UIStyle ui_style) override; |
| |
| // The enabled input method ids cache (actually default only) |
| std::vector<std::string> enabled_input_method_ids; |
| |
| protected: |
| friend base::RefCounted<InputMethodManager::State>; |
| ~State() override; |
| |
| private: |
| // Allowed input methods ids |
| std::vector<std::string> allowed_input_method_ids_; |
| |
| InputMethodManager::UIStyle ui_style_ = |
| InputMethodManager::UIStyle::kNormal; |
| }; |
| |
| MockInputMethodManager(); |
| |
| MockInputMethodManager(const MockInputMethodManager&) = delete; |
| MockInputMethodManager& operator=(const MockInputMethodManager&) = delete; |
| |
| ~MockInputMethodManager() override; |
| |
| // InputMethodManager: |
| void AddObserver(InputMethodManager::Observer* observer) override; |
| void AddCandidateWindowObserver( |
| InputMethodManager::CandidateWindowObserver* observer) override; |
| void AddImeMenuObserver( |
| InputMethodManager::ImeMenuObserver* observer) override; |
| void RemoveObserver(InputMethodManager::Observer* observer) override; |
| void RemoveCandidateWindowObserver( |
| InputMethodManager::CandidateWindowObserver* observer) override; |
| void RemoveImeMenuObserver( |
| InputMethodManager::ImeMenuObserver* observer) override; |
| void ActivateInputMethodMenuItem(const std::string& key) override; |
| void ConnectInputEngineManager( |
| mojo::PendingReceiver<ime::mojom::InputEngineManager> receiver) override; |
| void BindInputMethodUserDataService( |
| mojo::PendingReceiver<ime::mojom::InputMethodUserDataService> receiver) |
| override; |
| bool IsISOLevel5ShiftUsedByCurrentInputMethod() const override; |
| bool IsAltGrUsedByCurrentInputMethod() const override; |
| bool ArePositionalShortcutsUsedByCurrentInputMethod() const override; |
| ImeKeyboard* GetImeKeyboard() override; |
| InputMethodUtil* GetInputMethodUtil() override; |
| ComponentExtensionIMEManager* GetComponentExtensionIMEManager() override; |
| bool IsLoginKeyboard(const std::string& layout) const override; |
| std::string GetMigratedInputMethodID( |
| const std::string& input_method_id) override; |
| bool GetMigratedInputMethodIDs( |
| 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; |
| void ImeMenuActivationChanged(bool is_active) override; |
| void NotifyImeMenuItemsChanged( |
| const std::string& engine_id, |
| const std::vector<InputMethodManager::MenuItem>& items) override; |
| void MaybeNotifyImeMenuActivationChanged() override; |
| void OverrideKeyboardKeyset(ImeKeyset keyset) override; |
| void SetImeMenuFeatureEnabled(ImeMenuFeature feature, bool enabled) override; |
| bool GetImeMenuFeatureEnabled(ImeMenuFeature feature) const override; |
| void NotifyObserversImeExtraInputStateChange() override; |
| void NotifyInputMethodExtensionAdded( |
| const std::string& extension_id) override; |
| void NotifyInputMethodExtensionRemoved( |
| const std::string& extension_id) override; |
| |
| private: |
| scoped_refptr<State> state_; |
| uint32_t features_enabled_state_; |
| }; |
| |
| } // namespace input_method |
| } // namespace ash |
| |
| #endif // UI_BASE_IME_ASH_MOCK_INPUT_METHOD_MANAGER_H_ |