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

Unified Diff: chrome/browser/chromeos/event_rewriter_unittest.cc

Issue 165463002: event-rewrite: Clean up how events are rewritten. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 10 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: 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

Powered by Google App Engine
This is Rietveld 408576698