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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/search_engines/template_url_service_unittest.cc
diff --git a/chrome/browser/search_engines/template_url_service_unittest.cc b/chrome/browser/search_engines/template_url_service_unittest.cc
index ddc06380b068dc5a15b115a81b7277584f0d54a4..30a4c7262c40ef701c188ee5ab96d61078be4197 100644
--- a/chrome/browser/search_engines/template_url_service_unittest.cc
+++ b/chrome/browser/search_engines/template_url_service_unittest.cc
@@ -28,6 +28,7 @@
#include "chrome/test/base/testing_profile.h"
#include "components/history/core/browser/history_service.h"
#include "components/search_engines/keyword_web_data_service.h"
+#include "components/search_engines/search_engines_test_util.h"
#include "components/search_engines/search_host_to_urls_map.h"
#include "components/search_engines/search_terms_data.h"
#include "components/search_engines/template_url.h"
@@ -1481,6 +1482,100 @@ TEST_F(TemplateURLServiceTest, ExtensionEnginesNotPersist) {
EXPECT_FALSE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext2")));
}
+// Check that default extension engine and user engines with same keywords are
+// handled corrected.
+TEST_F(TemplateURLServiceTest, DefaultExtensionAndUserEnginesWithSameKeywords) {
+ test_util()->VerifyLoad();
+ // TemplateURLData used for all engines.
+ auto turl_data = GenerateDummyTemplateURLData("extension");
+ turl_data->safe_for_autoreplace = false;
+
+ // Add non replaceable user engine.
+ const TemplateURL* user1 =
+ model()->Add(base::MakeUnique<TemplateURL>(*turl_data));
+
+ // Add default extension engine with same keyword.
+ auto ext_dse = base::MakeUnique<TemplateURL>(
+ *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
+ auto extension_info =
+ base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id");
+ extension_info->wants_to_be_default_engine = true;
+
+ const TemplateURL* extension = model()->AddExtensionControlledTURL(
+ std::move(ext_dse), std::move(extension_info));
+
+ // Add another non replaceable user engine with same keyword as extension.
+ const TemplateURL* user2 =
+ model()->Add(base::MakeUnique<TemplateURL>(*turl_data));
+
+ // Wait for any saves to finish.
+ base::RunLoop().RunUntilIdle();
+
+ // Check extension DSE is set as default and its keyword is not changed.
+ auto current_dse = model()->GetDefaultSearchProvider();
+ EXPECT_EQ(extension, current_dse);
+ ExpectSimilar(turl_data.get(), &current_dse->data());
+
+ // Expect that both user engine keywords are changed because of conflict
+ // with extension engine keyword.
+ EXPECT_NE(turl_data->keyword(), user1->keyword());
+ EXPECT_NE(turl_data->keyword(), user2->keyword());
+ // Check that user engine keywords are different.
+ EXPECT_NE(user1->keyword(), user2->keyword());
+}
+
+// Check that two extensions with same engine are handled corrected.
+TEST_F(TemplateURLServiceTest, ExtensionsWithSameKeywords) {
+ test_util()->VerifyLoad();
+
+ // TemplateURLData used for all extensions.
+ auto turl_data = GenerateDummyTemplateURLData("extension");
+ turl_data->safe_for_autoreplace = false;
+
+ // Add non default extension engine.
+ auto ext_dse = base::MakeUnique<TemplateURL>(
+ *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
+ auto extension_info =
+ base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id1");
+ extension_info->wants_to_be_default_engine = false;
+
+ const TemplateURL* extension1 = model()->AddExtensionControlledTURL(
+ std::move(ext_dse), std::move(extension_info));
+
+ // Add default extension engine.
+ ext_dse = base::MakeUnique<TemplateURL>(
+ *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
+ extension_info =
+ base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id2");
+ extension_info->wants_to_be_default_engine = true;
+
+ const TemplateURL* extension2 = model()->AddExtensionControlledTURL(
+ std::move(ext_dse), std::move(extension_info));
+
+ // Add another non default extension with same keyword. This action must not
+ // change default extension keyword due to conflict.
+ ext_dse = base::MakeUnique<TemplateURL>(
+ *turl_data, TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION);
+ extension_info =
+ base::MakeUnique<TemplateURL::AssociatedExtensionInfo>("extension_id3");
+ extension_info->wants_to_be_default_engine = false;
+
+ const TemplateURL* extension3 = model()->AddExtensionControlledTURL(
+ std::move(ext_dse), std::move(extension_info));
+ // Wait for any saves to finish.
+ base::RunLoop().RunUntilIdle();
+
+ // Check that extension2 is set as default. Its keyword must not be changed.
+ auto current_dse = model()->GetDefaultSearchProvider();
+ EXPECT_EQ(extension2, current_dse);
+ ExpectSimilar(turl_data.get(), &current_dse->data());
+
+ // Check that non default extensions keywords are updated.
+ EXPECT_NE(extension1->keyword(), turl_data->keyword());
+ EXPECT_NE(extension3->keyword(), turl_data->keyword());
+ EXPECT_NE(extension1->keyword(), extension3->keyword());
+}
+
TEST_F(TemplateURLServiceTest, ExtensionEngineVsPolicy) {
// Set a managed preference that establishes a default search provider.
std::unique_ptr<TemplateURLData> managed = CreateTestSearchEngine();
« 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