| Index: chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc
|
| diff --git a/chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc b/chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc
|
| deleted file mode 100644
|
| index 8400d3fac6750c04b6d6dac57c071954cc1903db..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc
|
| +++ /dev/null
|
| @@ -1,739 +0,0 @@
|
| -// Copyright (c) 2012 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/chromeos/input_method/virtual_keyboard_selector.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace ime = ::chromeos::input_method;
|
| -
|
| -// For EXPECT_TRUE calls below. The operator has to be in the global namespace.
|
| -static bool operator==(
|
| - const ime::VirtualKeyboard& lhs, const ime::VirtualKeyboard& rhs) {
|
| - return lhs.GetURLForLayout("") == rhs.GetURLForLayout("");
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -typedef std::multimap<
|
| - std::string, const ime::VirtualKeyboard*> LayoutToKeyboard;
|
| -
|
| -// Returns true if [start, end) and |urls| are equal sets.
|
| -template <size_t L> bool CheckUrls(LayoutToKeyboard::const_iterator start,
|
| - LayoutToKeyboard::const_iterator end,
|
| - const char* (&urls)[L]) {
|
| - std::set<GURL> expected_url_set;
|
| - for (size_t i = 0; i < L; ++i) {
|
| - if (!expected_url_set.insert(GURL(urls[i])).second) {
|
| - DVLOG(1) << "Duplicated URL: " << urls[i];
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - std::set<GURL> actual_url_set;
|
| - for (LayoutToKeyboard::const_iterator iter = start; iter != end; ++iter) {
|
| - if (!actual_url_set.insert(iter->second->url()).second) {
|
| - DVLOG(1) << "Duplicated URL: " << iter->second->url().spec();
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - return expected_url_set == actual_url_set;
|
| -}
|
| -
|
| -template <size_t L>
|
| -std::set<std::string> CreateLayoutSet(const char* (&layouts)[L]) {
|
| - std::set<std::string> result;
|
| - for (size_t i = 0; i < L; ++i) {
|
| - result.insert(layouts[i]);
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace chromeos {
|
| -namespace input_method {
|
| -
|
| -class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector {
|
| - public:
|
| - // Change access rights.
|
| - using VirtualKeyboardSelector::SelectVirtualKeyboardWithoutPreferences;
|
| - using VirtualKeyboardSelector::user_preference;
|
| -};
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) {
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("us"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestAddVirtualKeyboard) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| -
|
| - // The first two keyboards have the same URL.
|
| - VirtualKeyboard virtual_keyboard_1(
|
| - GURL("http://url1"), "", CreateLayoutSet(layouts), true /* is_system */);
|
| - VirtualKeyboard virtual_keyboard_2(
|
| - GURL("http://url1"), "", CreateLayoutSet(layouts), false /* is_system */);
|
| - VirtualKeyboard virtual_keyboard_3(
|
| - GURL("http://url2"), "", CreateLayoutSet(layouts), false /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - virtual_keyboard_1.url(),
|
| - virtual_keyboard_1.name(),
|
| - virtual_keyboard_1.supported_layouts(),
|
| - virtual_keyboard_1.is_system()));
|
| -
|
| - // You can't add the same keyboard twice.
|
| - EXPECT_FALSE(selector.AddVirtualKeyboard(
|
| - virtual_keyboard_1.url(),
|
| - virtual_keyboard_1.name(),
|
| - virtual_keyboard_1.supported_layouts(),
|
| - virtual_keyboard_1.is_system()));
|
| - EXPECT_FALSE(selector.AddVirtualKeyboard(
|
| - virtual_keyboard_2.url(),
|
| - virtual_keyboard_2.name(),
|
| - virtual_keyboard_2.supported_layouts(),
|
| - virtual_keyboard_2.is_system()));
|
| -
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - virtual_keyboard_3.url(),
|
| - virtual_keyboard_3.name(),
|
| - virtual_keyboard_3.supported_layouts(),
|
| - virtual_keyboard_3.is_system()));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| - VirtualKeyboard system_virtual_keyboard(
|
| - GURL("http://system"), "", CreateLayoutSet(layouts), true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard.url(),
|
| - system_virtual_keyboard.name(),
|
| - system_virtual_keyboard.supported_layouts(),
|
| - system_virtual_keyboard.is_system()));
|
| -
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) {
|
| - static const char* layouts_1[] = { "a", "b", "c" };
|
| - static const char* layouts_2[] = { "a", "c", "d" };
|
| -
|
| - VirtualKeyboard system_virtual_keyboard_1(
|
| - GURL("http://system1"), "", CreateLayoutSet(layouts_1),
|
| - true /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_2(
|
| - GURL("http://system2"), "", CreateLayoutSet(layouts_2),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.name(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.name(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system()));
|
| -
|
| - // At this point, system_virtual_keyboard_2 has higher priority since it's
|
| - // added later than system_virtual_keyboard_1.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| -
|
| - // Request "b". system_virtual_keyboard_1 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("b"));
|
| -
|
| - // Now system_virtual_keyboard_1 should be selected for 'a' and 'c' since
|
| - // it's the current virtual keyboard.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -
|
| - // Request "d" again. system_virtual_keyboard_2 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| - // This time, system_virtual_keyboard_2 should be selected for 'a' and 'c'.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| - VirtualKeyboard user_virtual_keyboard(
|
| - GURL("http://user"), "", CreateLayoutSet(layouts), false /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard.url(),
|
| - user_virtual_keyboard.name(),
|
| - user_virtual_keyboard.supported_layouts(),
|
| - user_virtual_keyboard.is_system()));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa"));
|
| - EXPECT_EQ(NULL, selector.SelectVirtualKeyboard(""));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) {
|
| - static const char* layouts_1[] = { "a", "b", "c" };
|
| - static const char* layouts_2[] = { "a", "c", "d" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(layouts_1),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(layouts_2),
|
| - false /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| -
|
| - // At this point, user_virtual_keyboard_2 has higher priority since it's
|
| - // added later than user_virtual_keyboard_1.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| -
|
| - // Request "b". user_virtual_keyboard_1 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("b"));
|
| -
|
| - // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since
|
| - // it's the current virtual keyboard.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -
|
| - // Request "d" again. user_virtual_keyboard_2 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| - // This time, user_virtual_keyboard_2 should be selected for 'a' and 'c'.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) {
|
| - static const char* ulayouts_1[] = { "a", "b", "c" };
|
| - static const char* ulayouts_2[] = { "a", "c", "d" };
|
| - static const char* layouts_1[] = { "a", "x", "y" };
|
| - static const char* layouts_2[] = { "a", "y", "z" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(ulayouts_1),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(ulayouts_2),
|
| - false /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_1(
|
| - GURL("http://system1"), "", CreateLayoutSet(layouts_1),
|
| - true /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_2(
|
| - GURL("http://system2"), "", CreateLayoutSet(layouts_2),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.name(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.name(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system()));
|
| -
|
| - // At this point, user_virtual_keyboard_2 has the highest priority.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| -
|
| - // Request "b". user_virtual_keyboard_1 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("b"));
|
| - // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since
|
| - // it's the current virtual keyboard.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -
|
| - // Request "x". system_virtual_keyboard_2 should be returned (since it's
|
| - // added later than system_virtual_keyboard_1).
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("z"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("z"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch back to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch back to user_virtual_keyboard_1.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardTest, TestUrl) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| - VirtualKeyboard system_virtual_keyboard(
|
| - GURL("http://system"), "", CreateLayoutSet(layouts), true);
|
| -
|
| - EXPECT_EQ("http://system/index.html#a",
|
| - system_virtual_keyboard.GetURLForLayout("a").spec());
|
| - EXPECT_EQ("http://system/index.html#b",
|
| - system_virtual_keyboard.GetURLForLayout("b").spec());
|
| - EXPECT_EQ("http://system/index.html#c",
|
| - system_virtual_keyboard.GetURLForLayout("c").spec());
|
| - EXPECT_EQ("http://system/index.html#not-supported",
|
| - system_virtual_keyboard.GetURLForLayout("not-supported").spec());
|
| - EXPECT_EQ("http://system/index.html#not(supported)",
|
| - system_virtual_keyboard.GetURLForLayout("not(supported)").spec());
|
| - EXPECT_EQ("http://system/",
|
| - system_virtual_keyboard.GetURLForLayout("").spec());
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestSetUserPreference1) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard(
|
| - GURL("http://user"), "", CreateLayoutSet(layouts), false /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard.url(),
|
| - user_virtual_keyboard.name(),
|
| - user_virtual_keyboard.supported_layouts(),
|
| - user_virtual_keyboard.is_system()));
|
| -
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://user")));
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url")));
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user")));
|
| - EXPECT_EQ(1U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://user")));
|
| - EXPECT_EQ(2U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://user")));
|
| - EXPECT_EQ(3U, selector.user_preference().size());
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestSetUserPreference2) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| -
|
| - VirtualKeyboard system_virtual_keyboard(
|
| - GURL("http://system"), "", CreateLayoutSet(layouts),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard.url(),
|
| - system_virtual_keyboard.name(),
|
| - system_virtual_keyboard.supported_layouts(),
|
| - system_virtual_keyboard.is_system()));
|
| -
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://system")));
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url")));
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system")));
|
| - EXPECT_EQ(1U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://system")));
|
| - EXPECT_EQ(2U, selector.user_preference().size());
|
| - EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://system")));
|
| - EXPECT_EQ(3U, selector.user_preference().size());
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestRemoveUserPreference) {
|
| - static const char* layouts[] = { "a", "b", "c" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(layouts),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(layouts),
|
| - false /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| -
|
| - EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user1")));
|
| - EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://user1")));
|
| - EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://user1")));
|
| - EXPECT_EQ(3U, selector.user_preference().size());
|
| -
|
| - selector.RemoveUserPreference("b");
|
| - EXPECT_EQ(2U, selector.user_preference().size());
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - // user_virtual_keyboard_2 should be selected here since the keyboard is
|
| - // added most recently and the user preference on "b" is already removed.
|
| - EXPECT_TRUE(user_virtual_keyboard_2 == *selector.SelectVirtualKeyboard("b"));
|
| -
|
| - selector.ClearAllUserPreferences();
|
| - EXPECT_EQ(0U, selector.user_preference().size());
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestSetUserPreferenceUserSystemMixed) {
|
| - static const char* ulayouts_1[] = { "a", "b", "c" };
|
| - static const char* ulayouts_2[] = { "a", "c", "d" };
|
| - static const char* layouts_1[] = { "a", "x", "y" };
|
| - static const char* layouts_2[] = { "a", "y", "z" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(ulayouts_1),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(ulayouts_2),
|
| - false /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_1(
|
| - GURL("http://system1"), "", CreateLayoutSet(layouts_1),
|
| - true /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_2(
|
| - GURL("http://system2"), "", CreateLayoutSet(layouts_2),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.name(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.name(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system()));
|
| -
|
| - // Set and then remove user prefs (=NOP).
|
| - EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system1")));
|
| - EXPECT_TRUE(selector.SetUserPreference("z", GURL("http://system2")));
|
| - selector.ClearAllUserPreferences();
|
| -
|
| - // At this point, user_virtual_keyboard_2 has the highest priority.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("d"));
|
| -
|
| - // Request "b". user_virtual_keyboard_1 should be returned.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("b"));
|
| -
|
| - // Set user pref.
|
| - EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user2")));
|
| -
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
|
| - *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -
|
| - // Request "x". system_virtual_keyboard_2 should be returned (since it's
|
| - // added later than system_virtual_keyboard_1).
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("z"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("z"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref.
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch back to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *selector.SelectVirtualKeyboard("y"));
|
| -
|
| - // Remove it.
|
| - selector.RemoveUserPreference("a");
|
| -
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 == // user pref is no longer available
|
| - *selector.SelectVirtualKeyboard("a"));
|
| -
|
| - // Switch back to user_virtual_keyboard_1.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *selector.SelectVirtualKeyboard("c"));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestUrlToExtensionMapping) {
|
| - static const char* ulayouts_1[] = { "a", "b", "c" };
|
| - static const char* ulayouts_2[] = { "a", "c", "d" };
|
| - static const char* slayouts_1[] = { "a", "x", "y" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(ulayouts_1),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(ulayouts_2),
|
| - false /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_1(
|
| - GURL("http://system1"), "", CreateLayoutSet(slayouts_1),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| -
|
| - const std::map<GURL, const VirtualKeyboard*>& result1 =
|
| - selector.url_to_keyboard();
|
| - EXPECT_TRUE(result1.empty());
|
| -
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.name(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system()));
|
| -
|
| - const std::map<GURL, const VirtualKeyboard*>& result2 =
|
| - selector.url_to_keyboard();
|
| - EXPECT_EQ(3U, result2.size());
|
| - ASSERT_EQ(1U, result2.count(GURL("http://user1")));
|
| - EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| - *result2.find(GURL("http://user1"))->second);
|
| - ASSERT_EQ(1U, result2.count(GURL("http://user2")));
|
| - EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| - *result2.find(GURL("http://user2"))->second);
|
| - ASSERT_EQ(1U, result2.count(GURL("http://system1")));
|
| - EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| - *result2.find(GURL("http://system1"))->second);
|
| - EXPECT_EQ(0U, result2.count(GURL("http://system2")));
|
| -}
|
| -
|
| -TEST(VirtualKeyboardSelectorTest, TestLayoutToExtensionMapping) {
|
| - static const char* ulayouts_1[] = { "a", "b", "c" };
|
| - static const char* ulayouts_2[] = { "a", "c", "d" };
|
| - static const char* slayouts_1[] = { "a", "x", "y" };
|
| - static const char* slayouts_2[] = { "a", "y", "z" };
|
| -
|
| - VirtualKeyboard user_virtual_keyboard_1(
|
| - GURL("http://user1"), "", CreateLayoutSet(ulayouts_1),
|
| - false /* is_system */);
|
| - VirtualKeyboard user_virtual_keyboard_2(
|
| - GURL("http://user2"), "", CreateLayoutSet(ulayouts_2),
|
| - false /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_1(
|
| - GURL("http://system1"), "", CreateLayoutSet(slayouts_1),
|
| - true /* is_system */);
|
| - VirtualKeyboard system_virtual_keyboard_2(
|
| - GURL("http://system2"), "", CreateLayoutSet(slayouts_2),
|
| - true /* is_system */);
|
| -
|
| - TestableVirtualKeyboardSelector selector;
|
| -
|
| - const LayoutToKeyboard& result1 = selector.layout_to_keyboard();
|
| - EXPECT_TRUE(result1.empty());
|
| -
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.name(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.name(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.name(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system()));
|
| - EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| - system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.name(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system()));
|
| -
|
| - const LayoutToKeyboard& result2 = selector.layout_to_keyboard();
|
| - EXPECT_EQ(arraysize(ulayouts_1) +
|
| - arraysize(ulayouts_2) +
|
| - arraysize(slayouts_1) +
|
| - arraysize(slayouts_2),
|
| - result2.size());
|
| -
|
| - std::pair<LayoutToKeyboard::const_iterator,
|
| - LayoutToKeyboard::const_iterator> range;
|
| - EXPECT_EQ(4U, result2.count("a"));
|
| - {
|
| - static const char* urls[] = { "http://user1", "http://user2",
|
| - "http://system1", "http://system2" };
|
| - range = result2.equal_range("a");
|
| - EXPECT_TRUE(CheckUrls(range.first, range.second, urls));
|
| - }
|
| - EXPECT_EQ(2U, result2.count("c"));
|
| - {
|
| - static const char* urls[] = { "http://user1", "http://user2" };
|
| - range = result2.equal_range("c");
|
| - EXPECT_TRUE(CheckUrls(range.first, range.second, urls));
|
| - }
|
| - EXPECT_EQ(1U, result2.count("z"));
|
| - {
|
| - static const char* urls[] = { "http://system2" };
|
| - range = result2.equal_range("z");
|
| - EXPECT_TRUE(CheckUrls(range.first, range.second, urls));
|
| - }
|
| - EXPECT_EQ(0U, result2.count("Z"));
|
| -}
|
| -
|
| -} // namespace input_method
|
| -} // namespace chromeos
|
|
|