| Index: components/arc/ime/arc_ime_service_unittest.cc
|
| diff --git a/components/arc/ime/arc_ime_service_unittest.cc b/components/arc/ime/arc_ime_service_unittest.cc
|
| index d5aac38091d94fc474bd17851207e3b1dff242e8..658dab17c414b31a41e9e3687b9c6152ff89ba37 100644
|
| --- a/components/arc/ime/arc_ime_service_unittest.cc
|
| +++ b/components/arc/ime/arc_ime_service_unittest.cc
|
| @@ -138,6 +138,9 @@ class ArcImeServiceTest : public testing::Test {
|
| std::unique_ptr<ArcImeService> instance_;
|
| FakeArcImeBridge* fake_arc_ime_bridge_; // Owned by |instance_|
|
|
|
| + FakeArcWindowDetector* fake_window_detector_; // Owned by |instance_|
|
| + std::unique_ptr<aura::Window> arc_win_;
|
| +
|
| private:
|
| void SetUp() override {
|
| arc_bridge_service_ = base::MakeUnique<ArcBridgeService>();
|
| @@ -147,9 +150,16 @@ class ArcImeServiceTest : public testing::Test {
|
|
|
| fake_input_method_ = base::MakeUnique<FakeInputMethod>();
|
| instance_->SetInputMethodForTesting(fake_input_method_.get());
|
| +
|
| + fake_window_detector_ = new FakeArcWindowDetector();
|
| + instance_->SetArcWindowDetectorForTesting(
|
| + base::WrapUnique(fake_window_detector_));
|
| + arc_win_ = fake_window_detector_->CreateFakeArcTopLevelWindow();
|
| }
|
|
|
| void TearDown() override {
|
| + arc_win_.reset();
|
| + fake_window_detector_ = nullptr;
|
| fake_arc_ime_bridge_ = nullptr;
|
| instance_.reset();
|
| arc_bridge_service_.reset();
|
| @@ -157,6 +167,8 @@ class ArcImeServiceTest : public testing::Test {
|
| };
|
|
|
| TEST_F(ArcImeServiceTest, HasCompositionText) {
|
| + instance_->OnWindowFocused(arc_win_.get(), nullptr);
|
| +
|
| ui::CompositionText composition;
|
| composition.text = base::UTF8ToUTF16("nonempty text");
|
|
|
| @@ -184,7 +196,8 @@ TEST_F(ArcImeServiceTest, HasCompositionText) {
|
| }
|
|
|
| TEST_F(ArcImeServiceTest, ShowImeIfNeeded) {
|
| - fake_input_method_->SetFocusedTextInputClient(instance_.get());
|
| + instance_->OnWindowFocused(arc_win_.get(), nullptr);
|
| +
|
| instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE);
|
| ASSERT_EQ(0, fake_input_method_->count_show_ime_if_needed());
|
|
|
| @@ -197,14 +210,15 @@ TEST_F(ArcImeServiceTest, ShowImeIfNeeded) {
|
| }
|
|
|
| TEST_F(ArcImeServiceTest, CancelComposition) {
|
| + instance_->OnWindowFocused(arc_win_.get(), nullptr);
|
| +
|
| // The bridge should forward the cancel event to the input method.
|
| - fake_input_method_->SetFocusedTextInputClient(instance_.get());
|
| instance_->OnCancelComposition();
|
| EXPECT_EQ(1, fake_input_method_->count_cancel_composition());
|
| }
|
|
|
| TEST_F(ArcImeServiceTest, InsertChar) {
|
| - fake_input_method_->SetFocusedTextInputClient(instance_.get());
|
| + instance_->OnWindowFocused(arc_win_.get(), nullptr);
|
|
|
| // When text input type is NONE, the event is not forwarded.
|
| instance_->OnTextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE);
|
| @@ -218,22 +232,18 @@ TEST_F(ArcImeServiceTest, InsertChar) {
|
| }
|
|
|
| TEST_F(ArcImeServiceTest, WindowFocusTracking) {
|
| - auto window_detector = base::MakeUnique<FakeArcWindowDetector>();
|
| - std::unique_ptr<aura::Window> arc_win1 =
|
| - window_detector->CreateFakeArcTopLevelWindow();
|
| std::unique_ptr<aura::Window> arc_win2 =
|
| - window_detector->CreateFakeArcTopLevelWindow();
|
| + fake_window_detector_->CreateFakeArcTopLevelWindow();
|
| std::unique_ptr<aura::Window> nonarc_win =
|
| - window_detector->CreateFakeNonArcTopLevelWindow();
|
| - instance_->SetArcWindowDetectorForTesting(std::move(window_detector));
|
| + fake_window_detector_->CreateFakeNonArcTopLevelWindow();
|
|
|
| // ARC window is focused. ArcImeService is set as the text input client.
|
| - instance_->OnWindowFocused(arc_win1.get(), nullptr);
|
| + instance_->OnWindowFocused(arc_win_.get(), nullptr);
|
| EXPECT_EQ(instance_.get(), fake_input_method_->GetTextInputClient());
|
| EXPECT_EQ(1, fake_input_method_->count_set_focused_text_input_client());
|
|
|
| // Focus is moving between ARC windows. No state change should happen.
|
| - instance_->OnWindowFocused(arc_win2.get(), arc_win1.get());
|
| + instance_->OnWindowFocused(arc_win2.get(), arc_win_.get());
|
| EXPECT_EQ(instance_.get(), fake_input_method_->GetTextInputClient());
|
| EXPECT_EQ(1, fake_input_method_->count_set_focused_text_input_client());
|
|
|
| @@ -243,12 +253,12 @@ TEST_F(ArcImeServiceTest, WindowFocusTracking) {
|
| EXPECT_EQ(1, fake_input_method_->count_set_focused_text_input_client());
|
|
|
| // Focus came back to an ARC window. ArcImeService is re-attached.
|
| - instance_->OnWindowFocused(arc_win1.get(), nonarc_win.get());
|
| + instance_->OnWindowFocused(arc_win_.get(), nonarc_win.get());
|
| EXPECT_EQ(instance_.get(), fake_input_method_->GetTextInputClient());
|
| EXPECT_EQ(2, fake_input_method_->count_set_focused_text_input_client());
|
|
|
| // Focus is moving out.
|
| - instance_->OnWindowFocused(nullptr, arc_win1.get());
|
| + instance_->OnWindowFocused(nullptr, arc_win_.get());
|
| EXPECT_EQ(nullptr, fake_input_method_->GetTextInputClient());
|
| EXPECT_EQ(2, fake_input_method_->count_set_focused_text_input_client());
|
| }
|
|
|