Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/chromeos/input_method/virtual_keyboard_selector.h" | 5 #include "chrome/browser/chromeos/input_method/virtual_keyboard_selector.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 // For EXPECT_TRUE calls below. The operator has to be in the global namespace. | 10 // For EXPECT_TRUE calls below. The operator has to be in the global namespace. |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 } | 25 } |
| 26 | 26 |
| 27 } // namespace | 27 } // namespace |
| 28 | 28 |
| 29 namespace chromeos { | 29 namespace chromeos { |
| 30 namespace input_method { | 30 namespace input_method { |
| 31 | 31 |
| 32 class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector { | 32 class TestableVirtualKeyboardSelector : public VirtualKeyboardSelector { |
| 33 public: | 33 public: |
| 34 // Change access rights. | 34 // Change access rights. |
| 35 using VirtualKeyboardSelector::SelectVirtualKeyboardInternal; | 35 using VirtualKeyboardSelector::SelectVirtualKeyboardWithoutPreferences; |
| 36 }; | 36 }; |
| 37 | 37 |
| 38 TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) { | 38 TEST(VirtualKeyboardSelectorTest, TestNoKeyboard) { |
| 39 TestableVirtualKeyboardSelector selector; | 39 TestableVirtualKeyboardSelector selector; |
| 40 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("us")); | 40 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("us")); |
| 41 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); | 41 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); |
| 42 } | 42 } |
| 43 | 43 |
| 44 TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) { | 44 TEST(VirtualKeyboardSelectorTest, TestSystemKeyboard) { |
| 45 static const char* layouts[] = { "a", "b", "c" }; | 45 static const char* layouts[] = { "a", "b", "c" }; |
| 46 VirtualKeyboard system_virtual_keyboard( | 46 VirtualKeyboard system_virtual_keyboard( |
| 47 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */); | 47 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */); |
| 48 | 48 |
| 49 TestableVirtualKeyboardSelector selector; | 49 TestableVirtualKeyboardSelector selector; |
| 50 selector.AddVirtualKeyboard(system_virtual_keyboard.url(), | 50 selector.AddVirtualKeyboard(system_virtual_keyboard.url(), |
| 51 system_virtual_keyboard.supported_layouts(), | 51 system_virtual_keyboard.supported_layouts(), |
| 52 system_virtual_keyboard.is_system()); | 52 system_virtual_keyboard.is_system()); |
| 53 | 53 |
| 54 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 54 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 55 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); | 55 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); |
| 56 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); | 56 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); |
| 57 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); | 57 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); |
| 58 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 58 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 59 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); | 59 EXPECT_TRUE(system_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); |
| 60 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); | 60 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); |
| 61 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); | 61 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); |
| 62 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); | 62 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); |
| 63 } | 63 } |
| 64 | 64 |
| 65 TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) { | 65 TEST(VirtualKeyboardSelectorTest, TestTwoSystemKeyboards) { |
| 66 static const char* layouts_1[] = { "a", "b", "c" }; | 66 static const char* layouts_1[] = { "a", "b", "c" }; |
| 67 static const char* layouts_2[] = { "a", "c", "d" }; | 67 static const char* layouts_2[] = { "a", "c", "d" }; |
| 68 | 68 |
| 69 VirtualKeyboard system_virtual_keyboard_1( | 69 VirtualKeyboard system_virtual_keyboard_1( |
| 70 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */); | 70 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */); |
| 71 VirtualKeyboard system_virtual_keyboard_2( | 71 VirtualKeyboard system_virtual_keyboard_2( |
| 72 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */); | 72 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */); |
| 73 | 73 |
| 74 TestableVirtualKeyboardSelector selector; | 74 TestableVirtualKeyboardSelector selector; |
| 75 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), | 75 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), |
| 76 system_virtual_keyboard_1.supported_layouts(), | 76 system_virtual_keyboard_1.supported_layouts(), |
| 77 system_virtual_keyboard_1.is_system()); | 77 system_virtual_keyboard_1.is_system()); |
| 78 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), | 78 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), |
| 79 system_virtual_keyboard_2.supported_layouts(), | 79 system_virtual_keyboard_2.supported_layouts(), |
| 80 system_virtual_keyboard_2.is_system()); | 80 system_virtual_keyboard_2.is_system()); |
| 81 | 81 |
| 82 // At this point, system_virtual_keyboard_2 has higher priority since it's | 82 // At this point, system_virtual_keyboard_2 has higher priority since it's |
| 83 // added later than system_virtual_keyboard_1. | 83 // added later than system_virtual_keyboard_1. |
| 84 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 84 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 85 EXPECT_TRUE(system_virtual_keyboard_2 == | 85 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 86 *selector.SelectVirtualKeyboard("a")); | 86 *selector.SelectVirtualKeyboard("a")); |
| 87 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 87 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 88 EXPECT_TRUE(system_virtual_keyboard_2 == | 88 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 89 *selector.SelectVirtualKeyboard("c")); | 89 *selector.SelectVirtualKeyboard("c")); |
| 90 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); | 90 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); |
| 91 EXPECT_TRUE(system_virtual_keyboard_2 == | 91 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 92 *selector.SelectVirtualKeyboard("d")); | 92 *selector.SelectVirtualKeyboard("d")); |
| 93 | 93 |
| 94 // Request "b". system_virtual_keyboard_1 should be returned. | 94 // Request "b". system_virtual_keyboard_1 should be returned. |
| 95 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); | 95 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); |
| 96 EXPECT_TRUE(system_virtual_keyboard_1 == | 96 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 97 *selector.SelectVirtualKeyboard("b")); | 97 *selector.SelectVirtualKeyboard("b")); |
| 98 | 98 |
| 99 // Now system_virtual_keyboard_1 should be selected for 'a' and 'c' since | 99 // Now system_virtual_keyboard_1 should be selected for 'a' and 'c' since |
| 100 // it's the current virtual keyboard. | 100 // it's the current virtual keyboard. |
| 101 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 101 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 102 EXPECT_TRUE(system_virtual_keyboard_1 == | 102 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 103 *selector.SelectVirtualKeyboard("a")); | 103 *selector.SelectVirtualKeyboard("a")); |
| 104 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 104 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 105 EXPECT_TRUE(system_virtual_keyboard_1 == | 105 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 106 *selector.SelectVirtualKeyboard("c")); | 106 *selector.SelectVirtualKeyboard("c")); |
| 107 | 107 |
| 108 // Request "d" again. system_virtual_keyboard_2 should be returned. | 108 // Request "d" again. system_virtual_keyboard_2 should be returned. |
| 109 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); | 109 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); |
| 110 EXPECT_TRUE(system_virtual_keyboard_2 == | 110 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 111 *selector.SelectVirtualKeyboard("d")); | 111 *selector.SelectVirtualKeyboard("d")); |
| 112 // This time, system_virtual_keyboard_2 should be selected for 'a' and 'c'. | 112 // This time, system_virtual_keyboard_2 should be selected for 'a' and 'c'. |
| 113 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 113 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 114 EXPECT_TRUE(system_virtual_keyboard_2 == | 114 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 115 *selector.SelectVirtualKeyboard("a")); | 115 *selector.SelectVirtualKeyboard("a")); |
| 116 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 116 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 117 EXPECT_TRUE(system_virtual_keyboard_2 == | 117 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 118 *selector.SelectVirtualKeyboard("c")); | 118 *selector.SelectVirtualKeyboard("c")); |
| 119 } | 119 } |
| 120 | 120 |
| 121 TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) { | 121 TEST(VirtualKeyboardSelectorTest, TestUserKeyboard) { |
| 122 static const char* layouts[] = { "a", "b", "c" }; | 122 static const char* layouts[] = { "a", "b", "c" }; |
| 123 VirtualKeyboard user_virtual_keyboard( | 123 VirtualKeyboard user_virtual_keyboard( |
| 124 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */); | 124 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */); |
| 125 | 125 |
| 126 TestableVirtualKeyboardSelector selector; | 126 TestableVirtualKeyboardSelector selector; |
| 127 selector.AddVirtualKeyboard(user_virtual_keyboard.url(), | 127 selector.AddVirtualKeyboard(user_virtual_keyboard.url(), |
| 128 user_virtual_keyboard.supported_layouts(), | 128 user_virtual_keyboard.supported_layouts(), |
| 129 user_virtual_keyboard.is_system()); | 129 user_virtual_keyboard.is_system()); |
| 130 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 130 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 131 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); | 131 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("a")); |
| 132 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); | 132 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); |
| 133 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); | 133 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("b")); |
| 134 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 134 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 135 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); | 135 EXPECT_TRUE(user_virtual_keyboard == *selector.SelectVirtualKeyboard("c")); |
| 136 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); | 136 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("d")); |
| 137 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); | 137 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("aa")); |
| 138 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); | 138 EXPECT_EQ(NULL, selector.SelectVirtualKeyboard("")); |
| 139 } | 139 } |
| 140 | 140 |
| 141 TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) { | 141 TEST(VirtualKeyboardSelectorTest, TestTwoUserKeyboards) { |
| 142 static const char* layouts_1[] = { "a", "b", "c" }; | 142 static const char* layouts_1[] = { "a", "b", "c" }; |
| 143 static const char* layouts_2[] = { "a", "c", "d" }; | 143 static const char* layouts_2[] = { "a", "c", "d" }; |
| 144 | 144 |
| 145 VirtualKeyboard user_virtual_keyboard_1( | 145 VirtualKeyboard user_virtual_keyboard_1( |
| 146 GURL("http://user1"), CreateLayoutSet(layouts_1), false /* is_system */); | 146 GURL("http://user1"), CreateLayoutSet(layouts_1), false /* is_system */); |
| 147 VirtualKeyboard user_virtual_keyboard_2( | 147 VirtualKeyboard user_virtual_keyboard_2( |
| 148 GURL("http://user2"), CreateLayoutSet(layouts_2), false /* is_system */); | 148 GURL("http://user2"), CreateLayoutSet(layouts_2), false /* is_system */); |
| 149 | 149 |
| 150 TestableVirtualKeyboardSelector selector; | 150 TestableVirtualKeyboardSelector selector; |
| 151 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(), | 151 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(), |
| 152 user_virtual_keyboard_1.supported_layouts(), | 152 user_virtual_keyboard_1.supported_layouts(), |
| 153 user_virtual_keyboard_1.is_system()); | 153 user_virtual_keyboard_1.is_system()); |
| 154 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(), | 154 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(), |
| 155 user_virtual_keyboard_2.supported_layouts(), | 155 user_virtual_keyboard_2.supported_layouts(), |
| 156 user_virtual_keyboard_2.is_system()); | 156 user_virtual_keyboard_2.is_system()); |
| 157 | 157 |
| 158 // At this point, user_virtual_keyboard_2 has higher priority since it's | 158 // At this point, user_virtual_keyboard_2 has higher priority since it's |
| 159 // added later than user_virtual_keyboard_1. | 159 // added later than user_virtual_keyboard_1. |
| 160 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 160 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 161 EXPECT_TRUE(user_virtual_keyboard_2 == | 161 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 162 *selector.SelectVirtualKeyboard("a")); | 162 *selector.SelectVirtualKeyboard("a")); |
| 163 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 163 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 164 EXPECT_TRUE(user_virtual_keyboard_2 == | 164 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 165 *selector.SelectVirtualKeyboard("c")); | 165 *selector.SelectVirtualKeyboard("c")); |
| 166 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); | 166 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); |
| 167 EXPECT_TRUE(user_virtual_keyboard_2 == | 167 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 168 *selector.SelectVirtualKeyboard("d")); | 168 *selector.SelectVirtualKeyboard("d")); |
| 169 | 169 |
| 170 // Request "b". user_virtual_keyboard_1 should be returned. | 170 // Request "b". user_virtual_keyboard_1 should be returned. |
| 171 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); | 171 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); |
| 172 EXPECT_TRUE(user_virtual_keyboard_1 == | 172 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 173 *selector.SelectVirtualKeyboard("b")); | 173 *selector.SelectVirtualKeyboard("b")); |
| 174 | 174 |
| 175 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since | 175 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since |
| 176 // it's the current virtual keyboard. | 176 // it's the current virtual keyboard. |
| 177 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 177 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 178 EXPECT_TRUE(user_virtual_keyboard_1 == | 178 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 179 *selector.SelectVirtualKeyboard("a")); | 179 *selector.SelectVirtualKeyboard("a")); |
| 180 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 180 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 181 EXPECT_TRUE(user_virtual_keyboard_1 == | 181 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 182 *selector.SelectVirtualKeyboard("c")); | 182 *selector.SelectVirtualKeyboard("c")); |
| 183 | 183 |
| 184 // Request "d" again. user_virtual_keyboard_2 should be returned. | 184 // Request "d" again. user_virtual_keyboard_2 should be returned. |
| 185 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); | 185 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); |
| 186 EXPECT_TRUE(user_virtual_keyboard_2 == | 186 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 187 *selector.SelectVirtualKeyboard("d")); | 187 *selector.SelectVirtualKeyboard("d")); |
| 188 // This time, user_virtual_keyboard_2 should be selected for 'a' and 'c'. | 188 // This time, user_virtual_keyboard_2 should be selected for 'a' and 'c'. |
| 189 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 189 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 190 EXPECT_TRUE(user_virtual_keyboard_2 == | 190 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 191 *selector.SelectVirtualKeyboard("a")); | 191 *selector.SelectVirtualKeyboard("a")); |
| 192 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 192 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 193 EXPECT_TRUE(user_virtual_keyboard_2 == | 193 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 194 *selector.SelectVirtualKeyboard("c")); | 194 *selector.SelectVirtualKeyboard("c")); |
| 195 } | 195 } |
| 196 | 196 |
| 197 TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) { | 197 TEST(VirtualKeyboardSelectorTest, TestUserSystemMixed) { |
| 198 static const char* ulayouts_1[] = { "a", "b", "c" }; | 198 static const char* ulayouts_1[] = { "a", "b", "c" }; |
| 199 static const char* ulayouts_2[] = { "a", "c", "d" }; | 199 static const char* ulayouts_2[] = { "a", "c", "d" }; |
| 200 static const char* layouts_1[] = { "a", "x", "y" }; | 200 static const char* layouts_1[] = { "a", "x", "y" }; |
| 201 static const char* layouts_2[] = { "a", "y", "z" }; | 201 static const char* layouts_2[] = { "a", "y", "z" }; |
| 202 | 202 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 217 user_virtual_keyboard_2.supported_layouts(), | 217 user_virtual_keyboard_2.supported_layouts(), |
| 218 user_virtual_keyboard_2.is_system()); | 218 user_virtual_keyboard_2.is_system()); |
| 219 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), | 219 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), |
| 220 system_virtual_keyboard_1.supported_layouts(), | 220 system_virtual_keyboard_1.supported_layouts(), |
| 221 system_virtual_keyboard_1.is_system()); | 221 system_virtual_keyboard_1.is_system()); |
| 222 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), | 222 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), |
| 223 system_virtual_keyboard_2.supported_layouts(), | 223 system_virtual_keyboard_2.supported_layouts(), |
| 224 system_virtual_keyboard_2.is_system()); | 224 system_virtual_keyboard_2.is_system()); |
| 225 | 225 |
| 226 // At this point, user_virtual_keyboard_2 has the highest priority. | 226 // At this point, user_virtual_keyboard_2 has the highest priority. |
| 227 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 227 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 228 EXPECT_TRUE(user_virtual_keyboard_2 == | 228 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 229 *selector.SelectVirtualKeyboard("a")); | 229 *selector.SelectVirtualKeyboard("a")); |
| 230 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 230 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 231 EXPECT_TRUE(user_virtual_keyboard_2 == | 231 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 232 *selector.SelectVirtualKeyboard("c")); | 232 *selector.SelectVirtualKeyboard("c")); |
| 233 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("d")); | 233 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); |
| 234 EXPECT_TRUE(user_virtual_keyboard_2 == | 234 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 235 *selector.SelectVirtualKeyboard("d")); | 235 *selector.SelectVirtualKeyboard("d")); |
| 236 | 236 |
| 237 // Request "b". user_virtual_keyboard_1 should be returned. | 237 // Request "b". user_virtual_keyboard_1 should be returned. |
| 238 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("b")); | 238 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); |
| 239 EXPECT_TRUE(user_virtual_keyboard_1 == | 239 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 240 *selector.SelectVirtualKeyboard("b")); | 240 *selector.SelectVirtualKeyboard("b")); |
| 241 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since | 241 // Now user_virtual_keyboard_1 should be selected for 'a' and 'c' since |
| 242 // it's the current virtual keyboard. | 242 // it's the current virtual keyboard. |
| 243 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 243 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 244 EXPECT_TRUE(user_virtual_keyboard_1 == | 244 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 245 *selector.SelectVirtualKeyboard("a")); | 245 *selector.SelectVirtualKeyboard("a")); |
| 246 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 246 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 247 EXPECT_TRUE(user_virtual_keyboard_1 == | 247 EXPECT_TRUE(user_virtual_keyboard_1 == |
| 248 *selector.SelectVirtualKeyboard("c")); | 248 *selector.SelectVirtualKeyboard("c")); |
| 249 | 249 |
| 250 // Request "x". system_virtual_keyboard_2 should be returned (since it's | 250 // Request "x". system_virtual_keyboard_2 should be returned (since it's |
| 251 // added later than system_virtual_keyboard_1). | 251 // added later than system_virtual_keyboard_1). |
| 252 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("x")); | 252 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x")); |
| 253 EXPECT_TRUE(system_virtual_keyboard_1 == | 253 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 254 *selector.SelectVirtualKeyboard("x")); | 254 *selector.SelectVirtualKeyboard("x")); |
| 255 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); | 255 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); |
| 256 EXPECT_TRUE(system_virtual_keyboard_1 == | 256 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 257 *selector.SelectVirtualKeyboard("y")); | 257 *selector.SelectVirtualKeyboard("y")); |
| 258 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 258 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 259 EXPECT_TRUE(system_virtual_keyboard_1 == | 259 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 260 *selector.SelectVirtualKeyboard("a")); | 260 *selector.SelectVirtualKeyboard("a")); |
| 261 | 261 |
| 262 // Switch to system_virtual_keyboard_2. | 262 // Switch to system_virtual_keyboard_2. |
| 263 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("z")); | 263 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("z")); |
| 264 EXPECT_TRUE(system_virtual_keyboard_2 == | 264 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 265 *selector.SelectVirtualKeyboard("z")); | 265 *selector.SelectVirtualKeyboard("z")); |
| 266 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); | 266 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); |
| 267 EXPECT_TRUE(system_virtual_keyboard_2 == | 267 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 268 *selector.SelectVirtualKeyboard("y")); | 268 *selector.SelectVirtualKeyboard("y")); |
| 269 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 269 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 270 EXPECT_TRUE(system_virtual_keyboard_2 == | 270 EXPECT_TRUE(system_virtual_keyboard_2 == |
| 271 *selector.SelectVirtualKeyboard("a")); | 271 *selector.SelectVirtualKeyboard("a")); |
| 272 | 272 |
| 273 // Switch back to system_virtual_keyboard_2. | 273 // Switch back to system_virtual_keyboard_2. |
| 274 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("x")); | 274 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x")); |
| 275 EXPECT_TRUE(system_virtual_keyboard_1 == | 275 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 276 *selector.SelectVirtualKeyboard("x")); | 276 *selector.SelectVirtualKeyboard("x")); |
| 277 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("y")); | 277 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); |
| 278 EXPECT_TRUE(system_virtual_keyboard_1 == | 278 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 279 *selector.SelectVirtualKeyboard("y")); | 279 *selector.SelectVirtualKeyboard("y")); |
| 280 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("a")); | 280 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); |
| 281 EXPECT_TRUE(system_virtual_keyboard_1 == | 281 EXPECT_TRUE(system_virtual_keyboard_1 == |
| 282 *selector.SelectVirtualKeyboard("a")); | 282 *selector.SelectVirtualKeyboard("a")); |
| 283 | 283 |
| 284 // Switch back to user_virtual_keyboard_1. | 284 // Switch back to user_virtual_keyboard_1. |
| 285 ASSERT_TRUE(selector.SelectVirtualKeyboardInternal("c")); | 285 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); |
| 286 EXPECT_TRUE(user_virtual_keyboard_2 == | 286 EXPECT_TRUE(user_virtual_keyboard_2 == |
| 287 *selector.SelectVirtualKeyboard("c")); | 287 *selector.SelectVirtualKeyboard("c")); |
| 288 } | 288 } |
| 289 | 289 |
| 290 TEST(VirtualKeyboardTest, TestUrl) { | 290 TEST(VirtualKeyboardTest, TestUrl) { |
| 291 static const char* layouts[] = { "a", "b", "c" }; | 291 static const char* layouts[] = { "a", "b", "c" }; |
| 292 VirtualKeyboard system_virtual_keyboard( | 292 VirtualKeyboard system_virtual_keyboard( |
| 293 GURL("http://system"), CreateLayoutSet(layouts), true); | 293 GURL("http://system"), CreateLayoutSet(layouts), true); |
| 294 | 294 |
| 295 EXPECT_EQ("http://system/index.html#a", | 295 EXPECT_EQ("http://system/index.html#a", |
| 296 system_virtual_keyboard.GetURLForLayout("a").spec()); | 296 system_virtual_keyboard.GetURLForLayout("a").spec()); |
| 297 EXPECT_EQ("http://system/index.html#b", | 297 EXPECT_EQ("http://system/index.html#b", |
| 298 system_virtual_keyboard.GetURLForLayout("b").spec()); | 298 system_virtual_keyboard.GetURLForLayout("b").spec()); |
| 299 EXPECT_EQ("http://system/index.html#c", | 299 EXPECT_EQ("http://system/index.html#c", |
| 300 system_virtual_keyboard.GetURLForLayout("c").spec()); | 300 system_virtual_keyboard.GetURLForLayout("c").spec()); |
| 301 EXPECT_EQ("http://system/index.html#not-supported", | 301 EXPECT_EQ("http://system/index.html#not-supported", |
| 302 system_virtual_keyboard.GetURLForLayout("not-supported").spec()); | 302 system_virtual_keyboard.GetURLForLayout("not-supported").spec()); |
| 303 EXPECT_EQ("http://system/index.html#not(supported)", | 303 EXPECT_EQ("http://system/index.html#not(supported)", |
| 304 system_virtual_keyboard.GetURLForLayout("not(supported)").spec()); | 304 system_virtual_keyboard.GetURLForLayout("not(supported)").spec()); |
| 305 EXPECT_EQ("http://system/", | 305 EXPECT_EQ("http://system/", |
| 306 system_virtual_keyboard.GetURLForLayout("").spec()); | 306 system_virtual_keyboard.GetURLForLayout("").spec()); |
| 307 } | 307 } |
| 308 | 308 |
| 309 TEST(VirtualKeyboardSelectorTest, TestSetUserPreference1) { | |
| 310 static const char* layouts[] = { "a", "b", "c" }; | |
| 311 | |
| 312 VirtualKeyboard user_virtual_keyboard( | |
| 313 GURL("http://user"), CreateLayoutSet(layouts), false /* is_system */); | |
| 314 | |
| 315 TestableVirtualKeyboardSelector selector; | |
| 316 selector.AddVirtualKeyboard(user_virtual_keyboard.url(), | |
| 317 user_virtual_keyboard.supported_layouts(), | |
| 318 user_virtual_keyboard.is_system()); | |
| 319 | |
| 320 EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://user"))); | |
|
bryeung
2011/08/03 22:04:46
It would be valuable to ensure that the preference
Yusuke Sato
2011/08/04 06:26:56
Done.
| |
| 321 EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url"))); | |
| 322 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user"))); | |
|
bryeung
2011/08/03 22:04:46
it would be valuable to ensure that the preference
Yusuke Sato
2011/08/04 06:26:56
Done.
| |
| 323 EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://user"))); | |
| 324 EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://user"))); | |
| 325 } | |
| 326 | |
| 327 TEST(VirtualKeyboardSelectorTest, TestSetUserPreference2) { | |
| 328 static const char* layouts[] = { "a", "b", "c" }; | |
| 329 | |
| 330 VirtualKeyboard system_virtual_keyboard( | |
| 331 GURL("http://system"), CreateLayoutSet(layouts), true /* is_system */); | |
| 332 | |
| 333 TestableVirtualKeyboardSelector selector; | |
| 334 selector.AddVirtualKeyboard(system_virtual_keyboard.url(), | |
| 335 system_virtual_keyboard.supported_layouts(), | |
| 336 system_virtual_keyboard.is_system()); | |
| 337 | |
| 338 EXPECT_FALSE(selector.SetUserPreference("bad_layout", GURL("http://system"))); | |
| 339 EXPECT_FALSE(selector.SetUserPreference("a", GURL("http://bad_url"))); | |
| 340 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system"))); | |
| 341 EXPECT_TRUE(selector.SetUserPreference("b", GURL("http://system"))); | |
| 342 EXPECT_TRUE(selector.SetUserPreference("c", GURL("http://system"))); | |
| 343 } | |
| 344 | |
| 345 TEST(VirtualKeyboardSelectorTest, TestSetUserPreferenceUserSystemMixed) { | |
| 346 static const char* ulayouts_1[] = { "a", "b", "c" }; | |
| 347 static const char* ulayouts_2[] = { "a", "c", "d" }; | |
| 348 static const char* layouts_1[] = { "a", "x", "y" }; | |
| 349 static const char* layouts_2[] = { "a", "y", "z" }; | |
| 350 | |
| 351 VirtualKeyboard user_virtual_keyboard_1( | |
| 352 GURL("http://user1"), CreateLayoutSet(ulayouts_1), false /* is_system */); | |
| 353 VirtualKeyboard user_virtual_keyboard_2( | |
| 354 GURL("http://user2"), CreateLayoutSet(ulayouts_2), false /* is_system */); | |
| 355 VirtualKeyboard system_virtual_keyboard_1( | |
| 356 GURL("http://system1"), CreateLayoutSet(layouts_1), true /* is_system */); | |
| 357 VirtualKeyboard system_virtual_keyboard_2( | |
| 358 GURL("http://system2"), CreateLayoutSet(layouts_2), true /* is_system */); | |
| 359 | |
| 360 TestableVirtualKeyboardSelector selector; | |
| 361 selector.AddVirtualKeyboard(user_virtual_keyboard_1.url(), | |
| 362 user_virtual_keyboard_1.supported_layouts(), | |
| 363 user_virtual_keyboard_1.is_system()); | |
| 364 selector.AddVirtualKeyboard(user_virtual_keyboard_2.url(), | |
| 365 user_virtual_keyboard_2.supported_layouts(), | |
| 366 user_virtual_keyboard_2.is_system()); | |
| 367 selector.AddVirtualKeyboard(system_virtual_keyboard_1.url(), | |
| 368 system_virtual_keyboard_1.supported_layouts(), | |
| 369 system_virtual_keyboard_1.is_system()); | |
| 370 selector.AddVirtualKeyboard(system_virtual_keyboard_2.url(), | |
| 371 system_virtual_keyboard_2.supported_layouts(), | |
| 372 system_virtual_keyboard_2.is_system()); | |
| 373 | |
| 374 // Set and then remove user pref (=NOP). | |
| 375 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://system1"))); | |
| 376 selector.RemoveUserPreference("a"); | |
| 377 | |
| 378 // At this point, user_virtual_keyboard_2 has the highest priority. | |
| 379 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); | |
| 380 EXPECT_TRUE(user_virtual_keyboard_2 == | |
| 381 *selector.SelectVirtualKeyboard("a")); | |
| 382 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); | |
| 383 EXPECT_TRUE(user_virtual_keyboard_2 == | |
| 384 *selector.SelectVirtualKeyboard("c")); | |
| 385 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("d")); | |
| 386 EXPECT_TRUE(user_virtual_keyboard_2 == | |
| 387 *selector.SelectVirtualKeyboard("d")); | |
| 388 | |
| 389 // Request "b". user_virtual_keyboard_1 should be returned. | |
| 390 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("b")); | |
| 391 EXPECT_TRUE(user_virtual_keyboard_1 == | |
| 392 *selector.SelectVirtualKeyboard("b")); | |
| 393 | |
| 394 // Set user pref. | |
| 395 EXPECT_TRUE(selector.SetUserPreference("a", GURL("http://user2"))); | |
| 396 | |
| 397 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); | |
| 398 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. | |
| 399 *selector.SelectVirtualKeyboard("a")); | |
| 400 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); | |
| 401 EXPECT_TRUE(user_virtual_keyboard_2 == | |
| 402 *selector.SelectVirtualKeyboard("c")); | |
| 403 | |
| 404 // Request "x". system_virtual_keyboard_2 should be returned (since it's | |
| 405 // added later than system_virtual_keyboard_1). | |
| 406 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x")); | |
| 407 EXPECT_TRUE(system_virtual_keyboard_1 == | |
| 408 *selector.SelectVirtualKeyboard("x")); | |
| 409 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); | |
| 410 EXPECT_TRUE(system_virtual_keyboard_1 == | |
| 411 *selector.SelectVirtualKeyboard("y")); | |
| 412 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); | |
| 413 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. | |
| 414 *selector.SelectVirtualKeyboard("a")); | |
| 415 | |
| 416 // Switch to system_virtual_keyboard_2. | |
| 417 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("z")); | |
| 418 EXPECT_TRUE(system_virtual_keyboard_2 == | |
| 419 *selector.SelectVirtualKeyboard("z")); | |
| 420 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); | |
| 421 EXPECT_TRUE(system_virtual_keyboard_2 == | |
| 422 *selector.SelectVirtualKeyboard("y")); | |
| 423 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); | |
| 424 EXPECT_TRUE(user_virtual_keyboard_2 == // follow the user pref. | |
| 425 *selector.SelectVirtualKeyboard("a")); | |
| 426 | |
| 427 // Switch back to system_virtual_keyboard_2. | |
| 428 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("x")); | |
| 429 EXPECT_TRUE(system_virtual_keyboard_1 == | |
| 430 *selector.SelectVirtualKeyboard("x")); | |
| 431 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("y")); | |
| 432 EXPECT_TRUE(system_virtual_keyboard_1 == | |
| 433 *selector.SelectVirtualKeyboard("y")); | |
| 434 | |
| 435 // Remove it. | |
| 436 selector.RemoveUserPreference("a"); | |
| 437 | |
| 438 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("a")); | |
| 439 EXPECT_TRUE(system_virtual_keyboard_1 == // user pref is no longer available | |
| 440 *selector.SelectVirtualKeyboard("a")); | |
| 441 | |
| 442 // Switch back to user_virtual_keyboard_1. | |
| 443 ASSERT_TRUE(selector.SelectVirtualKeyboardWithoutPreferences("c")); | |
| 444 EXPECT_TRUE(user_virtual_keyboard_2 == | |
| 445 *selector.SelectVirtualKeyboard("c")); | |
| 446 } | |
| 447 | |
| 309 } // namespace input_method | 448 } // namespace input_method |
| 310 } // namespace chromeos | 449 } // namespace chromeos |
| OLD | NEW |