Chromium Code Reviews| Index: chrome/browser/chromeos/event_rewriter_unittest.cc |
| diff --git a/chrome/browser/ui/ash/event_rewriter_unittest.cc b/chrome/browser/chromeos/event_rewriter_unittest.cc |
| similarity index 99% |
| rename from chrome/browser/ui/ash/event_rewriter_unittest.cc |
| rename to chrome/browser/chromeos/event_rewriter_unittest.cc |
| index c22d9ce42bc246bc4d3126d599d50281cf86045e..82d7d52f0d125ff8eaac48a4dcb74d2d618251f7 100644 |
| --- a/chrome/browser/ui/ash/event_rewriter_unittest.cc |
| +++ b/chrome/browser/chromeos/event_rewriter_unittest.cc |
| @@ -1,40 +1,41 @@ |
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/ui/ash/event_rewriter.h" |
| +#include "chrome/browser/chromeos/event_rewriter.h" |
| -#include "base/basictypes.h" |
| -#include "base/command_line.h" |
| -#include "base/prefs/pref_member.h" |
| -#include "base/strings/stringprintf.h" |
| -#include "chrome/common/pref_names.h" |
| -#include "chrome/test/base/testing_pref_service_syncable.h" |
| -#include "testing/gtest/include/gtest/gtest.h" |
| -#include "ui/events/event.h" |
| - |
| -#if defined(OS_CHROMEOS) |
| #include <X11/keysym.h> |
| #include <X11/XF86keysym.h> |
| #include <X11/Xlib.h> |
| +#undef Bool |
| +#undef None |
| +#undef RootWindow |
| #include "ash/test/ash_test_base.h" |
| #include "ash/wm/window_state.h" |
| +#include "base/basictypes.h" |
| +#include "base/command_line.h" |
| +#include "base/prefs/pref_member.h" |
| +#include "base/strings/stringprintf.h" |
| #include "chrome/browser/chromeos/input_method/input_method_configuration.h" |
| #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" |
| #include "chrome/browser/chromeos/login/mock_user_manager.h" |
| #include "chrome/browser/chromeos/login/user_manager.h" |
| #include "chrome/browser/chromeos/preferences.h" |
| +#include "chrome/common/pref_names.h" |
| +#include "chrome/test/base/testing_pref_service_syncable.h" |
| #include "chromeos/chromeos_switches.h" |
| #include "chromeos/ime/fake_xkeyboard.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| #include "ui/aura/window.h" |
| +#include "ui/events/event.h" |
| #include "ui/events/test/events_test_utils_x11.h" |
| #include "ui/events/x/touch_factory_x11.h" |
| #include "ui/gfx/x/x11_types.h" |
| namespace { |
| -std::string GetRewrittenEventAsString(EventRewriter* rewriter, |
| +std::string GetRewrittenEventAsString(chromeos::EventRewriter* rewriter, |
| ui::KeyboardCode ui_keycode, |
| int ui_flags, |
| ui::EventType ui_type, |
| @@ -45,8 +46,8 @@ std::string GetRewrittenEventAsString(EventRewriter* rewriter, |
| XEvent* xevent = xev; |
| xevent->xkey.keycode = x_keycode; |
| xevent->xkey.state = x_state; |
| - ui::KeyEvent keyevent(xev, false /* is_char */); |
| - rewriter->RewriteForTesting(&keyevent); |
| + rewriter->RewriteForTesting(xevent); |
| + ui::KeyEvent keyevent(xevent, false /* is_char */); |
| return base::StringPrintf( |
| "ui_keycode=%d ui_flags=%d ui_type=%d x_keycode=%u x_state=%u x_type=%d", |
| keyevent.key_code(), keyevent.flags(), keyevent.type(), |
| @@ -66,7 +67,9 @@ std::string GetExpectedResultAsString(ui::KeyboardCode ui_keycode, |
| } // namespace |
| -class EventRewriterTest : public testing::Test { |
| +namespace chromeos { |
| + |
| +class EventRewriterTest : public ash::test::AshTestBase { |
| public: |
| EventRewriterTest() |
| : display_(gfx::GetXDisplay()), |
| @@ -172,9 +175,12 @@ class EventRewriterTest : public testing::Test { |
| new chromeos::input_method::MockInputMethodManager; |
| chromeos::input_method::InitializeForTesting( |
| input_method_manager_mock_); // pass ownership |
| + |
| + AshTestBase::SetUp(); |
| } |
| virtual void TearDown() { |
| + AshTestBase::TearDown(); |
| // Shutdown() deletes the IME mock object. |
| chromeos::input_method::Shutdown(); |
| } |
| @@ -185,7 +191,9 @@ class EventRewriterTest : public testing::Test { |
| void RewriteLocatedEvent(EventRewriter* rewriter, |
|
Daniel Erat
2014/02/14 15:56:29
rename this to RewriteMouseEvent() and make it tak
sadrul
2014/02/14 17:23:14
Done.
|
| ui::LocatedEvent* event) { |
| - rewriter->RewriteLocatedEvent(event); |
| + XEvent* xevent = event->native_event(); |
| + rewriter->RewriteLocatedEvent(xevent); |
| + *event = ui::MouseEvent(xevent); |
| } |
| Display* display_; |
| @@ -278,14 +286,6 @@ class EventRewriterTest : public testing::Test { |
| chromeos::input_method::MockInputMethodManager* input_method_manager_mock_; |
| }; |
| -#else |
| -class EventRewriterTest : public testing::Test { |
| - public: |
| - EventRewriterTest() {} |
| - virtual ~EventRewriterTest() {} |
| -}; |
| -#endif |
| - |
| TEST_F(EventRewriterTest, TestGetDeviceType) { |
| // This is the typical string which an Apple keyboard sends. |
| EXPECT_EQ(EventRewriter::kDeviceAppleKeyboard, |
| @@ -339,7 +339,6 @@ TEST_F(EventRewriterTest, TestDeviceAddedOrRemoved) { |
| EXPECT_EQ(2U, rewriter.device_id_to_type_for_testing().size()); |
| } |
| -#if defined(OS_CHROMEOS) |
| TEST_F(EventRewriterTest, TestRewriteCommandToControl) { |
| // First, test with a PC keyboard. |
| TestingPrefServiceSyncable prefs; |
| @@ -2225,6 +2224,9 @@ TEST_F(EventRewriterTest, TestRewriteFunctionKeys) { |
| }; |
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
| + // XKeysymToKeycode returns zero for unknown keys. So ignore those. |
| + if (tests[i].output_native == 0) |
| + continue; |
| EXPECT_EQ(GetExpectedResultAsString(tests[i].output, |
| tests[i].output_mods, |
| ui::ET_KEY_PRESSED, |
| @@ -2306,8 +2308,8 @@ TEST_F(EventRewriterTest, TestRewriteKeyEventSentByXSendEvent) { |
| XEvent* xevent = xev; |
| xevent->xkey.keycode = keycode_control_l_; |
| xevent->xkey.send_event = True; // XSendEvent() always does this. |
| + rewriter.RewriteForTesting(xevent); |
| ui::KeyEvent keyevent(xev, false /* is_char */); |
| - rewriter.RewriteForTesting(&keyevent); |
| rewritten_event = base::StringPrintf( |
| "ui_keycode=%d ui_flags=%d ui_type=%d " |
| "x_keycode=%u x_state=%u x_type=%d", |
| @@ -2335,7 +2337,7 @@ class EventRewriterAshTest : public ash::test::AshTestBase { |
| } |
| virtual ~EventRewriterAshTest() {} |
| - bool RewriteFunctionKeys(ui::KeyEvent* event) { |
| + bool RewriteFunctionKeys(XEvent* event) { |
| return rewriter_.RewriteFunctionKeys(event); |
| } |
| @@ -2359,14 +2361,12 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
| xev_f1.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0); |
| XEvent* xevent = xev_f1; |
| xevent->xkey.keycode = keycode_f1; |
| - ui::KeyEvent press_f1(xev_f1, false); |
| - ui::Event::DispatcherApi dispatch_helper(&press_f1); |
| - dispatch_helper.set_target(window.get()); |
| // Simulate an apps v2 window that has requested top row keys as function |
| // keys. The event should not be rewritten. |
| window_state->set_top_row_keys_are_function_keys(true); |
| - ASSERT_FALSE(RewriteFunctionKeys(&press_f1)); |
| + ASSERT_FALSE(RewriteFunctionKeys(xevent)); |
| + ui::KeyEvent press_f1(xev_f1, false); |
| ASSERT_EQ(ui::VKEY_F1, press_f1.key_code()); |
| // The event should also not be rewritten if the send-function-keys pref is |
| @@ -2374,16 +2374,19 @@ TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { |
| BooleanPrefMember send_function_keys_pref; |
| send_function_keys_pref.Init(prefs::kLanguageSendFunctionKeys, &prefs_); |
| send_function_keys_pref.SetValue(true); |
| - ASSERT_FALSE(RewriteFunctionKeys(&press_f1)); |
| + ASSERT_FALSE(RewriteFunctionKeys(xevent)); |
| + press_f1 = ui::KeyEvent(xev_f1, false); |
| ASSERT_EQ(ui::VKEY_F1, press_f1.key_code()); |
| window_state->set_top_row_keys_are_function_keys(false); |
| - ASSERT_FALSE(RewriteFunctionKeys(&press_f1)); |
| + ASSERT_FALSE(RewriteFunctionKeys(xevent)); |
| + press_f1 = ui::KeyEvent(xev_f1, false); |
| ASSERT_EQ(ui::VKEY_F1, press_f1.key_code()); |
| // If the pref isn't set when an event is sent to a regular window, F1 is |
| // rewritten to the back key. |
| send_function_keys_pref.SetValue(false); |
| - ASSERT_TRUE(RewriteFunctionKeys(&press_f1)); |
| + ASSERT_TRUE(RewriteFunctionKeys(xevent)); |
| + press_f1 = ui::KeyEvent(xev_f1, false); |
| ASSERT_EQ(ui::VKEY_BROWSER_BACK, press_f1.key_code()); |
| } |
| @@ -2459,4 +2462,4 @@ TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
| } |
| } |
| -#endif // OS_CHROMEOS |
| +} // namespace chromeos |