Index: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
index 3fdf377407a30aaa24cd644fe4acc739cc93c1d9..811b408129c1c95da96e1a0abcae519d816222fd 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc |
@@ -42,12 +42,10 @@ |
#include "content/browser/renderer_host/render_widget_host_delegate.h" |
#include "content/browser/renderer_host/render_widget_host_impl.h" |
#include "content/browser/renderer_host/resize_lock.h" |
-#include "content/browser/renderer_host/text_input_manager.h" |
#include "content/browser/web_contents/web_contents_view_aura.h" |
#include "content/common/host_shared_bitmap_manager.h" |
#include "content/common/input/synthetic_web_input_event_builders.h" |
#include "content/common/input_messages.h" |
-#include "content/common/text_input_state.h" |
#include "content/common/view_messages.h" |
#include "content/public/browser/render_widget_host_view.h" |
#include "content/public/browser/render_widget_host_view_frame_subscriber.h" |
@@ -57,7 +55,6 @@ |
#include "content/public/test/test_browser_context.h" |
#include "content/test/test_render_view_host.h" |
#include "content/test/test_web_contents.h" |
-#include "ipc/ipc_message.h" |
#include "ipc/ipc_test_sink.h" |
#include "media/base/video_frame.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -165,9 +162,6 @@ |
const NativeWebKeyboardEvent* last_event() const { return last_event_.get(); } |
void set_widget_host(RenderWidgetHostImpl* rwh) { rwh_ = rwh; } |
void set_is_fullscreen(bool is_fullscreen) { is_fullscreen_ = is_fullscreen; } |
- TextInputManager* GetTextInputManager() override { |
- return &text_input_manager_; |
- } |
protected: |
// RenderWidgetHostDelegate: |
@@ -190,7 +184,6 @@ |
std::unique_ptr<NativeWebKeyboardEvent> last_event_; |
RenderWidgetHostImpl* rwh_; |
bool is_fullscreen_; |
- TextInputManager text_input_manager_; |
DISALLOW_COPY_AND_ASSIGN(MockRenderWidgetHostDelegate); |
}; |
@@ -550,30 +543,6 @@ |
} |
protected: |
- BrowserContext* browser_context() { return browser_context_.get(); } |
- |
- // Sets the |view| active in TextInputManager with the given |type|. |type| |
- // cannot be ui::TEXT_INPUT_TYPE_NONE. |
- void ActivateViewForTextInputManager(RenderWidgetHostViewBase* view, |
- ui::TextInputType type) { |
- DCHECK_NE(ui::TEXT_INPUT_TYPE_NONE, type); |
- TextInputManager* manager = |
- static_cast<RenderWidgetHostImpl*>(view->GetRenderWidgetHost()) |
- ->delegate() |
- ->GetTextInputManager(); |
- if (manager->GetActiveWidget()) { |
- manager->active_view_for_testing()->TextInputStateChanged( |
- TextInputState()); |
- } |
- |
- if (!view) |
- return; |
- |
- TextInputState state_with_type_text; |
- state_with_type_text.type = type; |
- view->TextInputStateChanged(state_with_type_text); |
- } |
- |
// If true, then calls RWH::Shutdown() instead of deleting RWH. |
bool widget_host_uses_shutdown_to_destroy_; |
@@ -1096,7 +1065,6 @@ |
TEST_F(RenderWidgetHostViewAuraTest, SetCompositionText) { |
view_->InitAsChild(NULL); |
view_->Show(); |
- ActivateViewForTextInputManager(view_, ui::TEXT_INPUT_TYPE_TEXT); |
ui::CompositionText composition_text; |
composition_text.text = base::ASCIIToUTF16("|a|b"); |
@@ -1151,7 +1119,6 @@ |
TEST_F(RenderWidgetHostViewAuraTest, FinishCompositionByMouse) { |
view_->InitAsChild(NULL); |
view_->Show(); |
- ActivateViewForTextInputManager(view_, ui::TEXT_INPUT_TYPE_TEXT); |
ui::CompositionText composition_text; |
composition_text.text = base::ASCIIToUTF16("|a|b"); |
@@ -4027,191 +3994,4 @@ |
RenderViewHostFactory::set_is_real_render_view_host(false); |
} |
-// ---------------------------------------------------------------------------- |
-// TextInputManager and IME-Related Tests |
- |
-// A group of tests which verify that the IME method results are routed to the |
-// right RenderWidget in the OOPIF structure. |
-// In each test, 3 views are created where one is in process with main frame and |
-// the other two are in distinct processes (this makes a total of 4 RWHVs). Then |
-// each test will verify the correctness of routing for one of the IME result |
-// methods. The method is called on ui::TextInputClient (i.e., RWHV for the tab |
-// in aura) and then the test verifies that the IPC is routed to the |
-// RenderWidget corresponding to the active view (i.e., the RenderWidget |
-// with focused <input>). |
-class InputMethodResultAuraTest : public RenderWidgetHostViewAuraTest { |
- public: |
- InputMethodResultAuraTest() {} |
- ~InputMethodResultAuraTest() override {} |
- |
- void SetUp() override { |
- RenderWidgetHostViewAuraTest::SetUp(); |
- InitializeAura(); |
- |
- view_for_first_process_ = CreateViewForProcess(tab_process()); |
- |
- second_process_host_ = CreateNewProcessHost(); |
- view_for_second_process_ = CreateViewForProcess(second_process_host_); |
- |
- third_process_host_ = CreateNewProcessHost(); |
- view_for_third_process_ = CreateViewForProcess(third_process_host_); |
- |
- views_.insert(views_.begin(), |
- {tab_view(), view_for_first_process_, |
- view_for_second_process_, view_for_third_process_}); |
- processes_.insert(processes_.begin(), |
- {tab_process(), tab_process(), second_process_host_, |
- third_process_host_}); |
- active_view_sequence_.insert(active_view_sequence_.begin(), |
- {0, 1, 2, 1, 1, 3, 0, 3, 1}); |
- } |
- |
- void TearDown() override { |
- RenderWidgetHost* host_for_second_process = |
- view_for_second_process_->GetRenderWidgetHost(); |
- view_for_second_process_->Destroy(); |
- delete host_for_second_process; |
- |
- RenderWidgetHost* host_for_third_process = |
- view_for_third_process_->GetRenderWidgetHost(); |
- view_for_third_process_->Destroy(); |
- delete host_for_third_process; |
- |
- // This one is in-process with tab. The base class will clean the widget. |
- view_for_first_process_->Destroy(); |
- |
- RenderWidgetHostViewAuraTest::TearDown(); |
- } |
- |
- protected: |
- const IPC::Message* RunAndReturnIPCSent(const base::Closure closure, |
- MockRenderProcessHost* process, |
- int32_t message_id) { |
- process->sink().ClearMessages(); |
- closure.Run(); |
- return process->sink().GetFirstMessageMatching(message_id); |
- } |
- |
- MockRenderWidgetHostDelegate* render_widget_host_delegate() const { |
- return delegates_.back().get(); |
- } |
- |
- ui::TextInputClient* text_input_client() const { return view_; } |
- |
- bool has_composition_text() const { |
- return tab_view()->has_composition_text_; |
- } |
- |
- MockRenderProcessHost* CreateNewProcessHost() { |
- MockRenderProcessHost* process_host = |
- new MockRenderProcessHost(browser_context()); |
- return process_host; |
- } |
- |
- RenderWidgetHostImpl* CreateRenderWidgetHostForProcess( |
- MockRenderProcessHost* process_host) { |
- return new RenderWidgetHostImpl(render_widget_host_delegate(), process_host, |
- process_host->GetNextRoutingID(), false); |
- } |
- |
- TestRenderWidgetHostView* CreateViewForProcess( |
- MockRenderProcessHost* process_host) { |
- RenderWidgetHostImpl* host = CreateRenderWidgetHostForProcess(process_host); |
- TestRenderWidgetHostView* view = new TestRenderWidgetHostView(host); |
- host->SetView(view); |
- return view; |
- } |
- |
- void SetHasCompositionTextToTrue() { |
- ui::CompositionText composition_text; |
- composition_text.text = base::ASCIIToUTF16("text"); |
- tab_view()->SetCompositionText(composition_text); |
- EXPECT_TRUE(has_composition_text()); |
- } |
- |
- MockRenderProcessHost* tab_process() const { return process_host_; } |
- |
- RenderWidgetHostViewAura* tab_view() const { return view_; } |
- |
- std::vector<RenderWidgetHostViewBase*> views_; |
- std::vector<MockRenderProcessHost*> processes_; |
- // A sequence of indices in [0, 3] which determines the index of a RWHV in |
- // |views_|. This sequence is used in the tests to sequentially make a RWHV |
- // active for a subsequent IME result method call. |
- std::vector<size_t> active_view_sequence_; |
- |
- private: |
- // This will initialize |window_| in RenderWidgetHostViewAura. It is needed |
- // for RenderWidgetHostViewAura::GetInputMethod() to work. |
- void InitializeAura() { |
- view_->InitAsChild(nullptr); |
- view_->Show(); |
- } |
- |
- TestRenderWidgetHostView* view_for_first_process_; |
- MockRenderProcessHost* second_process_host_; |
- TestRenderWidgetHostView* view_for_second_process_; |
- MockRenderProcessHost* third_process_host_; |
- TestRenderWidgetHostView* view_for_third_process_; |
- |
- DISALLOW_COPY_AND_ASSIGN(InputMethodResultAuraTest); |
-}; |
- |
-// This test verifies that ui::TextInputClient::SetCompositionText call leads to |
-// IPC message InputMsg_ImeSetComposition being sent to the right renderer |
-// process. |
-TEST_F(InputMethodResultAuraTest, SetCompositionText) { |
- base::Closure ime_call = |
- base::Bind(&ui::TextInputClient::SetCompositionText, |
- base::Unretained(text_input_client()), ui::CompositionText()); |
- for (auto index : active_view_sequence_) { |
- ActivateViewForTextInputManager(views_[index], ui::TEXT_INPUT_TYPE_TEXT); |
- EXPECT_TRUE(!!RunAndReturnIPCSent(ime_call, processes_[index], |
- InputMsg_ImeSetComposition::ID)); |
- } |
-} |
- |
-// This test verifies that ui::TextInputClient::ConfirmCompositionText call |
-// leads to IPC message InputMsg_ImeConfirmComposition being sent to the right |
-// renderer process. |
-TEST_F(InputMethodResultAuraTest, ConfirmCompositionText) { |
- base::Closure ime_call = |
- base::Bind(&ui::TextInputClient::ConfirmCompositionText, |
- base::Unretained(text_input_client())); |
- for (auto index : active_view_sequence_) { |
- ActivateViewForTextInputManager(views_[index], ui::TEXT_INPUT_TYPE_TEXT); |
- SetHasCompositionTextToTrue(); |
- EXPECT_TRUE(!!RunAndReturnIPCSent(ime_call, processes_[index], |
- InputMsg_ImeConfirmComposition::ID)); |
- } |
-} |
- |
-// This test verifies that ui::TextInputClient::ConfirmCompositionText call |
-// leads to IPC message InputMsg_ImeSetComposition being sent to the right |
-// renderer process. |
-TEST_F(InputMethodResultAuraTest, ClearCompositionText) { |
- base::Closure ime_call = |
- base::Bind(&ui::TextInputClient::ClearCompositionText, |
- base::Unretained(text_input_client())); |
- for (auto index : active_view_sequence_) { |
- ActivateViewForTextInputManager(views_[index], ui::TEXT_INPUT_TYPE_TEXT); |
- SetHasCompositionTextToTrue(); |
- EXPECT_TRUE(!!RunAndReturnIPCSent(ime_call, processes_[index], |
- InputMsg_ImeSetComposition::ID)); |
- } |
-} |
- |
-// This test verifies that ui::TextInputClient::InsertText call leads to IPC |
-// message InputMsg_ImeSetComposition being sent to the right renderer process. |
-TEST_F(InputMethodResultAuraTest, InsertText) { |
- base::Closure ime_call = |
- base::Bind(&ui::TextInputClient::InsertText, |
- base::Unretained(text_input_client()), base::string16()); |
- for (auto index : active_view_sequence_) { |
- ActivateViewForTextInputManager(views_[index], ui::TEXT_INPUT_TYPE_TEXT); |
- EXPECT_TRUE(!!RunAndReturnIPCSent(ime_call, processes_[index], |
- InputMsg_ImeConfirmComposition::ID)); |
- } |
-} |
- |
} // namespace content |