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

Side by Side Diff: chrome/browser/ui/ash/event_rewriter_unittest.cc

Issue 11346028: Allow Caps Lock to be remapped [part 2 of 2] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fix Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/ash/event_rewriter.h" 5 #include "chrome/browser/ui/ash/event_rewriter.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h"
8 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
9 #include "chrome/browser/api/prefs/pref_member.h" 10 #include "chrome/browser/api/prefs/pref_member.h"
10 #include "chrome/common/pref_names.h" 11 #include "chrome/common/pref_names.h"
12 #include "chrome/common/chrome_switches.h"
11 #include "chrome/test/base/testing_pref_service.h" 13 #include "chrome/test/base/testing_pref_service.h"
12 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/base/events/event.h" 15 #include "ui/base/events/event.h"
14 16
15 #if defined(OS_CHROMEOS) 17 #if defined(OS_CHROMEOS)
16 #include <X11/keysym.h> 18 #include <X11/keysym.h>
17 #include <X11/XF86keysym.h> 19 #include <X11/XF86keysym.h>
18 #include <X11/Xlib.h> 20 #include <X11/Xlib.h>
19 21
20 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h" 22 #include "chrome/browser/chromeos/input_method/mock_input_method_manager.h"
(...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 ui::ET_KEY_PRESSED, 1503 ui::ET_KEY_PRESSED,
1502 keycode_caps_lock_, 1504 keycode_caps_lock_,
1503 0U, 1505 0U,
1504 KeyPress), 1506 KeyPress),
1505 GetRewrittenEventAsString(&rewriter, 1507 GetRewrittenEventAsString(&rewriter,
1506 ui::VKEY_F16, 1508 ui::VKEY_F16,
1507 0, 1509 0,
1508 ui::ET_KEY_PRESSED, 1510 ui::ET_KEY_PRESSED,
1509 keycode_launch7_, 1511 keycode_launch7_,
1510 0U)); 1512 0U));
1511
1512 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_); 1513 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_);
1513 } 1514 }
1514 1515
1516 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockWithFlag) {
1517 // TODO(yusukes): Reenable the test once build servers are upgraded.
1518 TestingPrefService prefs;
1519 chromeos::Preferences::RegisterUserPrefs(&prefs);
1520
1521 chromeos::input_method::MockXKeyboard xkeyboard;
1522 EventRewriter rewriter;
1523 rewriter.set_pref_service_for_testing(&prefs);
1524 rewriter.set_xkeyboard_for_testing(&xkeyboard);
1525 EXPECT_FALSE(xkeyboard.caps_lock_is_enabled_);
1526
1527 // F16 should work as CapsLock even when --has-chromeos-keyboard is specified.
1528 const CommandLine original_cl(*CommandLine::ForCurrentProcess());
1529 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
1530 switches::kHasChromeOSKeyboard, "");
1531
1532 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL,
1533 ui::EF_CAPS_LOCK_DOWN,
1534 ui::ET_KEY_PRESSED,
1535 keycode_caps_lock_,
1536 0U,
1537 KeyPress),
1538 GetRewrittenEventAsString(&rewriter,
1539 ui::VKEY_F16,
1540 0,
1541 ui::ET_KEY_PRESSED,
1542 keycode_launch7_,
1543 0U));
1544 EXPECT_TRUE(xkeyboard.caps_lock_is_enabled_);
1545
1546 *CommandLine::ForCurrentProcess() = original_cl;
1547 }
1548
1515 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) { 1549 TEST_F(EventRewriterTest, TestRewriteCapsLockToControl) {
1516 TestingPrefService prefs; 1550 TestingPrefService prefs;
1517 chromeos::Preferences::RegisterUserPrefs(&prefs); 1551 chromeos::Preferences::RegisterUserPrefs(&prefs);
1518 IntegerPrefMember control; 1552 IntegerPrefMember control;
1519 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL); 1553 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL);
1520 control.SetValue(chromeos::input_method::kControlKey); 1554 control.SetValue(chromeos::input_method::kControlKey);
1521 1555
1522 EventRewriter rewriter; 1556 EventRewriter rewriter;
1523 rewriter.set_pref_service_for_testing(&prefs); 1557 rewriter.set_pref_service_for_testing(&prefs);
1524 1558
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 Mod1Mask | ControlMask, 1593 Mod1Mask | ControlMask,
1560 KeyPress), 1594 KeyPress),
1561 GetRewrittenEventAsString(&rewriter, 1595 GetRewrittenEventAsString(&rewriter,
1562 ui::VKEY_A, 1596 ui::VKEY_A,
1563 ui::EF_ALT_DOWN, 1597 ui::EF_ALT_DOWN,
1564 ui::ET_KEY_PRESSED, 1598 ui::ET_KEY_PRESSED,
1565 keycode_a_, 1599 keycode_a_,
1566 Mod1Mask | Mod3Mask)); 1600 Mod1Mask | Mod3Mask));
1567 } 1601 }
1568 1602
1603 TEST_F(EventRewriterTest, DISABLED_TestRewriteCapsLockToControlWithFlag) {
1604 // TODO(yusukes): Reenable the test once build servers are upgraded.
1605 TestingPrefService prefs;
1606 chromeos::Preferences::RegisterUserPrefs(&prefs);
1607 IntegerPrefMember control;
1608 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL);
1609 control.SetValue(chromeos::input_method::kControlKey);
1610
1611 EventRewriter rewriter;
1612 rewriter.set_pref_service_for_testing(&prefs);
1613
1614 // The prefs::kLanguageRemapCapsLockKeyTo pref should be ignored when
1615 // --has-chromeos-keyboard is set.
1616 const CommandLine original_cl(*CommandLine::ForCurrentProcess());
1617 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
1618 switches::kHasChromeOSKeyboard, "");
1619
1620 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CAPITAL,
1621 ui::EF_CAPS_LOCK_DOWN,
1622 ui::ET_KEY_PRESSED,
1623 keycode_caps_lock_,
1624 0U,
1625 KeyPress),
1626 GetRewrittenEventAsString(&rewriter,
1627 ui::VKEY_F16,
1628 0,
1629 ui::ET_KEY_PRESSED,
1630 keycode_launch7_,
1631 0U));
1632
1633 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_A,
1634 0,
1635 ui::ET_KEY_PRESSED,
1636 keycode_a_,
1637 Mod3Mask,
1638 KeyPress),
1639 GetRewrittenEventAsString(&rewriter,
1640 ui::VKEY_A,
1641 0,
1642 ui::ET_KEY_PRESSED,
1643 keycode_a_,
1644 Mod3Mask));
1645
1646 *CommandLine::ForCurrentProcess() = original_cl;
1647 }
1648
1569 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) { 1649 TEST_F(EventRewriterTest, TestRewriteCapsLockMod3InUse) {
1570 // Remap CapsLock to Control. 1650 // Remap CapsLock to Control.
1571 TestingPrefService prefs; 1651 TestingPrefService prefs;
1572 chromeos::Preferences::RegisterUserPrefs(&prefs); 1652 chromeos::Preferences::RegisterUserPrefs(&prefs);
1573 IntegerPrefMember control; 1653 IntegerPrefMember control;
1574 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL); 1654 control.Init(prefs::kLanguageRemapCapsLockKeyTo, &prefs, NULL);
1575 control.SetValue(chromeos::input_method::kControlKey); 1655 control.SetValue(chromeos::input_method::kControlKey);
1576 1656
1577 EventRewriter rewriter; 1657 EventRewriter rewriter;
1578 rewriter.set_pref_service_for_testing(&prefs); 1658 rewriter.set_pref_service_for_testing(&prefs);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 // flag in the event is True. 1852 // flag in the event is True.
1773 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL, 1853 EXPECT_EQ(GetExpectedResultAsString(ui::VKEY_CONTROL,
1774 ui::EF_CONTROL_DOWN, 1854 ui::EF_CONTROL_DOWN,
1775 ui::ET_KEY_PRESSED, 1855 ui::ET_KEY_PRESSED,
1776 keycode_control_l_, 1856 keycode_control_l_,
1777 0U, 1857 0U,
1778 KeyPress), 1858 KeyPress),
1779 rewritten_event); 1859 rewritten_event);
1780 } 1860 }
1781 #endif // OS_CHROMEOS 1861 #endif // OS_CHROMEOS
OLDNEW
« no previous file with comments | « chrome/browser/ui/ash/event_rewriter.cc ('k') | chrome/browser/ui/webui/options/chromeos/keyboard_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698