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

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: [WIP] 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
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..a68f53cd1c71f8a48d5672d0f3b8b4cc1a339e7b 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,77 @@
#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:
+ virtual void SetTextInputMode(HWND window_handle,
+ ui::TextInputMode input_mode) OVERRIDE {
+ ++call_count_;
+ window_handle_ = window_handle;
+ input_mode_ = input_mode;
+ }
+
+ void Reset() {
+ call_count_ = 0;
+ }
+
+ HWND window_handle_;
Yohei Yukawa 2013/08/07 02:42:14 please initialize these fields in the constructor.
Yohei Yukawa 2013/08/07 02:42:14 please put private:
yoichio 2013/08/07 03:33:55 Done.
+ ui::TextInputMode input_mode_;
+ size_t call_count_;
+};
Yohei Yukawa 2013/08/07 02:42:14 Can we put this? DISALLOW_COPY_AND_ASSIGN(MockIM
yoichio 2013/08/07 03:33:55 Done.
+
+// 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()));
Yohei Yukawa 2013/08/07 02:42:14 Please make sure this indent is correct in the sty
yoichio 2013/08/07 03:33:55 Done.
+ 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 +93,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 +131,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 +169,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);

Powered by Google App Engine
This is Rietveld 408576698