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