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..98e6a4bc68ffc1a320ccc7df7a250cb0ef14052d 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,7 @@ namespace input_method { |
class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector { |
public: |
// Change access rights. |
- using VirtualKeyboardSelector::SelectVirtualKeyboardInternal; |
+ using VirtualKeyboardSelector::SelectVirtualKeyboardByLayout; |
}; |
TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) { |
@@ -51,11 +51,11 @@ TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) { |
system_virtual_keyboard.supported_layouts(), |
system_virtual_keyboard.is_system()); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b")); |
EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); |
EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); |
EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); |
@@ -81,39 +81,39 @@ TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) { |
// 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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
} |
@@ -127,11 +127,11 @@ TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) { |
selector.AddVirtualKeyboard(user_virtual_keyboard.url(), |
user_virtual_keyboard.supported_layouts(), |
user_virtual_keyboard.is_system()); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b")); |
EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); |
EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); |
EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); |
@@ -157,39 +157,39 @@ TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) { |
// 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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
} |
@@ -224,65 +224,65 @@ TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) { |
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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(user_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("a")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("x")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("x")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("y")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("a")); |
// Switch to system_virtual_keyboard_2. |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("z")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("z")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("z")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
EXPECT_TRUE(system_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("y")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("x")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("x")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
EXPECT_TRUE(system_virtual_keyboard_1 == |
*selector.SelectVirtualKeyboard("y")); |
- ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("c")); |
EXPECT_TRUE(user_virtual_keyboard_2 == |
*selector.SelectVirtualKeyboard("c")); |
} |
@@ -306,5 +306,144 @@ 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; |
+ selector.AddVirtualKeyboard(user_virtual_keyboard.url(), |
+ user_virtual_keyboard.supported_layouts(), |
+ user_virtual_keyboard.is_system()); |
+ |
+ EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://user"))); |
+ EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url"))); |
+ EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user"))); |
+ EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://user"))); |
+ EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://user"))); |
+} |
+ |
+TEST(VirtualKeyboardSelectorTest, TestSetUserPreference2) { |
+ 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_FALSE(selector.SetUserPreference("bad_layout", GURL("http://system"))); |
+ EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url"))); |
+ EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system"))); |
+ EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://system"))); |
+ EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://system"))); |
+} |
+ |
+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; |
+ 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()); |
+ |
+ // 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.SelectVirtualKeyboardByLayout("a")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("c")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("c")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("d")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("d")); |
+ |
+ // Request "b". user_virtual_keyboard_1 should be returned. |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("b")); |
+ EXPECT_TRUE(user_virtual_keyboard_1 == |
+ *selector.SelectVirtualKeyboard("b")); |
+ |
+ // Set user pref. |
+ EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user2"))); |
+ |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. |
+ *selector.SelectVirtualKeyboard("a")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("x")); |
+ EXPECT_TRUE(system_virtual_keyboard_1 == |
+ *selector.SelectVirtualKeyboard("x")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
+ EXPECT_TRUE(system_virtual_keyboard_1 == |
+ *selector.SelectVirtualKeyboard("y")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. |
+ *selector.SelectVirtualKeyboard("a")); |
+ |
+ // Switch to system_virtual_keyboard_2. |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("z")); |
+ EXPECT_TRUE(system_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("z")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
+ EXPECT_TRUE(system_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("y")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("a")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. |
+ *selector.SelectVirtualKeyboard("a")); |
+ |
+ // Switch back to system_virtual_keyboard_2. |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("x")); |
+ EXPECT_TRUE(system_virtual_keyboard_1 == |
+ *selector.SelectVirtualKeyboard("x")); |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("y")); |
+ EXPECT_TRUE(system_virtual_keyboard_1 == |
+ *selector.SelectVirtualKeyboard("y")); |
+ |
+ // Remove it. |
+ selector.RemoveUserPreference("a"); |
+ |
+ ASSERT_TRUE(selector.SelectVirtualKeyboardByLayout("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.SelectVirtualKeyboardByLayout("c")); |
+ EXPECT_TRUE(user_virtual_keyboard_2 == |
+ *selector.SelectVirtualKeyboard("c")); |
+} |
+ |
} // namespace input_method |
} // namespace chromeos |