Index: views/ime/mock_input_method.h |
diff --git a/views/ime/mock_input_method.h b/views/ime/mock_input_method.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3a1dffb4000a9150bb9b838dfa442ae0b04d77c1 |
--- /dev/null |
+++ b/views/ime/mock_input_method.h |
@@ -0,0 +1,83 @@ |
+// Copyright (c) 2011 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 VIEWS_IME_MOCK_INPUT_METHOD_H_ |
+#define VIEWS_IME_MOCK_INPUT_METHOD_H_ |
+#pragma once |
+ |
+#include "base/basictypes.h" |
+#include "base/compiler_specific.h" |
+#include "views/ime/input_method_base.h" |
+#include "views/view.h" |
+ |
+namespace views { |
+ |
+// A mock InputMethod implementation for testing purpose. |
+class MockInputMethod : public InputMethodBase { |
+ public: |
+ MockInputMethod(); |
+ virtual ~MockInputMethod(); |
+ |
+ // Overridden from InputMethod: |
+ virtual void Init(Widget* widget) OVERRIDE; |
+ virtual void DispatchKeyEvent(const KeyEvent& key) OVERRIDE; |
+ virtual void OnTextInputTypeChanged(View* view) OVERRIDE; |
+ virtual void OnCaretBoundsChanged(View* view) OVERRIDE; |
+ virtual void CancelComposition(View* view) OVERRIDE; |
+ virtual std::string GetInputLocale() OVERRIDE; |
+ virtual base::i18n::TextDirection GetInputTextDirection() OVERRIDE; |
+ virtual bool IsActive() OVERRIDE; |
+ |
+ bool focus_changed() const { return focus_changed_; } |
+ bool text_input_type_changed() const { return text_input_type_changed_; } |
+ bool caret_bounds_changed() const { return caret_bounds_changed_; } |
+ bool cancel_composition_called() const { return cancel_composition_called_; } |
+ |
+ // Clears all internal states and result. |
+ void Clear(); |
+ |
+ void SetCompositionTextForNextKey(const ui::CompositionText& composition); |
+ void SetResultTextForNextKey(const string16& result); |
+ |
+ void SetInputLocale(const std::string& locale); |
+ void SetInputTextDirection(base::i18n::TextDirection direction); |
+ void SetActive(bool active); |
+ |
+ private: |
+ // Overridden from InputMethodBase. |
+ virtual void FocusedViewWillChange() OVERRIDE; |
+ |
+ // Clears boolean states defined below. |
+ void ClearStates(); |
+ |
+ // Clears only composition information and result text. |
+ void ClearResult(); |
+ |
+ // Composition information for the next key event. It'll be cleared |
+ // automatically after dispatching the next key event. |
+ ui::CompositionText composition_; |
+ bool composition_changed_; |
+ |
+ // Result text for the next key event. It'll be cleared automatically after |
+ // dispatching the next key event. |
+ string16 result_text_; |
+ |
+ // Record call state of corresponding methods. They will be set to false |
+ // automatically before dispatching a key event. |
+ bool focus_changed_; |
+ bool text_input_type_changed_; |
+ bool caret_bounds_changed_; |
+ bool cancel_composition_called_; |
+ |
+ // To mock corresponding input method prooperties. |
+ std::string locale_; |
+ base::i18n::TextDirection direction_; |
+ bool active_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MockInputMethod); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // VIEWS_IME_MOCK_INPUT_METHOD_H_ |