172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 43345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/file_util.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_temp_dir.h" 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_vector.h" 872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "base/utf_string_conversions.h" 9513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/search_engines/search_engine_type.h" 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/search_engines/search_terms_data.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/search_engines/template_url.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/search_engines/template_url_prepopulate_data.h" 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/search_engines/template_url_model.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/common/pref_names.h" 1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/test/testing_pref_service.h" 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/test/testing_profile.h" 17513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "grit/theme_resources.h" 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochtypedef testing::Test TemplateURLPrepopulateDataTest; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst int kCountryIds[] = { 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'A'<<8|'D', 'A'<<8|'E', 'A'<<8|'F', 'A'<<8|'G', 'A'<<8|'I', 24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'A'<<8|'L', 'A'<<8|'M', 'A'<<8|'N', 'A'<<8|'O', 'A'<<8|'Q', 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'A'<<8|'R', 'A'<<8|'S', 'A'<<8|'T', 'A'<<8|'U', 'A'<<8|'W', 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'A'<<8|'X', 'A'<<8|'Z', 'B'<<8|'A', 'B'<<8|'B', 'B'<<8|'D', 27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'B'<<8|'E', 'B'<<8|'F', 'B'<<8|'G', 'B'<<8|'H', 'B'<<8|'I', 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'B'<<8|'J', 'B'<<8|'M', 'B'<<8|'N', 'B'<<8|'O', 'B'<<8|'R', 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'B'<<8|'S', 'B'<<8|'T', 'B'<<8|'V', 'B'<<8|'W', 'B'<<8|'Y', 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'B'<<8|'Z', 'C'<<8|'A', 'C'<<8|'C', 'C'<<8|'D', 'C'<<8|'F', 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'C'<<8|'G', 'C'<<8|'H', 'C'<<8|'I', 'C'<<8|'K', 'C'<<8|'L', 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'C'<<8|'M', 'C'<<8|'N', 'C'<<8|'O', 'C'<<8|'R', 'C'<<8|'U', 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'C'<<8|'V', 'C'<<8|'X', 'C'<<8|'Y', 'C'<<8|'Z', 'D'<<8|'E', 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'D'<<8|'J', 'D'<<8|'K', 'D'<<8|'M', 'D'<<8|'O', 'D'<<8|'Z', 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'E'<<8|'C', 'E'<<8|'E', 'E'<<8|'G', 'E'<<8|'R', 'E'<<8|'S', 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'E'<<8|'T', 'F'<<8|'I', 'F'<<8|'J', 'F'<<8|'K', 'F'<<8|'M', 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'F'<<8|'O', 'F'<<8|'R', 'G'<<8|'A', 'G'<<8|'B', 'G'<<8|'D', 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'G'<<8|'E', 'G'<<8|'F', 'G'<<8|'G', 'G'<<8|'H', 'G'<<8|'I', 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'G'<<8|'L', 'G'<<8|'M', 'G'<<8|'N', 'G'<<8|'P', 'G'<<8|'Q', 40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'G'<<8|'R', 'G'<<8|'S', 'G'<<8|'T', 'G'<<8|'U', 'G'<<8|'W', 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'G'<<8|'Y', 'H'<<8|'K', 'H'<<8|'M', 'H'<<8|'N', 'H'<<8|'R', 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'H'<<8|'T', 'H'<<8|'U', 'I'<<8|'D', 'I'<<8|'E', 'I'<<8|'L', 43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'I'<<8|'M', 'I'<<8|'N', 'I'<<8|'O', 'I'<<8|'P', 'I'<<8|'Q', 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'I'<<8|'R', 'I'<<8|'S', 'I'<<8|'T', 'J'<<8|'E', 'J'<<8|'M', 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'J'<<8|'O', 'J'<<8|'P', 'K'<<8|'E', 'K'<<8|'G', 'K'<<8|'H', 46731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'K'<<8|'I', 'K'<<8|'M', 'K'<<8|'N', 'K'<<8|'P', 'K'<<8|'R', 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'K'<<8|'W', 'K'<<8|'Y', 'K'<<8|'Z', 'L'<<8|'A', 'L'<<8|'B', 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'L'<<8|'C', 'L'<<8|'I', 'L'<<8|'K', 'L'<<8|'R', 'L'<<8|'S', 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'L'<<8|'T', 'L'<<8|'U', 'L'<<8|'V', 'L'<<8|'Y', 'M'<<8|'A', 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'M'<<8|'C', 'M'<<8|'D', 'M'<<8|'E', 'M'<<8|'G', 'M'<<8|'H', 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'M'<<8|'K', 'M'<<8|'L', 'M'<<8|'M', 'M'<<8|'N', 'M'<<8|'O', 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'M'<<8|'P', 'M'<<8|'Q', 'M'<<8|'R', 'M'<<8|'S', 'M'<<8|'T', 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'M'<<8|'U', 'M'<<8|'V', 'M'<<8|'W', 'M'<<8|'X', 'M'<<8|'Y', 54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'M'<<8|'Z', 'N'<<8|'A', 'N'<<8|'C', 'N'<<8|'E', 'N'<<8|'F', 55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'N'<<8|'G', 'N'<<8|'I', 'N'<<8|'L', 'N'<<8|'O', 'N'<<8|'P', 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'N'<<8|'R', 'N'<<8|'U', 'N'<<8|'Z', 'O'<<8|'M', 'P'<<8|'A', 57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'P'<<8|'E', 'P'<<8|'F', 'P'<<8|'G', 'P'<<8|'H', 'P'<<8|'K', 58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'P'<<8|'L', 'P'<<8|'M', 'P'<<8|'N', 'P'<<8|'R', 'P'<<8|'S', 59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'P'<<8|'T', 'P'<<8|'W', 'P'<<8|'Y', 'Q'<<8|'A', 'R'<<8|'E', 60731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'R'<<8|'O', 'R'<<8|'S', 'R'<<8|'U', 'R'<<8|'W', 'S'<<8|'A', 61731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'S'<<8|'B', 'S'<<8|'C', 'S'<<8|'D', 'S'<<8|'E', 'S'<<8|'G', 62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'S'<<8|'H', 'S'<<8|'I', 'S'<<8|'J', 'S'<<8|'K', 'S'<<8|'L', 63731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'S'<<8|'M', 'S'<<8|'N', 'S'<<8|'O', 'S'<<8|'R', 'S'<<8|'T', 64731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'S'<<8|'V', 'S'<<8|'Y', 'S'<<8|'Z', 'T'<<8|'C', 'T'<<8|'D', 65731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'T'<<8|'F', 'T'<<8|'G', 'T'<<8|'H', 'T'<<8|'J', 'T'<<8|'K', 66731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'T'<<8|'L', 'T'<<8|'M', 'T'<<8|'N', 'T'<<8|'O', 'T'<<8|'R', 67731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'T'<<8|'T', 'T'<<8|'V', 'T'<<8|'W', 'T'<<8|'Z', 'U'<<8|'A', 68731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'U'<<8|'G', 'U'<<8|'M', 'U'<<8|'S', 'U'<<8|'Y', 'U'<<8|'Z', 69731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'V'<<8|'A', 'V'<<8|'C', 'V'<<8|'E', 'V'<<8|'G', 'V'<<8|'I', 70731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'V'<<8|'N', 'V'<<8|'U', 'W'<<8|'F', 'W'<<8|'S', 'Y'<<8|'E', 71731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 'Y'<<8|'T', 'Z'<<8|'A', 'Z'<<8|'M', 'Z'<<8|'W', -1 }; 72731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Verifies the set of prepopulate data doesn't contain entries with duplicate 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// ids. 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(TemplateURLPrepopulateDataTest, UniqueIDs) { 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TestingProfile profile; 77731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (size_t i = 0; i < arraysize(kCountryIds); ++i) { 78731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile.GetPrefs()->SetInteger(prefs::kCountryIDAtInstall, kCountryIds[i]); 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ScopedVector<TemplateURL> urls; 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch size_t default_index; 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TemplateURLPrepopulateData::GetPrepopulatedEngines( 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch profile.GetPrefs(), &(urls.get()), &default_index); 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::set<int> unique_ids; 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (size_t turl_i = 0; turl_i < urls.size(); ++turl_i) { 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(unique_ids.find(urls[turl_i]->prepopulate_id()) == 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch unique_ids.end()); 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch unique_ids.insert(urls[turl_i]->prepopulate_id()); 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Verifies that default search providers from the preferences file 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// override the built-in ones. 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(TemplateURLPrepopulateDataTest, ProvidersFromPrefs) { 9521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen TestingPrefService prefs; 9621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen TemplateURLPrepopulateData::RegisterUserPrefs(&prefs); 9721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen prefs.SetUserPref(prefs::kSearchProviderOverridesVersion, 9821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateIntegerValue(1)); 9921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ListValue* overrides = new ListValue; 10021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen DictionaryValue* entry = new DictionaryValue; 10121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("name", "foo"); 10221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("keyword", "fook"); 10321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("search_url", "http://foo.com/s?q={searchTerms}"); 10421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("favicon_url", "http://foi.com/favicon.ico"); 10521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("suggest_url", ""); 10621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("instant_url", ""); 10721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetString("encoding", "UTF-8"); 10821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetInteger("search_engine_type", 1); 10921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetInteger("logo_id", 0); 11021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen entry->SetInteger("id", 1001); 11121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen overrides->Append(entry); 11221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen prefs.SetUserPref(prefs::kSearchProviderOverrides, overrides); 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int version = TemplateURLPrepopulateData::GetDataVersion(&prefs); 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(1, version); 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 117c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ScopedVector<TemplateURL> t_urls; 118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch size_t default_index; 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch TemplateURLPrepopulateData::GetPrepopulatedEngines( 12021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen &prefs, &(t_urls.get()), &default_index); 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_EQ(1u, t_urls.size()); 12372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(ASCIIToUTF16("foo"), t_urls[0]->short_name()); 12472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(ASCIIToUTF16("fook"), t_urls[0]->keyword()); 125c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ("foo.com", t_urls[0]->url()->GetHost()); 126ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ("foi.com", t_urls[0]->GetFaviconURL().host()); 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(1u, t_urls[0]->input_encodings().size()); 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(1001, t_urls[0]->prepopulate_id()); 129513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(SEARCH_ENGINE_GOOGLE, t_urls[0]->search_engine_type()); 1303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(0, t_urls[0]->logo_id()); 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 133731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickTEST_F(TemplateURLPrepopulateDataTest, SearchEngineFromOrigin) { 134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick UIThreadSearchTermsData search_terms_data; 135731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::set<GURL> unique_engines; 136731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { // Scoping for the profile. 138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick TestingProfile profile; 139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (size_t i = 0; i < arraysize(kCountryIds); ++i) { 140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile.GetPrefs()->SetInteger(prefs::kCountryIDAtInstall, 141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick kCountryIds[i]); 142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ScopedVector<TemplateURL> urls; 143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick size_t default_index; 144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick TemplateURLPrepopulateData::GetPrepopulatedEngines( 145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile.GetPrefs(), &(urls.get()), &default_index); 146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (size_t turl_i = 0; turl_i < urls.size(); ++turl_i) { 147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick GURL engine_url(urls[turl_i]->url()->url()); 148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick if (!engine_url.is_valid()) { 149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick engine_url = TemplateURLModel::GenerateSearchURLUsingTermsData( 150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick urls[turl_i], search_terms_data); 151731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick GURL origin = engine_url.GetOrigin(); 153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick unique_engines.insert(origin); 154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 156731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 157731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 158731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick TestingProfile profile; 159731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (std::set<GURL>::iterator it = unique_engines.begin(); 160731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick it != unique_engines.end(); ++it) { 161731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick scoped_ptr<TemplateURL> found_url( 162731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick TemplateURLPrepopulateData::GetEngineForOrigin(profile.GetPrefs(), 163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick *it)); 164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ( 165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick TemplateURLModel::GenerateSearchURLUsingTermsData( 166731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick found_url.get(), search_terms_data).GetOrigin(), 167731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick it->GetOrigin()); 168731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick } 169731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 170731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick GURL not_a_search_engine("http://example.com/"); 171731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ(NULL, TemplateURLPrepopulateData::GetEngineForOrigin( 172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile.GetPrefs(), 173731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick not_a_search_engine)); 174731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 175513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 176513209b27ff55e2841eac0e4120199c23acce758Ben MurdochTEST_F(TemplateURLPrepopulateDataTest, GetSearchEngineLogo) { 177513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch GURL bad_engine("http://example.com/"); 178513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(kNoSearchEngineLogo, 179513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TemplateURLPrepopulateData::GetSearchEngineLogo(bad_engine)); 180513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch GURL engine_with_logo("http://www.ask.com/"); 181513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(IDR_SEARCH_ENGINE_LOGO_ASK, 182513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TemplateURLPrepopulateData::GetSearchEngineLogo(engine_with_logo)); 183513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch GURL engine_no_logo("http://araby.com/"); 184513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(kNoSearchEngineLogo, 185513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TemplateURLPrepopulateData::GetSearchEngineLogo(engine_no_logo)); 186513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 187513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch} 188