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

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

Issue 2682453002: Changed keywords conflicts resolution for extensions search engines. (Closed)
Patch Set: Rebase on master Created 3 years, 10 months 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 10 matching lines...) Expand all
21 #include "base/strings/utf_string_conversions.h" 21 #include "base/strings/utf_string_conversions.h"
22 #include "base/task/cancelable_task_tracker.h" 22 #include "base/task/cancelable_task_tracker.h"
23 #include "base/test/simple_test_clock.h" 23 #include "base/test/simple_test_clock.h"
24 #include "base/threading/thread.h" 24 #include "base/threading/thread.h"
25 #include "base/time/time.h" 25 #include "base/time/time.h"
26 #include "chrome/browser/history/history_service_factory.h" 26 #include "chrome/browser/history/history_service_factory.h"
27 #include "chrome/browser/search_engines/template_url_service_test_util.h" 27 #include "chrome/browser/search_engines/template_url_service_test_util.h"
28 #include "chrome/test/base/testing_profile.h" 28 #include "chrome/test/base/testing_profile.h"
29 #include "components/history/core/browser/history_service.h" 29 #include "components/history/core/browser/history_service.h"
30 #include "components/search_engines/keyword_web_data_service.h" 30 #include "components/search_engines/keyword_web_data_service.h"
31 #include "components/search_engines/search_engines_test_util.h"
31 #include "components/search_engines/search_host_to_urls_map.h" 32 #include "components/search_engines/search_host_to_urls_map.h"
32 #include "components/search_engines/search_terms_data.h" 33 #include "components/search_engines/search_terms_data.h"
33 #include "components/search_engines/template_url.h" 34 #include "components/search_engines/template_url.h"
34 #include "components/search_engines/template_url_prepopulate_data.h" 35 #include "components/search_engines/template_url_prepopulate_data.h"
35 #include "content/public/test/test_browser_thread_bundle.h" 36 #include "content/public/test/test_browser_thread_bundle.h"
36 #include "testing/gtest/include/gtest/gtest.h" 37 #include "testing/gtest/include/gtest/gtest.h"
37 38
38 using base::ASCIIToUTF16; 39 using base::ASCIIToUTF16;
39 using base::Time; 40 using base::Time;
40 using base::TimeDelta; 41 using base::TimeDelta;
(...skipping 1433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 std::move(ext_dse), std::move(extension_info)); 1475 std::move(ext_dse), std::move(extension_info));
1475 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider()); 1476 EXPECT_EQ(ext_dse_ptr, model()->GetDefaultSearchProvider());
1476 1477
1477 test_util()->ResetModel(true); 1478 test_util()->ResetModel(true);
1478 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user")); 1479 user_dse = model()->GetTemplateURLForKeyword(ASCIIToUTF16("user"));
1479 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider()); 1480 ExpectSimilar(user_dse, model()->GetDefaultSearchProvider());
1480 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); 1481 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1")));
1481 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2"))); 1482 EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2")));
1482 } 1483 }
1483 1484
1485 // Check that default extension engine and user engines with same keywords are
1486 // handled corrected.
1487 TEST_F(TemplateURLServiceTest, DefaultExtensionAndUserEnginesWithSameKeywords) {
1488 test_util()->VerifyLoad();
1489 // TemplateURLData used for all engines.
1490 auto turl_data = GenerateDummyTemplateURLData("extension");
1491 turl_data->safe_for_autoreplace = false;
1492
1493 // Add non replaceable user engine.
1494 const TemplateURL* user1 =
1495 model()->Add(base::MakeUnique<TemplateURL>(*turl_data));
1496
1497 // Add default extension engine with same keyword.
1498 auto ext_dse = base::MakeUnique<TemplateURL>(
1499 *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1500 auto extension_info =
1501 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id");
1502 extension_info->wants_to_be_default_engine = true;
1503
1504 const TemplateURL* extension = model()->AddExtensionControlledTURL(
1505 std::move(ext_dse), std::move(extension_info));
1506
1507 // Add another non replaceable user engine with same keyword as extension.
1508 const TemplateURL* user2 =
1509 model()->Add(base::MakeUnique<TemplateURL>(*turl_data));
1510
1511 // Wait for any saves to finish.
1512 base::RunLoop().RunUntilIdle();
1513
1514 // Check extension DSE is set as default and its keyword is not changed.
1515 auto current_dse = model()->GetDefaultSearchProvider();
1516 EXPECT_EQ(extension, current_dse);
1517 ExpectSimilar(turl_data.get(), &current_dse->data());
1518
1519 // Expect that both user engine keywords are changed because of conflict
1520 // with extension engine keyword.
1521 EXPECT_NE(turl_data->keyword(), user1->keyword());
1522 EXPECT_NE(turl_data->keyword(), user2->keyword());
1523 // Check that user engine keywords are different.
1524 EXPECT_NE(user1->keyword(), user2->keyword());
1525 }
1526
1527 // Check that two extensions with same engine are handled corrected.
1528 TEST_F(TemplateURLServiceTest, ExtensionsWithSameKeywords) {
1529 test_util()->VerifyLoad();
1530
1531 // TemplateURLData used for all extensions.
1532 auto turl_data = GenerateDummyTemplateURLData("extension");
1533 turl_data->safe_for_autoreplace = false;
1534
1535 // Add non default extension engine.
1536 auto ext_dse = base::MakeUnique<TemplateURL>(
1537 *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1538 auto extension_info =
1539 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id1");
1540 extension_info->wants_to_be_default_engine = false;
1541
1542 const TemplateURL* extension1 = model()->AddExtensionControlledTURL(
1543 std::move(ext_dse), std::move(extension_info));
1544
1545 // Add default extension engine.
1546 ext_dse = base::MakeUnique<TemplateURL>(
1547 *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1548 extension_info =
1549 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id2");
1550 extension_info->wants_to_be_default_engine = true;
1551
1552 const TemplateURL* extension2 = model()->AddExtensionControlledTURL(
1553 std::move(ext_dse), std::move(extension_info));
1554
1555 // Add another non default extension with same keyword. This action must not
1556 // change default extension keyword due to conflict.
1557 ext_dse = base::MakeUnique<TemplateURL>(
1558 *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
1559 extension_info =
1560 base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id3");
1561 extension_info->wants_to_be_default_engine = false;
1562
1563 const TemplateURL* extension3 = model()->AddExtensionControlledTURL(
1564 std::move(ext_dse), std::move(extension_info));
1565 // Wait for any saves to finish.
1566 base::RunLoop().RunUntilIdle();
1567
1568 // Check that extension2 is set as default. Its keyword must not be changed.
1569 auto current_dse = model()->GetDefaultSearchProvider();
1570 EXPECT_EQ(extension2, current_dse);
1571 ExpectSimilar(turl_data.get(), &current_dse->data());
1572
1573 // Check that non default extensions keywords are updated.
1574 EXPECT_NE(extension1->keyword(), turl_data->keyword());
1575 EXPECT_NE(extension3->keyword(), turl_data->keyword());
1576 EXPECT_NE(extension1->keyword(), extension3->keyword());
1577 }
1578
1484 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) { 1579 TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
1485 // Set a managed preference that establishes a default search provider. 1580 // Set a managed preference that establishes a default search provider.
1486 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine(); 1581 std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
1487 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile()); 1582 SetManagedDefaultSearchPreferences(*managed, true, test_util()->profile());
1488 test_util()->VerifyLoad(); 1583 test_util()->VerifyLoad();
1489 // Verify that the default manager we are getting is the managed one. 1584 // Verify that the default manager we are getting is the managed one.
1490 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed); 1585 auto expected_managed_default = base::MakeUnique<TemplateURL>(*managed);
1491 EXPECT_TRUE(model()->is_default_search_managed()); 1586 EXPECT_TRUE(model()->is_default_search_managed());
1492 const TemplateURL* actual_managed_default = 1587 const TemplateURL* actual_managed_default =
1493 model()->GetDefaultSearchProvider(); 1588 model()->GetDefaultSearchProvider();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 TemplateURL* update_url = 1637 TemplateURL* update_url =
1543 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); 1638 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword"));
1544 const base::Time update_last_modified = update_url->last_modified(); 1639 const base::Time update_last_modified = update_url->last_modified();
1545 model()->SetUserSelectedDefaultSearchProvider(update_url); 1640 model()->SetUserSelectedDefaultSearchProvider(update_url);
1546 TemplateURL* reloaded_url = 1641 TemplateURL* reloaded_url =
1547 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword")); 1642 model()->GetTemplateURLForKeyword(ASCIIToUTF16("engine_keyword"));
1548 const base::Time reloaded_last_modified = reloaded_url->last_modified(); 1643 const base::Time reloaded_last_modified = reloaded_url->last_modified();
1549 EXPECT_NE(original_last_modified, reloaded_last_modified); 1644 EXPECT_NE(original_last_modified, reloaded_last_modified);
1550 EXPECT_EQ(update_last_modified, reloaded_last_modified); 1645 EXPECT_EQ(update_last_modified, reloaded_last_modified);
1551 } 1646 }
OLDNEW
« no previous file with comments | « no previous file | components/search_engines/template_url_service.h » ('j') | components/search_engines/template_url_service.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698