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 |