| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <string> |
| 7 #include <vector> |
| 6 | 8 |
| 7 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 8 #include "base/scoped_temp_dir.h" | 10 #include "base/scoped_temp_dir.h" |
| 9 #include "base/string16.h" | 11 #include "base/string16.h" |
| 10 #include "base/utf_string_conversions.h" | 12 #include "base/utf_string_conversions.h" |
| 13 #include "chrome/browser/intents/default_intent_service.h" |
| 11 #include "chrome/browser/webdata/web_database.h" | 14 #include "chrome/browser/webdata/web_database.h" |
| 12 #include "chrome/browser/webdata/web_intents_table.h" | 15 #include "chrome/browser/webdata/web_intents_table.h" |
| 13 #include "chrome/common/chrome_paths.h" | 16 #include "chrome/common/chrome_paths.h" |
| 14 #include "googleurl/src/gurl.h" | 17 #include "googleurl/src/gurl.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "webkit/glue/web_intent_service_data.h" | 19 #include "webkit/glue/web_intent_service_data.h" |
| 17 | 20 |
| 18 using webkit_glue::WebIntentServiceData; | 21 using webkit_glue::WebIntentServiceData; |
| 19 | 22 |
| 20 namespace { | 23 namespace { |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 UTF8ToUTF16(test_url_fake.spec()), &intents)); | 178 UTF8ToUTF16(test_url_fake.spec()), &intents)); |
| 176 EXPECT_EQ(0U, intents.size()); | 179 EXPECT_EQ(0U, intents.size()); |
| 177 | 180 |
| 178 intent.action = test_action_2; | 181 intent.action = test_action_2; |
| 179 ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent)); | 182 ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent)); |
| 180 EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL( | 183 EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL( |
| 181 UTF8ToUTF16(test_url.spec()), &intents)); | 184 UTF8ToUTF16(test_url.spec()), &intents)); |
| 182 ASSERT_EQ(2U, intents.size()); | 185 ASSERT_EQ(2U, intents.size()); |
| 183 } | 186 } |
| 184 | 187 |
| 188 TEST_F(WebIntentsTableTest, DefaultServices) { |
| 189 DefaultIntentService default_service; |
| 190 default_service.action = ASCIIToUTF16("action"); |
| 191 default_service.type = ASCIIToUTF16("mime/type"); |
| 192 default_service.url_prefix = "url_prefix"; |
| 193 default_service.user_date = 1; |
| 194 default_service.suppression = 4; |
| 195 default_service.service_url = "service_url"; |
| 196 default_service.extension_url = "extension_url"; |
| 197 |
| 198 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service)); |
| 199 |
| 200 std::vector<DefaultIntentService> defaults; |
| 201 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 202 ASCIIToUTF16("no_action"), ASCIIToUTF16("mime/type"), "url_prefix", |
| 203 &defaults)); |
| 204 EXPECT_EQ(0U, defaults.size()); |
| 205 |
| 206 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 207 ASCIIToUTF16("action"), ASCIIToUTF16("mime/notype"), "url_prefix", |
| 208 &defaults)); |
| 209 EXPECT_EQ(0U, defaults.size()); |
| 210 |
| 211 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 212 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "no_url_prefix", |
| 213 &defaults)); |
| 214 EXPECT_EQ(0U, defaults.size()); |
| 215 |
| 216 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 217 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "url_prefix", |
| 218 &defaults)); |
| 219 |
| 220 ASSERT_EQ(1U, defaults.size()); |
| 221 EXPECT_EQ(ASCIIToUTF16("action"), defaults[0].action); |
| 222 EXPECT_EQ(ASCIIToUTF16("mime/type"), defaults[0].type); |
| 223 EXPECT_EQ("url_prefix", defaults[0].url_prefix); |
| 224 EXPECT_EQ(1, defaults[0].user_date); |
| 225 EXPECT_EQ(4, defaults[0].suppression); |
| 226 EXPECT_EQ("service_url", defaults[0].service_url); |
| 227 EXPECT_EQ("extension_url", defaults[0].extension_url); |
| 228 } |
| 229 |
| 230 TEST_F(WebIntentsTableTest, TestDefaultMimeTypes) { |
| 231 DefaultIntentService default_service; |
| 232 default_service.action = ASCIIToUTF16("action"); |
| 233 default_service.type = ASCIIToUTF16("mime/type1"); |
| 234 default_service.url_prefix = "url_prefix"; |
| 235 default_service.user_date = 1; |
| 236 default_service.suppression = 4; |
| 237 default_service.service_url = "service_url"; |
| 238 default_service.extension_url = "extension_url"; |
| 239 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service)); |
| 240 |
| 241 default_service.type = ASCIIToUTF16("mime/*"); |
| 242 default_service.service_url = "service_url_star"; |
| 243 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service)); |
| 244 |
| 245 std::vector<DefaultIntentService> defaults; |
| 246 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 247 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "url_prefix", |
| 248 &defaults)); |
| 249 ASSERT_EQ(1U, defaults.size()); |
| 250 EXPECT_EQ("service_url_star", defaults[0].service_url); |
| 251 |
| 252 defaults.clear(); |
| 253 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 254 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix", |
| 255 &defaults)); |
| 256 ASSERT_EQ(2U, defaults.size()); |
| 257 |
| 258 defaults.clear(); |
| 259 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 260 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1;type=k"), |
| 261 "url_prefix", &defaults)); |
| 262 ASSERT_EQ(2U, defaults.size()); |
| 263 } |
| 264 |
| 265 TEST_F(WebIntentsTableTest, TestUrlPrefixDefaults) { |
| 266 DefaultIntentService default_service; |
| 267 default_service.action = ASCIIToUTF16("action"); |
| 268 default_service.type = ASCIIToUTF16("mime/type1"); |
| 269 default_service.url_prefix = "url_prefix"; |
| 270 default_service.user_date = 1; |
| 271 default_service.suppression = 4; |
| 272 default_service.service_url = "service_url"; |
| 273 default_service.extension_url = "extension_url"; |
| 274 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service)); |
| 275 |
| 276 std::vector<DefaultIntentService> defaults; |
| 277 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 278 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_not_prefix", |
| 279 &defaults)); |
| 280 ASSERT_EQ(0U, defaults.size()); |
| 281 |
| 282 defaults.clear(); |
| 283 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 284 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix_abc", |
| 285 &defaults)); |
| 286 ASSERT_EQ(1U, defaults.size()); |
| 287 |
| 288 defaults.clear(); |
| 289 ASSERT_TRUE(IntentsTable()->GetDefaultServices( |
| 290 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix_xyz", |
| 291 &defaults)); |
| 292 ASSERT_EQ(1U, defaults.size()); |
| 293 } |
| 294 |
| 295 |
| 185 } // namespace | 296 } // namespace |
| OLD | NEW |