Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: content/browser/renderer_host/render_widget_host_view_win_browsertest.cc

Issue 21189003: Change IME conversion status by focusing input element (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit pick Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_win.cc ('k') | content/content_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/render_widget_host_view_win_browsertest.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_win_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_win_browsertest.cc
index 77763ab97ceeca3d622776f5878becdfb736a77f..76070bc70e5accb2ba3603a9441bc2df81284799 100644
--- a/content/browser/renderer_host/render_widget_host_view_win_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_win_browsertest.cc
@@ -2,8 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <vector>
+
#include "base/command_line.h"
#include "base/win/metro.h"
+#include "content/browser/renderer_host/render_widget_host_view_win.h"
+#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/test_utils.h"
@@ -11,14 +15,94 @@
#include "content/shell/shell.h"
#include "content/test/content_browser_test_utils.h"
#include "content/test/content_browser_test.h"
+#include "ui/base/ime/composition_text.h"
#include "ui/base/ime/text_input_type.h"
+#include "ui/base/ime/win/imm32_manager.h"
#include "ui/base/ime/win/mock_tsf_bridge.h"
#include "ui/base/ime/win/tsf_bridge.h"
namespace content {
-class RenderWidgetHostViewWinTest : public ContentBrowserTest {
+namespace {
+
+class MockIMM32Manager : public ui::IMM32Manager {
+ public:
+ MockIMM32Manager()
+ : window_handle_(NULL),
+ input_mode_(ui::TEXT_INPUT_MODE_DEFAULT),
+ call_count_(0) {
+ }
+ virtual ~MockIMM32Manager() {}
+
+ virtual void SetTextInputMode(HWND window_handle,
+ ui::TextInputMode input_mode) OVERRIDE {
+ ++call_count_;
+ window_handle_ = window_handle;
+ input_mode_ = input_mode;
+ }
+
+ void Reset() {
+ window_handle_ = NULL;
+ input_mode_ = ui::TEXT_INPUT_MODE_DEFAULT;
+ call_count_ = 0;
+ }
+
+ HWND window_handle() const { return window_handle_; }
+ ui::TextInputMode input_mode() const { return input_mode_; }
+ size_t call_count() const { return call_count_; }
+
+ private:
+ HWND window_handle_;
+ ui::TextInputMode input_mode_;
+ size_t call_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockIMM32Manager);
+};
+
+// Testing class serving initialized RenderWidgetHostViewWin instance;
+class RenderWidgetHostViewWinBrowserTest : public ContentBrowserTest {
+ public:
+ RenderWidgetHostViewWinBrowserTest() {}
+
+ virtual void SetUpOnMainThread() OVERRIDE {
+ ContentBrowserTest::SetUpOnMainThread();
+
+ NavigateToURL(shell(), GURL("about:blank"));
+
+ view_ = static_cast<RenderWidgetHostViewWin*>(
+ RenderWidgetHostViewPort::FromRWHV(
+ shell()->web_contents()->GetRenderViewHost()->GetView()));
+ CHECK(view_);
+ }
+
+ protected:
+ RenderWidgetHostViewWin* view_;
+};
+
+} // namespace
+
+IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinBrowserTest,
+ TextInputTypeChanged) {
+ ASSERT_TRUE(view_->m_hWnd);
+
+ MockIMM32Manager* mock = new MockIMM32Manager();
+ mock->Reset();
+ view_->imm32_manager_.reset(mock);
+ view_->TextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE, false,
+ ui::TEXT_INPUT_MODE_EMAIL);
+
+ EXPECT_EQ(1, mock->call_count());
+ EXPECT_EQ(view_->m_hWnd, mock->window_handle());
+ EXPECT_EQ(ui::TEXT_INPUT_MODE_EMAIL, mock->input_mode());
+
+ mock->Reset();
+ view_->TextInputTypeChanged(ui::TEXT_INPUT_TYPE_NONE, false,
+ ui::TEXT_INPUT_MODE_EMAIL);
+ EXPECT_EQ(0, mock->call_count());
+}
+
+class RenderWidgetHostViewWinTSFTest : public ContentBrowserTest {
public:
- RenderWidgetHostViewWinTest() {}
+ RenderWidgetHostViewWinTSFTest() {}
virtual void SetUpCommandLine(CommandLine* command_line) {
command_line->AppendSwitch(switches::kEnableTextServicesFramework);
@@ -26,7 +110,7 @@ class RenderWidgetHostViewWinTest : public ContentBrowserTest {
};
// crbug.com/151798
-IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTest,
+IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTSFTest,
DISABLED_SwichToPasswordField) {
ui::MockTSFBridge mock_bridge;
ui::TSFBridge* old_bridge = ui::TSFBridge::ReplaceForTesting(&mock_bridge);
@@ -64,7 +148,7 @@ IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTest,
}
// crbug.com/151798
-IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTest,
+IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTSFTest,
DISABLED_SwitchToSameField) {
ui::MockTSFBridge mock_bridge;
ui::TSFBridge* old_bridge = ui::TSFBridge::ReplaceForTesting(&mock_bridge);
@@ -102,7 +186,7 @@ IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTest,
}
// crbug.com/151798
-IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTest,
+IN_PROC_BROWSER_TEST_F(RenderWidgetHostViewWinTSFTest,
DISABLED_SwitchToSamePasswordField) {
ui::MockTSFBridge mock_bridge;
ui::TSFBridge* old_bridge = ui::TSFBridge::ReplaceForTesting(&mock_bridge);
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_win.cc ('k') | content/content_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698