Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: chrome/browser/search_engines/template_url_service_unittest.cc

Issue 2479113002: Make extensions DSE persistent in browser prefs (Closed)
Patch Set: Tests updated(rewritten) after review Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1371 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 model()->SetUserSelectedDefaultSearchProvider(user_dse); 1382 model()->SetUserSelectedDefaultSearchProvider(user_dse);
1383 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1383 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1384 1384
1385 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1385 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1386 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}", 1386 model(), "ext", "ext", "http://www.search.com/s?q={searchTerms}",
1387 std::string(), std::string(), std::string(), true, kPrepopulatedId, 1387 std::string(), std::string(), std::string(), true, kPrepopulatedId,
1388 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1388 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1389 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( 1389 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
1390 new TemplateURL::AssociatedExtensionInfo("ext")); 1390 new TemplateURL::AssociatedExtensionInfo("ext"));
1391 extension_info->wants_to_be_default_engine = true; 1391 extension_info->wants_to_be_default_engine = true;
1392 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1392 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL(
1393 std::move(ext_dse), std::move(extension_info)); 1393 std::move(ext_dse), std::move(extension_info));
1394 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); 1394 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider());
1395 1395
1396 model()->RemoveExtensionControlledTURL( 1396 test_util()->RemoveExtensionControlledTURL("ext");
1397 "ext", TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1398 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); 1397 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider());
1399 } 1398 }
1400 1399
1401 TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) { 1400 TEST_F(TemplateURLServiceTest, DefaultExtensionEnginePersist) {
1402 test_util()->VerifyLoad(); 1401 test_util()->VerifyLoad();
1403 // Add third-party default search engine. 1402 // Add third-party default search engine.
1404 TemplateURL* user_dse = AddKeywordWithDate( 1403 TemplateURL* user_dse = AddKeywordWithDate(
1405 "user", "user", "http://www.goo.com/s?q={searchTerms}", 1404 "user", "user", "http://www.goo.com/s?q={searchTerms}",
1406 std::string(), std::string(), std::string(), 1405 std::string(), std::string(), std::string(),
1407 true, "UTF-8", Time(), Time()); 1406 true, "UTF-8", Time(), Time());
1408 model()->SetUserSelectedDefaultSearchProvider(user_dse); 1407 model()->SetUserSelectedDefaultSearchProvider(user_dse);
1409 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1408 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1410 1409
1410 // Create non default extension search engine.
1411 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1411 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1412 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", 1412 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}",
1413 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(), 1413 std::string(), std::string(), std::string(), true, 0, "UTF-8", Time(),
1414 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1414 Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1415 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info( 1415 std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
1416 new TemplateURL::AssociatedExtensionInfo("ext1")); 1416 new TemplateURL::AssociatedExtensionInfo("ext1"));
1417 extension_info->wants_to_be_default_engine = false; 1417 extension_info->wants_to_be_default_engine = false;
1418 model()->AddExtensionControlledTURL(std::move(ext_dse), 1418
1419 std::move(extension_info)); 1419 test_util()->AddExtensionControlledTURL(std::move(ext_dse),
1420 std::move(extension_info));
1420 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider()); 1421 EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
1421 1422 // Create default extension search engine.
1422 ext_dse = CreateKeywordWithDate( 1423 ext_dse = CreateKeywordWithDate(
1423 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}", 1424 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}",
1424 std::string(), std::string(), std::string(), true, kPrepopulatedId, 1425 std::string(), std::string(), std::string(), true, kPrepopulatedId,
1425 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1426 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1426 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2")); 1427 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2"));
1427 extension_info->wants_to_be_default_engine = true; 1428 extension_info->wants_to_be_default_engine = true;
1428 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1429
1430 std::unique_ptr<TemplateURL> cloned_ext_dse(
1431 base::MakeUnique<TemplateURL>(ext_dse->data()));
1432 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL(
1429 std::move(ext_dse), std::move(extension_info)); 1433 std::move(ext_dse), std::move(extension_info));
1430 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); 1434 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider());
1431 1435
1432 test_util()->ResetModel(true); 1436 test_util()->ResetModel(false);
1433 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); 1437 // Non default extension engines are not persisted.
1434 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider());
1435 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); 1438 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1")));
1436 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); 1439 // Default search engine from extension must be persisted between browser
1440 // restarts, until extension is unloaded/disabled.
1441 // Check it persists before template url service loaded.
1442 EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2")));
1443 TemplateURL* current_dse = model()->GetDefaultSearchProvider();
1444 ExpectSimilar(cloned_ext_dse.get(), current_dse);
1445
1446 // Load template url service, but extensions are not loaded and not registered
1447 // yet. Still extension default search.
1448 test_util()->VerifyLoad();
1449 current_dse = model()->GetDefaultSearchProvider();
1450 ExpectSimilar(cloned_ext_dse.get(), current_dse);
1451
1452 // Emulate extension system loaded and extension registers itself to template
1453 // url service, still same extension engine is default.
vasilii 2016/12/06 19:16:42 Can you explain why this is true?
Alexander Yashkin 2016/12/09 08:19:52 Thats how I think it should work. How TemplateURL
vasilii 2016/12/13 17:16:39 Acknowledged.
1454 ext_dse = CreateKeywordWithDate(
1455 model(), "ext2", "ext2", "http://www.ext2.com/s?q={searchTerms}",
1456 std::string(), std::string(), std::string(), true, kPrepopulatedId,
1457 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1458 extension_info.reset(new TemplateURL::AssociatedExtensionInfo("ext2"));
1459 extension_info->wants_to_be_default_engine = true;
1460
1461 test_util()->AddExtensionControlledTURL(std::move(ext_dse),
1462 std::move(extension_info));
1463 current_dse = model()->GetDefaultSearchProvider();
1464 ExpectSimilar(cloned_ext_dse.get(), current_dse);
1437 } 1465 }
1438 1466
1439 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { 1467 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
1440 // Set a managed preference that establishes a default search provider. 1468 // Set a managed preference that establishes a default search provider.
1441 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); 1469 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
1442 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); 1470 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
1443 test_util()->VerifyLoad(); 1471 test_util()->VerifyLoad();
1444 // Verify that the default manager we are getting is the managed one. 1472 // Verify that the default manager we are getting is the managed one.
1445 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed); 1473 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed);
1446 EXPECT_TRUE(model()->is_default_search_managed()); 1474 EXPECT_TRUE(model()->is_default_search_managed());
1447 const TemplateURL* actual_managed_default = 1475 const TemplateURL* actual_managed_default =
1448 model()->GetDefaultSearchProvider(); 1476 model()->GetDefaultSearchProvider();
1449 ExpectSimilar(expected_managed_default.get(), actual_managed_default); 1477 ExpectSimilar(expected_managed_default.get(), actual_managed_default);
1450 1478
1451 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate( 1479 std::unique_ptr<TemplateURL> ext_dse = CreateKeywordWithDate(
1452 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", 1480 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}",
1453 std::string(), std::string(), std::string(), true, kPrepopulatedId, 1481 std::string(), std::string(), std::string(), true, kPrepopulatedId,
1454 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION); 1482 "UTF-8", Time(), Time(), TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1455 auto extension_info = 1483 auto extension_info =
1456 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1"); 1484 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("ext1");
1457 extension_info->wants_to_be_default_engine = true; 1485 extension_info->wants_to_be_default_engine = true;
1458 TemplateURL* ext_dse_ptr = model()->AddExtensionControlledTURL( 1486 TemplateURL* ext_dse_ptr = test_util()->AddExtensionControlledTURL(
1459 std::move(ext_dse), std::move(extension_info)); 1487 std::move(ext_dse), std::move(extension_info));
1460 EXPECT_EQ(ext_dse_ptr, 1488 EXPECT_EQ(ext_dse_ptr,
1461 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); 1489 model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1")));
1462 EXPECT_TRUE(model()->is_default_search_managed()); 1490 EXPECT_TRUE(model()->is_default_search_managed());
1463 actual_managed_default = model()->GetDefaultSearchProvider(); 1491 actual_managed_default = model()->GetDefaultSearchProvider();
1464 ExpectSimilar(expected_managed_default.get(), actual_managed_default); 1492 ExpectSimilar(expected_managed_default.get(), actual_managed_default);
1465 } 1493 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698