Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "components/search_engines/template_url_service.h" | 5 #include "components/search_engines/template_url_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1398 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1398 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
| 1399 | 1399 |
| 1400 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1400 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
| 1401 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", | 1401 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", |
| 1402 std::string(), std::string(), std::string(), true, kPrepopulatedId, | 1402 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
| 1403 "UTF-8", Time(), Time(), Time(), | 1403 "UTF-8", Time(), Time(), Time(), |
| 1404 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1404 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1405 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1405 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
| 1406 new TemplateURL::AssociatedExtensionInfo("ext")); | 1406 new TemplateURL::AssociatedExtensionInfo("ext")); |
| 1407 extension_info->wants_to_be_default_engine = true; | 1407 extension_info->wants_to_be_default_engine = true; |
| 1408 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1408 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL( |
| 1409 std::move(ext_dse), std::move(extension_info)); | 1409 std::move(ext_dse), std::move(extension_info)); |
| 1410 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); | 1410 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); |
| 1411 | 1411 |
| 1412 model()->RemoveExtensionControlledTURL( | 1412 test_util()->RemoveExtensionControlledTURL("ext"); |
| 1413 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | |
| 1414 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); | 1413 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); |
| 1415 } | 1414 } |
| 1416 | 1415 |
| 1417 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) { | 1416 TEST_F(TemplateURLServiceTest, DefaultExtensionEnginePersist) { |
| 1418 test_util()->VerifyLoad(); | 1417 test_util()->VerifyLoad(); |
| 1419 // Add third-party default search engine. | 1418 // Add third-party default search engine. |
| 1420 TemplateURL* user_dse = AddKeywordWithDate( | 1419 TemplateURL* user_dse = AddKeywordWithDate( |
| 1421 "user", "user", "http://www.goo.com/s?q={searchTerms}", std::string(), | 1420 "user", "user", "http://www.goo.com/s?q={searchTerms}", std::string(), |
| 1422 std::string(), std::string(), true, "UTF-8", Time(), Time(), Time()); | 1421 std::string(), std::string(), true, "UTF-8", Time(), Time(), Time()); |
| 1423 model()->SetUserSelectedDefaultSearchProvider(user_dse); | 1422 model()->SetUserSelectedDefaultSearchProvider(user_dse); |
| 1424 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1423 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
| 1425 | 1424 |
| 1425 // Create non default extension search engine. | |
| 1426 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1426 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
| 1427 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1427 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
| 1428 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(), | 1428 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(), |
| 1429 Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1429 Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1430 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( | 1430 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( |
| 1431 new TemplateURL::AssociatedExtensionInfo("ext1")); | 1431 new TemplateURL::AssociatedExtensionInfo("ext1")); |
| 1432 extension_info->wants_to_be_default_engine = false; | 1432 extension_info->wants_to_be_default_engine = false; |
| 1433 model()->AddExtensionControlledTURL(std::move(ext_dse), | 1433 |
| 1434 std::move(extension_info)); | 1434 test_util()->AddExtensionControlledTURL(std::move(ext_dse), |
| 1435 std::move(extension_info)); | |
| 1435 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); | 1436 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); |
| 1436 | 1437 // Create default extension search engine. |
|
Peter Kasting
2016/12/22 20:49:03
Nit: Blank line above this
Alexander Yashkin
2016/12/23 19:44:08
Done
| |
| 1437 ext_dse = CreateKeywordWithDate( | 1438 ext_dse = CreateKeywordWithDate( |
| 1438 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", | 1439 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", |
| 1439 std::string(), std::string(), std::string(), true, kPrepopulatedId, | 1440 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
| 1440 "UTF-8", Time(), Time(), Time(), | 1441 "UTF-8", Time(), Time(), Time(), |
| 1441 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1442 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1442 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); | 1443 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); |
| 1443 extension_info->wants_to_be_default_engine = true; | 1444 extension_info->wants_to_be_default_engine = true; |
| 1444 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1445 |
| 1446 std::unique_ptr<TemplateURL> cloned_ext_dse( | |
|
Peter Kasting
2016/12/22 20:49:03
Nit: Prefer = to () for this "copy-like" initializ
Alexander Yashkin
2016/12/23 19:44:08
Done
| |
| 1447 base::MakeUnique<TemplateURL>(ext_dse->data())); | |
| 1448 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL( | |
| 1445 std::move(ext_dse), std::move(extension_info)); | 1449 std::move(ext_dse), std::move(extension_info)); |
| 1446 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); | 1450 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); |
| 1447 | 1451 |
| 1448 test_util()->ResetModel(true); | 1452 test_util()->ResetModel(false); |
| 1449 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); | 1453 // Non default extension engines are not persisted. |
| 1450 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); | |
| 1451 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1454 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
| 1452 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); | 1455 |
| 1456 // Default search engine from extension must be persisted between browser | |
| 1457 // restarts, until extension is unloaded/disabled. Check it persists. | |
|
Peter Kasting
2016/12/22 20:49:03
Nit: Last sentence unnecessary (restates the code)
Alexander Yashkin
2016/12/23 19:44:08
Done
| |
| 1458 EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); | |
| 1459 ExpectSimilar(cloned_ext_dse.get(), model()->GetDefaultSearchProvider()); | |
| 1460 } | |
| 1461 | |
| 1462 TEST_F(TemplateURLServiceTest, DefaultExtensionEnginePersistsBeforeLoad) { | |
| 1463 // Emulate extension system loaded and extension registers itself to template | |
| 1464 // url service, this is always done before TemplateURLService is loaded. | |
|
Peter Kasting
2016/12/22 20:49:03
Nit: The meaning of this is unclear. Do you mean:
Alexander Yashkin
2016/12/23 19:44:08
Done, thanks.
| |
| 1465 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | |
| 1466 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", | |
| 1467 std::string(), std::string(), std::string(), true, kPrepopulatedId, | |
| 1468 "UTF-8", Time(), Time(), Time(), | |
| 1469 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | |
| 1470 auto extension_info = | |
| 1471 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1"); | |
| 1472 extension_info->wants_to_be_default_engine = true; | |
| 1473 | |
| 1474 auto cloned_ext_dse = base::MakeUnique<TemplateURL>(ext_dse->data()); | |
| 1475 test_util()->AddExtensionControlledTURL(std::move(ext_dse), | |
| 1476 std::move(extension_info)); | |
| 1477 | |
| 1478 // Default search engine from extension must be persisted between browser | |
| 1479 // restarts, and is available before TemplateURLService load. | |
| 1480 EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); | |
| 1481 ExpectSimilar(cloned_ext_dse.get(), model()->GetDefaultSearchProvider()); | |
| 1482 | |
| 1483 // Load template url service. | |
| 1484 test_util()->VerifyLoad(); | |
| 1485 // Check extension DSE is the same after service load. | |
| 1486 ExpectSimilar(cloned_ext_dse.get(), model()->GetDefaultSearchProvider()); | |
| 1453 } | 1487 } |
| 1454 | 1488 |
| 1455 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { | 1489 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { |
| 1456 // Set a managed preference that establishes a default search provider. | 1490 // Set a managed preference that establishes a default search provider. |
| 1457 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); | 1491 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); |
| 1458 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); | 1492 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); |
| 1459 test_util()->VerifyLoad(); | 1493 test_util()->VerifyLoad(); |
| 1460 // Verify that the default manager we are getting is the managed one. | 1494 // Verify that the default manager we are getting is the managed one. |
| 1461 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed); | 1495 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed); |
| 1462 EXPECT_TRUE(model()->is_default_search_managed()); | 1496 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1463 const TemplateURL* actual_managed_default = | 1497 const TemplateURL* actual_managed_default = |
| 1464 model()->GetDefaultSearchProvider(); | 1498 model()->GetDefaultSearchProvider(); |
| 1465 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1499 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1466 | 1500 |
| 1467 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( | 1501 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( |
| 1468 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1502 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
| 1469 std::string(), std::string(), std::string(), true, kPrepopulatedId, | 1503 std::string(), std::string(), std::string(), true, kPrepopulatedId, |
| 1470 "UTF-8", Time(), Time(), Time(), | 1504 "UTF-8", Time(), Time(), Time(), |
| 1471 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); | 1505 TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); |
| 1472 auto extension_info = | 1506 auto extension_info = |
| 1473 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1"); | 1507 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1"); |
| 1474 extension_info->wants_to_be_default_engine = true; | 1508 extension_info->wants_to_be_default_engine = true; |
| 1475 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( | 1509 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL( |
| 1476 std::move(ext_dse), std::move(extension_info)); | 1510 std::move(ext_dse), std::move(extension_info)); |
| 1477 EXPECT_EQ(ext_dse_ptr, | 1511 EXPECT_EQ(ext_dse_ptr, |
| 1478 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1512 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
| 1479 EXPECT_TRUE(model()->is_default_search_managed()); | 1513 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1480 actual_managed_default = model()->GetDefaultSearchProvider(); | 1514 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1481 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1515 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1482 } | 1516 } |
| 1483 | 1517 |
| 1484 TEST_F(TemplateURLServiceTest, LastVisitedTimeUpdate) { | 1518 TEST_F(TemplateURLServiceTest, LastVisitedTimeUpdate) { |
| 1485 test_util()->VerifyLoad(); | 1519 test_util()->VerifyLoad(); |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 1513 TemplateURL* update_url = | 1547 TemplateURL* update_url = |
| 1514 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); | 1548 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); |
| 1515 const base::Time update_last_modified = update_url->last_modified(); | 1549 const base::Time update_last_modified = update_url->last_modified(); |
| 1516 model()->SetUserSelectedDefaultSearchProvider(update_url); | 1550 model()->SetUserSelectedDefaultSearchProvider(update_url); |
| 1517 TemplateURL* reloaded_url = | 1551 TemplateURL* reloaded_url = |
| 1518 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); | 1552 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); |
| 1519 const base::Time reloaded_last_modified = reloaded_url->last_modified(); | 1553 const base::Time reloaded_last_modified = reloaded_url->last_modified(); |
| 1520 EXPECT_NE(original_last_modified, reloaded_last_modified); | 1554 EXPECT_NE(original_last_modified, reloaded_last_modified); |
| 1521 EXPECT_EQ(update_last_modified, reloaded_last_modified); | 1555 EXPECT_EQ(update_last_modified, reloaded_last_modified); |
| 1522 } | 1556 } |
| OLD | NEW |