Index: ui/base/ime/input_method_base_unittest.cc |
diff --git a/ui/base/ime/input_method_base_unittest.cc b/ui/base/ime/input_method_base_unittest.cc |
index a8489e7bfea5c199bc292be6462290def49cacee..830bba0cc42189e4a3158ce8a850612b71353d39 100644 |
--- a/ui/base/ime/input_method_base_unittest.cc |
+++ b/ui/base/ime/input_method_base_unittest.cc |
@@ -12,6 +12,8 @@ |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/ime/dummy_text_input_client.h" |
#include "ui/base/ime/input_method_observer.h" |
+#include "ui/base/ime/text_input_focus_manager.h" |
+#include "ui/base/ui_base_switches_util.h" |
#include "ui/events/event.h" |
namespace ui { |
@@ -52,9 +54,15 @@ class ClientChangeVerifier { |
// Verifies the result satisfies the expectation or not. |
void Verify() { |
- EXPECT_EQ(call_expected_, on_will_change_focused_client_called_); |
- EXPECT_EQ(call_expected_, on_did_change_focused_client_called_); |
- EXPECT_EQ(call_expected_, on_text_input_state_changed_); |
+ if (switches::IsTextInputFocusManagerEnabled()) { |
+ EXPECT_FALSE(on_will_change_focused_client_called_); |
+ EXPECT_FALSE(on_did_change_focused_client_called_); |
+ EXPECT_FALSE(on_text_input_state_changed_); |
+ } else { |
+ EXPECT_EQ(call_expected_, on_will_change_focused_client_called_); |
+ EXPECT_EQ(call_expected_, on_did_change_focused_client_called_); |
+ EXPECT_EQ(call_expected_, on_text_input_state_changed_); |
+ } |
} |
void OnWillChangeFocusedClient(TextInputClient* focused_before, |
@@ -245,6 +253,16 @@ class MockTextInputClient : public DummyTextInputClient { |
typedef ScopedObserver<InputMethod, InputMethodObserver> |
InputMethodScopedObserver; |
+void SetFocusedTextInputClient(InputMethod* input_method, |
+ TextInputClient* text_input_client) { |
+ if (switches::IsTextInputFocusManagerEnabled()) { |
+ TextInputFocusManager::GetInstance()->FocusTextInputClient( |
+ text_input_client); |
+ } else { |
+ input_method->SetFocusedTextInputClient(text_input_client); |
+ } |
+} |
+ |
TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
DummyTextInputClient text_input_client_1st; |
DummyTextInputClient text_input_client_2nd; |
@@ -263,7 +281,7 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
ASSERT_EQ(NULL, input_method.GetTextInputClient()); |
verifier.ExpectClientChange(NULL, &text_input_client_1st); |
- input_method.SetFocusedTextInputClient(&text_input_client_1st); |
+ SetFocusedTextInputClient(&input_method, &text_input_client_1st); |
EXPECT_EQ(&text_input_client_1st, input_method.GetTextInputClient()); |
verifier.Verify(); |
} |
@@ -271,7 +289,7 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
{ |
SCOPED_TRACE("Redundant focus events must be ignored"); |
verifier.ExpectClientDoesNotChange(); |
- input_method.SetFocusedTextInputClient(&text_input_client_1st); |
+ SetFocusedTextInputClient(&input_method, &text_input_client_1st); |
verifier.Verify(); |
} |
@@ -281,7 +299,7 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
ASSERT_EQ(&text_input_client_1st, input_method.GetTextInputClient()); |
verifier.ExpectClientChange(&text_input_client_1st, |
&text_input_client_2nd); |
- input_method.SetFocusedTextInputClient(&text_input_client_2nd); |
+ SetFocusedTextInputClient(&input_method, &text_input_client_2nd); |
EXPECT_EQ(&text_input_client_2nd, input_method.GetTextInputClient()); |
verifier.Verify(); |
} |
@@ -291,7 +309,7 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
ASSERT_EQ(&text_input_client_2nd, input_method.GetTextInputClient()); |
verifier.ExpectClientChange(&text_input_client_2nd, NULL); |
- input_method.SetFocusedTextInputClient(NULL); |
+ SetFocusedTextInputClient(&input_method, NULL); |
EXPECT_EQ(NULL, input_method.GetTextInputClient()); |
verifier.Verify(); |
} |
@@ -299,12 +317,16 @@ TEST_F(InputMethodBaseTest, SetFocusedTextInputClient) { |
{ |
SCOPED_TRACE("Redundant focus events must be ignored"); |
verifier.ExpectClientDoesNotChange(); |
- input_method.SetFocusedTextInputClient(NULL); |
+ SetFocusedTextInputClient(&input_method, NULL); |
verifier.Verify(); |
} |
} |
TEST_F(InputMethodBaseTest, DetachTextInputClient) { |
+ // DetachTextInputClient is not supported when IsTextInputFocusManagerEnabled. |
+ if (switches::IsTextInputFocusManagerEnabled()) |
+ return; |
+ |
DummyTextInputClient text_input_client; |
DummyTextInputClient text_input_client_the_other; |
@@ -356,7 +378,7 @@ TEST_F(InputMethodBaseTest, CandidateWindowEvents) { |
input_method_base.OnFocus(); |
verifier.ExpectClientChange(NULL, &text_input_client); |
- input_method_base.SetFocusedTextInputClient(&text_input_client); |
+ SetFocusedTextInputClient(&input_method_base, &text_input_client); |
EXPECT_EQ(0, text_input_client.shown_event_count()); |
EXPECT_EQ(0, text_input_client.updated_event_count()); |