| 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
|
| index 95b8656006cc5e5e6cf18cf7bc3970711345ed39..5eb5125dba6f701afc08e23f2a9e530559ecc8e5 100644
|
| --- a/chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc
|
| +++ b/chrome/browser/chromeos/input_method/virtual_keyboard_selector_unittest.cc
|
| @@ -32,7 +32,8 @@ namespace input_method {
|
| class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector {
|
| public:
|
| // Change access rights.
|
| - using VirtualKeyboardSelector::SelectVirtualKeyboardInternal;
|
| + using VirtualKeyboardSelector::SelectVirtualKeyboardWithoutPreferences;
|
| + using VirtualKeyboardSelector::user_preference;
|
| };
|
|
|
| TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) {
|
| @@ -41,21 +42,55 @@ TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) {
|
| 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.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.supported_layouts(),
|
| + virtual_keyboard_1.is_system()));
|
| + EXPECT_FALSE(selector.AddVirtualKeyboard(
|
| + virtual_keyboard_2.url(),
|
| + virtual_keyboard_2.supported_layouts(),
|
| + virtual_keyboard_2.is_system()));
|
| +
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + virtual_keyboard_3.url(),
|
| + 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;
|
| - selector.AddVirtualKeyboard(system_virtual_keyboard.url(),
|
| - system_virtual_keyboard.supported_layouts(),
|
| - system_virtual_keyboard.is_system());
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + system_virtual_keyboard.url(),
|
| + system_virtual_keyboard.supported_layouts(),
|
| + system_virtual_keyboard.is_system()));
|
|
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + 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"));
|
| @@ -72,48 +107,50 @@ TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) {
|
| GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */);
|
|
|
| TestableVirtualKeyboardSelector selector;
|
| - selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system());
|
| - selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system());
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + system_virtual_keyboard_1.url(),
|
| + 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.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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d"));
|
| + 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.SelectVirtualKeyboardInternal("b"));
|
| + 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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + 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.SelectVirtualKeyboardInternal("d"));
|
| + 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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| }
|
| @@ -124,14 +161,15 @@ TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) {
|
| GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */);
|
|
|
| TestableVirtualKeyboardSelector selector;
|
| - selector.AddVirtualKeyboard(user_virtual_keyboard.url(),
|
| - user_virtual_keyboard.supported_layouts(),
|
| - user_virtual_keyboard.is_system());
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + user_virtual_keyboard.url(),
|
| + 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.SelectVirtualKeyboardInternal("b"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b"));
|
| EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + 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"));
|
| @@ -148,48 +186,50 @@ TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) {
|
| GURL("http://user2"), CreateLayoutSet(layouts_2), false /* is_system */);
|
|
|
| TestableVirtualKeyboardSelector selector;
|
| - selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system());
|
| - selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system());
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + user_virtual_keyboard_1.url(),
|
| + 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.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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d"));
|
| + 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.SelectVirtualKeyboardInternal("b"));
|
| + 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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + 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.SelectVirtualKeyboardInternal("d"));
|
| + 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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| }
|
| @@ -210,79 +250,83 @@ TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) {
|
| GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */);
|
|
|
| TestableVirtualKeyboardSelector selector;
|
| - selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(),
|
| - user_virtual_keyboard_1.supported_layouts(),
|
| - user_virtual_keyboard_1.is_system());
|
| - selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(),
|
| - user_virtual_keyboard_2.supported_layouts(),
|
| - user_virtual_keyboard_2.is_system());
|
| - selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(),
|
| - system_virtual_keyboard_1.supported_layouts(),
|
| - system_virtual_keyboard_1.is_system());
|
| - selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(),
|
| - system_virtual_keyboard_2.supported_layouts(),
|
| - system_virtual_keyboard_2.is_system());
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + user_virtual_keyboard_1.url(),
|
| + 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.supported_layouts(),
|
| + user_virtual_keyboard_2.is_system()));
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + system_virtual_keyboard_1.url(),
|
| + 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.supported_layouts(),
|
| + system_virtual_keyboard_2.is_system()));
|
|
|
| // At this point, user_virtual_keyboard_2 has the highest priority.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d"));
|
| + 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.SelectVirtualKeyboardInternal("b"));
|
| + 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.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(user_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + 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.SelectVirtualKeyboardInternal("x"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
|
|
| // Switch to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("z"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("z"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("z"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
|
|
| // Switch back to system_virtual_keyboard_2.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("x"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("x"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("y"));
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a"));
|
| EXPECT_TRUE(system_virtual_keyboard_1 ==
|
| *selector.SelectVirtualKeyboard("a"));
|
|
|
| // Switch back to user_virtual_keyboard_1.
|
| - ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c"));
|
| + ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c"));
|
| EXPECT_TRUE(user_virtual_keyboard_2 ==
|
| *selector.SelectVirtualKeyboard("c"));
|
| }
|
| @@ -306,5 +350,162 @@ TEST(VirtualKeyboardTest, TestUrl) {
|
| 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.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.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, 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.supported_layouts(),
|
| + user_virtual_keyboard_1.is_system()));
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + user_virtual_keyboard_2.url(),
|
| + 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.supported_layouts(),
|
| + system_virtual_keyboard_1.is_system()));
|
| + EXPECT_TRUE(selector.AddVirtualKeyboard(
|
| + system_virtual_keyboard_2.url(),
|
| + system_virtual_keyboard_2.supported_layouts(),
|
| + system_virtual_keyboard_2.is_system()));
|
| +
|
| + // Set and then remove user pref (=NOP).
|
| + EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system1")));
|
| + selector.RemoveUserPreference("a");
|
| +
|
| + // 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"));
|
| +}
|
| +
|
| } // namespace input_method
|
| } // namespace chromeos
|
|
|