| Index: components/arc/ime/arc_ime_bridge_unittest.cc
|
| diff --git a/components/arc/ime/arc_ime_bridge_unittest.cc b/components/arc/ime/arc_ime_bridge_unittest.cc
|
| index 06775260d7927d0f00fc7466268edd8e469132c4..bddb887d834573039db1e1317c59dc1a0920c02f 100644
|
| --- a/components/arc/ime/arc_ime_bridge_unittest.cc
|
| +++ b/components/arc/ime/arc_ime_bridge_unittest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "components/arc/test/fake_arc_bridge_service.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/base/ime/composition_text.h"
|
| +#include "ui/base/ime/dummy_input_method.h"
|
|
|
| namespace arc {
|
|
|
| @@ -26,6 +27,31 @@ class FakeArcImeIpcHost : public ArcImeIpcHost {
|
| }
|
| };
|
|
|
| +class FakeInputMethod : public ui::DummyInputMethod {
|
| + public:
|
| + FakeInputMethod() : client_(nullptr), count_show_ime_if_needed_(0) {}
|
| +
|
| + void SetFocusedTextInputClient(ui::TextInputClient* client) override {
|
| + client_ = client;
|
| + }
|
| +
|
| + ui::TextInputClient* GetTextInputClient() const override {
|
| + return client_;
|
| + }
|
| +
|
| + void ShowImeIfNeeded() override {
|
| + count_show_ime_if_needed_++;
|
| + }
|
| +
|
| + int count_show_ime_if_needed() const {
|
| + return count_show_ime_if_needed_;
|
| + }
|
| +
|
| + private:
|
| + ui::TextInputClient* client_;
|
| + int count_show_ime_if_needed_;
|
| +};
|
| +
|
| } // namespace
|
|
|
| class ArcImeBridgeTest : public testing::Test {
|
| @@ -34,6 +60,7 @@ class ArcImeBridgeTest : public testing::Test {
|
|
|
| protected:
|
| scoped_ptr<FakeArcBridgeService> fake_arc_bridge_service_;
|
| + scoped_ptr<FakeInputMethod> fake_input_method_;
|
| scoped_ptr<ArcImeBridge> instance_;
|
|
|
| private:
|
| @@ -41,6 +68,9 @@ class ArcImeBridgeTest : public testing::Test {
|
| fake_arc_bridge_service_.reset(new FakeArcBridgeService);
|
| instance_.reset(new ArcImeBridge(fake_arc_bridge_service_.get()));
|
| instance_->SetIpcHostForTesting(make_scoped_ptr(new FakeArcImeIpcHost));
|
| +
|
| + fake_input_method_.reset(new FakeInputMethod);
|
| + instance_->SetInputMethodForTesting(fake_input_method_.get());
|
| }
|
|
|
| void TearDown() override {
|
| @@ -76,4 +106,24 @@ TEST_F(ArcImeBridgeTest, HasCompositionText) {
|
| EXPECT_FALSE(instance_->HasCompositionText());
|
| }
|
|
|
| +TEST_F(ArcImeBridgeTest, ShowImeIfNeeded) {
|
| + fake_input_method_->SetFocusedTextInputClient(instance_.get());
|
| + instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE);
|
| + ASSERT_EQ(0, fake_input_method_->count_show_ime_if_needed());
|
| +
|
| + instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_TEXT);
|
| + EXPECT_EQ(1, fake_input_method_->count_show_ime_if_needed());
|
| +
|
| + // The type is not changing, hence no call.
|
| + instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_TEXT);
|
| + EXPECT_EQ(1, fake_input_method_->count_show_ime_if_needed());
|
| +
|
| + instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_SEARCH);
|
| + EXPECT_EQ(2, fake_input_method_->count_show_ime_if_needed());
|
| +
|
| + // Change to NONE should not trigger the showing event.
|
| + instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE);
|
| + EXPECT_EQ(2, fake_input_method_->count_show_ime_if_needed());
|
| +}
|
| +
|
| } // namespace arc
|
|
|