| Index: chromeos_keyboard_unittest.cc
|
| diff --git a/chromeos_keyboard_unittest.cc b/chromeos_keyboard_unittest.cc
|
| deleted file mode 100644
|
| index 7e14cea3005bdf55c2daa9d5ac68c72ea4a034d6..0000000000000000000000000000000000000000
|
| --- a/chromeos_keyboard_unittest.cc
|
| +++ /dev/null
|
| @@ -1,221 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -//
|
| -// DEPRECATED. TODO(satorux): Remove this file.
|
| -
|
| -// How to run the test:
|
| -// $ FEATURES="test" emerge-x86-generic -a libcros
|
| -
|
| -#include "chromeos_keyboard.h"
|
| -
|
| -#include <algorithm>
|
| -#include <set>
|
| -#include <string>
|
| -
|
| -#include <gtest/gtest.h>
|
| -#include <X11/Xlib.h>
|
| -
|
| -#include "base/logging.h"
|
| -
|
| -namespace chromeos {
|
| -
|
| -namespace {
|
| -
|
| -// Returns a ModifierMap object that contains the following mapping:
|
| -// - kSearchKey is mapped to |search|.
|
| -// - kLeftControl key is mapped to |control|.
|
| -// - kLeftAlt key is mapped to |alt|.
|
| -ModifierMap GetMap(ModifierKey search, ModifierKey control, ModifierKey alt) {
|
| - ModifierMap modifier_key;
|
| - // Use the Search key as |search|.
|
| - modifier_key.push_back(ModifierKeyPair(kSearchKey, search));
|
| - modifier_key.push_back(ModifierKeyPair(kLeftControlKey, control));
|
| - modifier_key.push_back(ModifierKeyPair(kLeftAltKey, alt));
|
| - return modifier_key;
|
| -}
|
| -
|
| -// Checks |modifier_map| and returns true if the following conditions are met:
|
| -// - kSearchKey is mapped to |search|.
|
| -// - kLeftControl key is mapped to |control|.
|
| -// - kLeftAlt key is mapped to |alt|.
|
| -bool CheckMap(const ModifierMap& modifier_map,
|
| - ModifierKey search, ModifierKey control, ModifierKey alt) {
|
| - ModifierMap::const_iterator begin = modifier_map.begin();
|
| - ModifierMap::const_iterator end = modifier_map.end();
|
| - if ((std::count(begin, end, ModifierKeyPair(kSearchKey, search)) == 1) &&
|
| - (std::count(begin, end,
|
| - ModifierKeyPair(kLeftControlKey, control)) == 1) &&
|
| - (std::count(begin, end, ModifierKeyPair(kLeftAltKey, alt)) == 1)) {
|
| - return true;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -// Returns true if X display is available.
|
| -bool DisplayAvailable() {
|
| - Display* display = XOpenDisplay(NULL);
|
| - if (!display) {
|
| - return false;
|
| - }
|
| - XCloseDisplay(display);
|
| - return true;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// Tests CreateFullXkbLayoutName() function.
|
| -TEST(ChromeOSKeyboardTest, TestCreateFullXkbLayoutNameBasic) {
|
| - // CreateFullXkbLayoutName should not accept an empty |layout_name|.
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName(
|
| - "", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept an empty ModifierMap.
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", ModifierMap()).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept an incomplete ModifierMap.
|
| - ModifierMap tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.pop_back();
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept redundant ModifierMaps.
|
| - tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.push_back(ModifierKeyPair(kSearchKey, kVoidKey)); // two search maps
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| - tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.push_back(ModifierKeyPair(kLeftControlKey, kVoidKey)); // two ctrls
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| - tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.push_back(ModifierKeyPair(kLeftAltKey, kVoidKey)); // two alts.
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept invalid ModifierMaps.
|
| - tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.push_back(ModifierKeyPair(kVoidKey, kSearchKey)); // can't remap void
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| - tmp_map = GetMap(kVoidKey, kVoidKey, kVoidKey);
|
| - tmp_map.push_back(ModifierKeyPair(kCapsLockKey, kSearchKey)); // ditto
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName("us", tmp_map).c_str());
|
| -
|
| - // CreateFullXkbLayoutName can remap Search/Ctrl/Alt to CapsLock.
|
| - EXPECT_STREQ("us+chromeos(capslock_disabled_disabled)",
|
| - CreateFullXkbLayoutName(
|
| - "us",
|
| - GetMap(kCapsLockKey, kVoidKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("us+chromeos(disabled_capslock_disabled)",
|
| - CreateFullXkbLayoutName(
|
| - "us",
|
| - GetMap(kVoidKey, kCapsLockKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("us+chromeos(disabled_disabled_capslock)",
|
| - CreateFullXkbLayoutName(
|
| - "us",
|
| - GetMap(kVoidKey, kVoidKey, kCapsLockKey)).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept non-alphanumeric characters
|
| - // except "()-_".
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName(
|
| - "us!", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName(
|
| - "us; /bin/sh", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("ab-c_12+chromeos(disabled_disabled_disabled),us",
|
| - CreateFullXkbLayoutName(
|
| - "ab-c_12",
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should not accept upper-case ascii characters.
|
| - EXPECT_STREQ("", CreateFullXkbLayoutName(
|
| - "US", GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| -
|
| - // CreateFullXkbLayoutName should accept lower-case ascii characters.
|
| - for (int c = 'a'; c <= 'z'; ++c) {
|
| - EXPECT_STRNE("", CreateFullXkbLayoutName(
|
| - std::string(3, c),
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - }
|
| -
|
| - // CreateFullXkbLayoutName should accept numbers.
|
| - for (int c = '0'; c <= '9'; ++c) {
|
| - EXPECT_STRNE("", CreateFullXkbLayoutName(
|
| - std::string(3, c),
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - }
|
| -
|
| - // CreateFullXkbLayoutName should accept a layout with a variant name.
|
| - EXPECT_STREQ("us(dvorak)+chromeos(disabled_disabled_disabled)",
|
| - CreateFullXkbLayoutName(
|
| - "us(dvorak)",
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("gb(extd)+chromeos(disabled_disabled_disabled),us",
|
| - CreateFullXkbLayoutName(
|
| - "gb(extd)",
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).c_str());
|
| - EXPECT_STREQ("gb(extd)+", CreateFullXkbLayoutName(
|
| - "gb(extd)",
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey)).substr(0, 9).c_str());
|
| - EXPECT_STREQ("jp+", CreateFullXkbLayoutName(
|
| - "jp", GetMap(kVoidKey, kVoidKey, kVoidKey)).substr(0, 3).c_str());
|
| -
|
| - // When the layout name is not "us", the second layout should be added.
|
| - EXPECT_EQ(-1, CreateFullXkbLayoutName(
|
| - "us", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
|
| - EXPECT_EQ(-1, CreateFullXkbLayoutName(
|
| - "us(dvorak)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
|
| - EXPECT_NE(-1, CreateFullXkbLayoutName(
|
| - "gb(extd)", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
|
| - EXPECT_NE(-1, CreateFullXkbLayoutName(
|
| - "jp", GetMap(kVoidKey, kVoidKey, kVoidKey)).find(",us"));
|
| -}
|
| -
|
| -// Tests if CreateFullXkbLayoutName and ExtractLayoutNameFromFullXkbLayoutName
|
| -// functions could handle all combinations of modifier remapping.
|
| -TEST(ChromeOSKeyboardTest, TestCreateFullXkbLayoutNameModifierKeys) {
|
| - std::set<std::string> layouts;
|
| - for (int i = 0; i < static_cast<int>(kNumModifierKeys); ++i) {
|
| - for (int j = 0; j < static_cast<int>(kNumModifierKeys); ++j) {
|
| - for (int k = 0; k < static_cast<int>(kNumModifierKeys); ++k) {
|
| - const std::string layout = CreateFullXkbLayoutName(
|
| - "us", GetMap(ModifierKey(i), ModifierKey(j), ModifierKey(k)));
|
| - // CreateFullXkbLayoutName should succeed (i.e. should not return "".)
|
| - EXPECT_STREQ("us+", layout.substr(0, 3).c_str())
|
| - << "layout: " << layout;
|
| - // All 4*3*3 layouts should be different.
|
| - EXPECT_TRUE(layouts.insert(layout).second) << "layout: " << layout;
|
| - }
|
| - }
|
| - }
|
| -}
|
| -
|
| -TEST(ChromeOSKeyboardTest, TestSetCapsLockIsEnabled) {
|
| - if (!DisplayAvailable()) {
|
| - return;
|
| - }
|
| - const bool initial_lock_state = CapsLockIsEnabled();
|
| - SetCapsLockEnabled(true);
|
| - EXPECT_TRUE(CapsLockIsEnabled());
|
| - SetCapsLockEnabled(false);
|
| - EXPECT_FALSE(CapsLockIsEnabled());
|
| - SetCapsLockEnabled(true);
|
| - EXPECT_TRUE(CapsLockIsEnabled());
|
| - SetCapsLockEnabled(false);
|
| - EXPECT_FALSE(CapsLockIsEnabled());
|
| - SetCapsLockEnabled(initial_lock_state);
|
| -}
|
| -
|
| -TEST(ChromeOSKeyboardTest, TestContainsModifierKeyAsReplacement) {
|
| - EXPECT_FALSE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kVoidKey, kVoidKey, kVoidKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kCapsLockKey, kVoidKey, kVoidKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kVoidKey, kCapsLockKey, kVoidKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kVoidKey, kVoidKey, kCapsLockKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kCapsLockKey, kCapsLockKey, kVoidKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kCapsLockKey, kCapsLockKey, kCapsLockKey), kCapsLockKey));
|
| - EXPECT_TRUE(ContainsModifierKeyAsReplacement(
|
| - GetMap(kSearchKey, kVoidKey, kVoidKey), kSearchKey));
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|