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

Side by Side Diff: chrome/browser/webdata/keyword_table_unittest.cc

Issue 10173001: Add a Profile* member to TemplateURL. This makes some invocations of ReplaceSearchTerms() a bit le… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 keyword.show_in_default_list = true; 62 keyword.show_in_default_list = true;
63 keyword.safe_for_autoreplace = true; 63 keyword.safe_for_autoreplace = true;
64 keyword.input_encodings.push_back("UTF-8"); 64 keyword.input_encodings.push_back("UTF-8");
65 keyword.input_encodings.push_back("UTF-16"); 65 keyword.input_encodings.push_back("UTF-16");
66 keyword.id = 1; 66 keyword.id = 1;
67 keyword.date_created = Time::Now(); 67 keyword.date_created = Time::Now();
68 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10); 68 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10);
69 keyword.created_by_policy = true; 69 keyword.created_by_policy = true;
70 keyword.usage_count = 32; 70 keyword.usage_count = 32;
71 keyword.prepopulate_id = 10; 71 keyword.prepopulate_id = 10;
72 TemplateURL url(keyword); 72 TemplateURL url(NULL, keyword);
73 EXPECT_TRUE(keyword_table->AddKeyword(url)); 73 EXPECT_TRUE(keyword_table->AddKeyword(url));
74 74
75 KeywordTable::Keywords keywords; 75 KeywordTable::Keywords keywords;
76 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 76 EXPECT_TRUE(keyword_table->GetKeywords(&keywords));
77 EXPECT_EQ(1U, keywords.size()); 77 EXPECT_EQ(1U, keywords.size());
78 const TemplateURLData& restored_keyword = keywords.front(); 78 const TemplateURLData& restored_keyword = keywords.front();
79 79
80 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 80 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
81 EXPECT_EQ(url.keyword(), TemplateURL(restored_keyword).keyword()); 81 EXPECT_EQ(url.keyword(), TemplateURL(NULL, restored_keyword).keyword());
82 EXPECT_EQ(keyword.autogenerate_keyword(), 82 EXPECT_EQ(keyword.autogenerate_keyword(),
83 restored_keyword.autogenerate_keyword()); 83 restored_keyword.autogenerate_keyword());
84 EXPECT_EQ(keyword.url(), restored_keyword.url()); 84 EXPECT_EQ(keyword.url(), restored_keyword.url());
85 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); 85 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url);
86 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); 86 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url);
87 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 87 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
88 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); 88 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url);
89 EXPECT_EQ(keyword.show_in_default_list, 89 EXPECT_EQ(keyword.show_in_default_list,
90 restored_keyword.show_in_default_list); 90 restored_keyword.show_in_default_list);
91 EXPECT_EQ(keyword.safe_for_autoreplace, 91 EXPECT_EQ(keyword.safe_for_autoreplace,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 keyword.show_in_default_list = true; 126 keyword.show_in_default_list = true;
127 keyword.safe_for_autoreplace = true; 127 keyword.safe_for_autoreplace = true;
128 keyword.input_encodings.push_back("UTF-8"); 128 keyword.input_encodings.push_back("UTF-8");
129 keyword.input_encodings.push_back("UTF-16"); 129 keyword.input_encodings.push_back("UTF-16");
130 keyword.id = 10; 130 keyword.id = 10;
131 keyword.date_created = Time::Now(); 131 keyword.date_created = Time::Now();
132 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10); 132 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10);
133 keyword.created_by_policy = true; 133 keyword.created_by_policy = true;
134 keyword.usage_count = 32; 134 keyword.usage_count = 32;
135 keyword.prepopulate_id = 10; 135 keyword.prepopulate_id = 10;
136 TemplateURL url(keyword); 136 TemplateURL url(NULL, keyword);
137 EXPECT_TRUE(keyword_table->AddKeyword(url)); 137 EXPECT_TRUE(keyword_table->AddKeyword(url));
138 138
139 EXPECT_TRUE(keyword_table->SetDefaultSearchProviderID(10)); 139 EXPECT_TRUE(keyword_table->SetDefaultSearchProviderID(10));
140 EXPECT_TRUE(keyword_table->SetBuiltinKeywordVersion(11)); 140 EXPECT_TRUE(keyword_table->SetBuiltinKeywordVersion(11));
141 141
142 EXPECT_EQ(10, keyword_table->GetDefaultSearchProviderID()); 142 EXPECT_EQ(10, keyword_table->GetDefaultSearchProviderID());
143 EXPECT_EQ(11, keyword_table->GetBuiltinKeywordVersion()); 143 EXPECT_EQ(11, keyword_table->GetBuiltinKeywordVersion());
144 } 144 }
145 145
146 TEST_F(KeywordTableTest, DefaultSearchProviderBackup) { 146 TEST_F(KeywordTableTest, DefaultSearchProviderBackup) {
147 // TODO(ivankr): suppress keyword_table.cc ERROR logs. 147 // TODO(ivankr): suppress keyword_table.cc ERROR logs.
148 WebDatabase db; 148 WebDatabase db;
149 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 149 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
150 KeywordTable* keyword_table = db.GetKeywordTable(); 150 KeywordTable* keyword_table = db.GetKeywordTable();
151 151
152 EXPECT_EQ(kInvalidTemplateURLID, keyword_table->GetDefaultSearchProviderID()); 152 EXPECT_EQ(kInvalidTemplateURLID, keyword_table->GetDefaultSearchProviderID());
153 153
154 TemplateURLData keyword; 154 TemplateURLData keyword;
155 keyword.short_name = ASCIIToUTF16("short_name"); 155 keyword.short_name = ASCIIToUTF16("short_name");
156 keyword.SetKeyword(ASCIIToUTF16("keyword")); 156 keyword.SetKeyword(ASCIIToUTF16("keyword"));
157 keyword.SetURL("http://url/"); 157 keyword.SetURL("http://url/");
158 keyword.suggestions_url = "url2"; 158 keyword.suggestions_url = "url2";
159 keyword.favicon_url = GURL("http://favicon.url/"); 159 keyword.favicon_url = GURL("http://favicon.url/");
160 keyword.show_in_default_list = true; 160 keyword.show_in_default_list = true;
161 keyword.safe_for_autoreplace = true; 161 keyword.safe_for_autoreplace = true;
162 keyword.id = 1; 162 keyword.id = 1;
163 TemplateURL url(keyword); 163 TemplateURL url(NULL, keyword);
164 EXPECT_TRUE(keyword_table->AddKeyword(url)); 164 EXPECT_TRUE(keyword_table->AddKeyword(url));
165 165
166 EXPECT_TRUE(keyword_table->SetDefaultSearchProviderID(1)); 166 EXPECT_TRUE(keyword_table->SetDefaultSearchProviderID(1));
167 EXPECT_TRUE(keyword_table->IsBackupSignatureValid()); 167 EXPECT_TRUE(keyword_table->IsBackupSignatureValid());
168 EXPECT_EQ(1, keyword_table->GetDefaultSearchProviderID()); 168 EXPECT_EQ(1, keyword_table->GetDefaultSearchProviderID());
169 169
170 TemplateURLData backup; 170 TemplateURLData backup;
171 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup)); 171 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup));
172 // Backup URL should have an invalid ID. 172 // Backup URL should have an invalid ID.
173 EXPECT_EQ(kInvalidTemplateURLID, backup.id); 173 EXPECT_EQ(kInvalidTemplateURLID, backup.id);
174 EXPECT_EQ(keyword.short_name, backup.short_name); 174 EXPECT_EQ(keyword.short_name, backup.short_name);
175 EXPECT_EQ(url.keyword(), TemplateURL(backup).keyword()); 175 EXPECT_EQ(url.keyword(), TemplateURL(NULL, backup).keyword());
176 EXPECT_EQ(keyword.url(), backup.url()); 176 EXPECT_EQ(keyword.url(), backup.url());
177 EXPECT_EQ(keyword.favicon_url, backup.favicon_url); 177 EXPECT_EQ(keyword.favicon_url, backup.favicon_url);
178 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url); 178 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url);
179 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list); 179 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list);
180 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace); 180 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace);
181 EXPECT_FALSE(keyword_table->DidDefaultSearchProviderChange()); 181 EXPECT_FALSE(keyword_table->DidDefaultSearchProviderChange());
182 182
183 // Change the actual setting. 183 // Change the actual setting.
184 EXPECT_TRUE(keyword_table->meta_table_->SetValue( 184 EXPECT_TRUE(keyword_table->meta_table_->SetValue(
185 KeywordTable::kDefaultSearchProviderKey, 2)); 185 KeywordTable::kDefaultSearchProviderKey, 2));
186 EXPECT_TRUE(keyword_table->IsBackupSignatureValid()); 186 EXPECT_TRUE(keyword_table->IsBackupSignatureValid());
187 EXPECT_EQ(2, keyword_table->GetDefaultSearchProviderID()); 187 EXPECT_EQ(2, keyword_table->GetDefaultSearchProviderID());
188 188
189 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup)); 189 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup));
190 EXPECT_EQ(kInvalidTemplateURLID, backup.id); 190 EXPECT_EQ(kInvalidTemplateURLID, backup.id);
191 EXPECT_EQ(keyword.short_name, backup.short_name); 191 EXPECT_EQ(keyword.short_name, backup.short_name);
192 EXPECT_EQ(url.keyword(), TemplateURL(backup).keyword()); 192 EXPECT_EQ(url.keyword(), TemplateURL(NULL, backup).keyword());
193 EXPECT_EQ(keyword.url(), backup.url()); 193 EXPECT_EQ(keyword.url(), backup.url());
194 EXPECT_EQ(keyword.favicon_url, backup.favicon_url); 194 EXPECT_EQ(keyword.favicon_url, backup.favicon_url);
195 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url); 195 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url);
196 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list); 196 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list);
197 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace); 197 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace);
198 EXPECT_TRUE(keyword_table->DidDefaultSearchProviderChange()); 198 EXPECT_TRUE(keyword_table->DidDefaultSearchProviderChange());
199 199
200 // Change the backup. 200 // Change the backup.
201 EXPECT_TRUE(keyword_table->meta_table_->SetValue( 201 EXPECT_TRUE(keyword_table->meta_table_->SetValue(
202 KeywordTable::kDefaultSearchProviderKey, 1)); 202 KeywordTable::kDefaultSearchProviderKey, 1));
(...skipping 18 matching lines...) Expand all
221 EXPECT_TRUE(keyword_table->UpdateBackupSignature()); 221 EXPECT_TRUE(keyword_table->UpdateBackupSignature());
222 sql::Statement remove_keyword(keyword_table->db_->GetUniqueStatement( 222 sql::Statement remove_keyword(keyword_table->db_->GetUniqueStatement(
223 "DELETE FROM keywords WHERE id=1")); 223 "DELETE FROM keywords WHERE id=1"));
224 EXPECT_TRUE(remove_keyword.Run()); 224 EXPECT_TRUE(remove_keyword.Run());
225 EXPECT_TRUE(keyword_table->IsBackupSignatureValid()); 225 EXPECT_TRUE(keyword_table->IsBackupSignatureValid());
226 EXPECT_EQ(1, keyword_table->GetDefaultSearchProviderID()); 226 EXPECT_EQ(1, keyword_table->GetDefaultSearchProviderID());
227 227
228 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup)); 228 EXPECT_TRUE(keyword_table->GetDefaultSearchProviderBackup(&backup));
229 EXPECT_EQ(kInvalidTemplateURLID, backup.id); 229 EXPECT_EQ(kInvalidTemplateURLID, backup.id);
230 EXPECT_EQ(keyword.short_name, backup.short_name); 230 EXPECT_EQ(keyword.short_name, backup.short_name);
231 EXPECT_EQ(url.keyword(), TemplateURL(backup).keyword()); 231 EXPECT_EQ(url.keyword(), TemplateURL(NULL, backup).keyword());
232 EXPECT_EQ(keyword.url(), backup.url()); 232 EXPECT_EQ(keyword.url(), backup.url());
233 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url); 233 EXPECT_EQ(keyword.suggestions_url, backup.suggestions_url);
234 EXPECT_EQ(keyword.favicon_url, backup.favicon_url); 234 EXPECT_EQ(keyword.favicon_url, backup.favicon_url);
235 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list); 235 EXPECT_EQ(keyword.show_in_default_list, backup.show_in_default_list);
236 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace); 236 EXPECT_EQ(keyword.safe_for_autoreplace, backup.safe_for_autoreplace);
237 EXPECT_TRUE(keyword_table->DidDefaultSearchProviderChange()); 237 EXPECT_TRUE(keyword_table->DidDefaultSearchProviderChange());
238 238
239 // Change keywords backup. 239 // Change keywords backup.
240 sql::Statement remove_keyword_backup(keyword_table->db_->GetUniqueStatement( 240 sql::Statement remove_keyword_backup(keyword_table->db_->GetUniqueStatement(
241 "DELETE FROM keywords_backup WHERE id=1")); 241 "DELETE FROM keywords_backup WHERE id=1"));
(...skipping 14 matching lines...) Expand all
256 keyword.SetKeyword(ASCIIToUTF16("keyword")); 256 keyword.SetKeyword(ASCIIToUTF16("keyword"));
257 keyword.SetURL("http://url/"); 257 keyword.SetURL("http://url/");
258 keyword.suggestions_url = "url2"; 258 keyword.suggestions_url = "url2";
259 keyword.favicon_url = GURL("http://favicon.url/"); 259 keyword.favicon_url = GURL("http://favicon.url/");
260 keyword.show_in_default_list = true; 260 keyword.show_in_default_list = true;
261 keyword.safe_for_autoreplace = true; 261 keyword.safe_for_autoreplace = true;
262 keyword.id = 1; 262 keyword.id = 1;
263 keyword.date_created = base::Time::UnixEpoch(); 263 keyword.date_created = base::Time::UnixEpoch();
264 keyword.last_modified = base::Time::UnixEpoch(); 264 keyword.last_modified = base::Time::UnixEpoch();
265 keyword.sync_guid = "1234-5678-90AB-CDEF"; 265 keyword.sync_guid = "1234-5678-90AB-CDEF";
266 TemplateURL url(keyword); 266 TemplateURL url(NULL, keyword);
267 EXPECT_TRUE(keyword_table->AddKeyword(url)); 267 EXPECT_TRUE(keyword_table->AddKeyword(url));
268 268
269 keyword.SetAutogenerateKeyword(true); 269 keyword.SetAutogenerateKeyword(true);
270 keyword.instant_url = "http://instant2/"; 270 keyword.instant_url = "http://instant2/";
271 keyword.originating_url = GURL("http://originating.url/"); 271 keyword.originating_url = GURL("http://originating.url/");
272 keyword.input_encodings.push_back("Shift_JIS"); 272 keyword.input_encodings.push_back("Shift_JIS");
273 keyword.id = 2; 273 keyword.id = 2;
274 keyword.prepopulate_id = 5; 274 keyword.prepopulate_id = 5;
275 keyword.sync_guid = "FEDC-BA09-8765-4321"; 275 keyword.sync_guid = "FEDC-BA09-8765-4321";
276 TemplateURL url2(keyword); 276 TemplateURL url2(NULL, keyword);
277 EXPECT_TRUE(keyword_table->AddKeyword(url2)); 277 EXPECT_TRUE(keyword_table->AddKeyword(url2));
278 278
279 const char kTestContents[] = "1short_namekeywordhttp://favicon.url/" 279 const char kTestContents[] = "1short_namekeywordhttp://favicon.url/"
280 "http://url/1001url2000001234-5678-90AB-CDEF2short_nameurl" 280 "http://url/1001url2000001234-5678-90AB-CDEF2short_nameurl"
281 "http://favicon.url/http://url/1http://originating.url/00Shift_JIS1url251" 281 "http://favicon.url/http://url/1http://originating.url/00Shift_JIS1url251"
282 "00http://instant2/0FEDC-BA09-8765-4321"; 282 "00http://instant2/0FEDC-BA09-8765-4321";
283 283
284 std::string contents; 284 std::string contents;
285 EXPECT_TRUE(keyword_table->GetTableContents("keywords", &contents)); 285 EXPECT_TRUE(keyword_table->GetTableContents("keywords", &contents));
286 EXPECT_EQ(kTestContents, contents); 286 EXPECT_EQ(kTestContents, contents);
(...skipping 12 matching lines...) Expand all
299 keyword.SetKeyword(ASCIIToUTF16("keyword")); 299 keyword.SetKeyword(ASCIIToUTF16("keyword"));
300 keyword.SetURL("http://url/"); 300 keyword.SetURL("http://url/");
301 keyword.suggestions_url = "url2"; 301 keyword.suggestions_url = "url2";
302 keyword.favicon_url = GURL("http://favicon.url/"); 302 keyword.favicon_url = GURL("http://favicon.url/");
303 keyword.show_in_default_list = true; 303 keyword.show_in_default_list = true;
304 keyword.safe_for_autoreplace = true; 304 keyword.safe_for_autoreplace = true;
305 keyword.id = 2; 305 keyword.id = 2;
306 keyword.date_created = base::Time::UnixEpoch(); 306 keyword.date_created = base::Time::UnixEpoch();
307 keyword.last_modified = base::Time::UnixEpoch(); 307 keyword.last_modified = base::Time::UnixEpoch();
308 keyword.sync_guid = "1234-5678-90AB-CDEF"; 308 keyword.sync_guid = "1234-5678-90AB-CDEF";
309 TemplateURL url(keyword); 309 TemplateURL url(NULL, keyword);
310 EXPECT_TRUE(keyword_table->AddKeyword(url)); 310 EXPECT_TRUE(keyword_table->AddKeyword(url));
311 311
312 keyword.SetAutogenerateKeyword(true); 312 keyword.SetAutogenerateKeyword(true);
313 keyword.instant_url = "http://instant2/"; 313 keyword.instant_url = "http://instant2/";
314 keyword.originating_url = GURL("http://originating.url/"); 314 keyword.originating_url = GURL("http://originating.url/");
315 keyword.input_encodings.push_back("Shift_JIS"); 315 keyword.input_encodings.push_back("Shift_JIS");
316 keyword.id = 1; 316 keyword.id = 1;
317 keyword.prepopulate_id = 5; 317 keyword.prepopulate_id = 5;
318 keyword.sync_guid = "FEDC-BA09-8765-4321"; 318 keyword.sync_guid = "FEDC-BA09-8765-4321";
319 TemplateURL url2(keyword); 319 TemplateURL url2(NULL, keyword);
320 EXPECT_TRUE(keyword_table->AddKeyword(url2)); 320 EXPECT_TRUE(keyword_table->AddKeyword(url2));
321 321
322 const char kTestContents[] = "1short_nameurlhttp://favicon.url/http://url/1" 322 const char kTestContents[] = "1short_nameurlhttp://favicon.url/http://url/1"
323 "http://originating.url/00Shift_JIS1url25100http://instant2/0" 323 "http://originating.url/00Shift_JIS1url25100http://instant2/0"
324 "FEDC-BA09-8765-43212short_namekeywordhttp://favicon.url/http://url/1001" 324 "FEDC-BA09-8765-43212short_namekeywordhttp://favicon.url/http://url/1001"
325 "url2000001234-5678-90AB-CDEF"; 325 "url2000001234-5678-90AB-CDEF";
326 326
327 std::string contents; 327 std::string contents;
328 EXPECT_TRUE(keyword_table->GetTableContents("keywords", &contents)); 328 EXPECT_TRUE(keyword_table->GetTableContents("keywords", &contents));
329 EXPECT_EQ(kTestContents, contents); 329 EXPECT_EQ(kTestContents, contents);
330 330
331 EXPECT_TRUE(keyword_table->GetTableContents("keywords_backup", &contents)); 331 EXPECT_TRUE(keyword_table->GetTableContents("keywords_backup", &contents));
332 EXPECT_EQ(kTestContents, contents); 332 EXPECT_EQ(kTestContents, contents);
333 } 333 }
334 334
335 TEST_F(KeywordTableTest, UpdateKeyword) { 335 TEST_F(KeywordTableTest, UpdateKeyword) {
336 WebDatabase db; 336 WebDatabase db;
337 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 337 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
338 KeywordTable* keyword_table = db.GetKeywordTable(); 338 KeywordTable* keyword_table = db.GetKeywordTable();
339 339
340 TemplateURLData keyword; 340 TemplateURLData keyword;
341 keyword.short_name = ASCIIToUTF16("short_name"); 341 keyword.short_name = ASCIIToUTF16("short_name");
342 keyword.SetKeyword(ASCIIToUTF16("keyword")); 342 keyword.SetKeyword(ASCIIToUTF16("keyword"));
343 keyword.SetURL("http://url/"); 343 keyword.SetURL("http://url/");
344 keyword.suggestions_url = "url2"; 344 keyword.suggestions_url = "url2";
345 keyword.favicon_url = GURL("http://favicon.url/"); 345 keyword.favicon_url = GURL("http://favicon.url/");
346 keyword.show_in_default_list = true; 346 keyword.show_in_default_list = true;
347 keyword.safe_for_autoreplace = true; 347 keyword.safe_for_autoreplace = true;
348 keyword.id = 1; 348 keyword.id = 1;
349 TemplateURL url(keyword); 349 TemplateURL url(NULL, keyword);
350 EXPECT_TRUE(keyword_table->AddKeyword(url)); 350 EXPECT_TRUE(keyword_table->AddKeyword(url));
351 351
352 keyword.originating_url = GURL("http://originating.url/"); 352 keyword.originating_url = GURL("http://originating.url/");
353 keyword.SetAutogenerateKeyword(true); 353 keyword.SetAutogenerateKeyword(true);
354 keyword.instant_url = "http://instant2/"; 354 keyword.instant_url = "http://instant2/";
355 keyword.input_encodings.push_back("Shift_JIS"); 355 keyword.input_encodings.push_back("Shift_JIS");
356 keyword.prepopulate_id = 5; 356 keyword.prepopulate_id = 5;
357 TemplateURL url2(keyword); 357 TemplateURL url2(NULL, keyword);
358 EXPECT_TRUE(keyword_table->UpdateKeyword(url2)); 358 EXPECT_TRUE(keyword_table->UpdateKeyword(url2));
359 359
360 KeywordTable::Keywords keywords; 360 KeywordTable::Keywords keywords;
361 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 361 EXPECT_TRUE(keyword_table->GetKeywords(&keywords));
362 EXPECT_EQ(1U, keywords.size()); 362 EXPECT_EQ(1U, keywords.size());
363 const TemplateURLData& restored_keyword = keywords.front(); 363 const TemplateURLData& restored_keyword = keywords.front();
364 364
365 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 365 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
366 EXPECT_EQ(url2.keyword(), TemplateURL(restored_keyword).keyword()); 366 EXPECT_EQ(url2.keyword(), TemplateURL(NULL, restored_keyword).keyword());
367 EXPECT_EQ(keyword.autogenerate_keyword(), 367 EXPECT_EQ(keyword.autogenerate_keyword(),
368 restored_keyword.autogenerate_keyword()); 368 restored_keyword.autogenerate_keyword());
369 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); 369 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url);
370 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); 370 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url);
371 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 371 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
372 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); 372 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url);
373 EXPECT_EQ(keyword.show_in_default_list, 373 EXPECT_EQ(keyword.show_in_default_list,
374 restored_keyword.show_in_default_list); 374 restored_keyword.show_in_default_list);
375 EXPECT_EQ(keyword.safe_for_autoreplace, 375 EXPECT_EQ(keyword.safe_for_autoreplace,
376 restored_keyword.safe_for_autoreplace); 376 restored_keyword.safe_for_autoreplace);
377 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings); 377 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings);
378 EXPECT_EQ(keyword.id, restored_keyword.id); 378 EXPECT_EQ(keyword.id, restored_keyword.id);
379 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id); 379 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id);
380 } 380 }
381 381
382 TEST_F(KeywordTableTest, KeywordWithNoFavicon) { 382 TEST_F(KeywordTableTest, KeywordWithNoFavicon) {
383 WebDatabase db; 383 WebDatabase db;
384 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 384 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
385 KeywordTable* keyword_table = db.GetKeywordTable(); 385 KeywordTable* keyword_table = db.GetKeywordTable();
386 386
387 TemplateURLData keyword; 387 TemplateURLData keyword;
388 keyword.short_name = ASCIIToUTF16("short_name"); 388 keyword.short_name = ASCIIToUTF16("short_name");
389 keyword.SetKeyword(ASCIIToUTF16("keyword")); 389 keyword.SetKeyword(ASCIIToUTF16("keyword"));
390 keyword.SetURL("http://url/"); 390 keyword.SetURL("http://url/");
391 keyword.safe_for_autoreplace = true; 391 keyword.safe_for_autoreplace = true;
392 keyword.id = -100; 392 keyword.id = -100;
393 TemplateURL url(keyword); 393 TemplateURL url(NULL, keyword);
394 EXPECT_TRUE(keyword_table->AddKeyword(url)); 394 EXPECT_TRUE(keyword_table->AddKeyword(url));
395 395
396 KeywordTable::Keywords keywords; 396 KeywordTable::Keywords keywords;
397 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 397 EXPECT_TRUE(keyword_table->GetKeywords(&keywords));
398 EXPECT_EQ(1U, keywords.size()); 398 EXPECT_EQ(1U, keywords.size());
399 const TemplateURLData& restored_keyword = keywords.front(); 399 const TemplateURLData& restored_keyword = keywords.front();
400 400
401 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 401 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
402 EXPECT_EQ(url.keyword(), TemplateURL(restored_keyword).keyword()); 402 EXPECT_EQ(url.keyword(), TemplateURL(NULL, restored_keyword).keyword());
403 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 403 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
404 EXPECT_EQ(keyword.safe_for_autoreplace, 404 EXPECT_EQ(keyword.safe_for_autoreplace,
405 restored_keyword.safe_for_autoreplace); 405 restored_keyword.safe_for_autoreplace);
406 EXPECT_EQ(keyword.id, restored_keyword.id); 406 EXPECT_EQ(keyword.id, restored_keyword.id);
407 } 407 }
408 408
409 TEST_F(KeywordTableTest, SanitizeURLs) { 409 TEST_F(KeywordTableTest, SanitizeURLs) {
410 WebDatabase db; 410 WebDatabase db;
411 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 411 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
412 KeywordTable* keyword_table = db.GetKeywordTable(); 412 KeywordTable* keyword_table = db.GetKeywordTable();
413 413
414 TemplateURLData keyword; 414 TemplateURLData keyword;
415 keyword.short_name = ASCIIToUTF16("legit"); 415 keyword.short_name = ASCIIToUTF16("legit");
416 keyword.SetKeyword(ASCIIToUTF16("legit")); 416 keyword.SetKeyword(ASCIIToUTF16("legit"));
417 keyword.SetURL("http://url/"); 417 keyword.SetURL("http://url/");
418 keyword.id = 1000; 418 keyword.id = 1000;
419 TemplateURL url(keyword); 419 TemplateURL url(NULL, keyword);
420 EXPECT_TRUE(keyword_table->AddKeyword(url)); 420 EXPECT_TRUE(keyword_table->AddKeyword(url));
421 421
422 keyword.short_name = ASCIIToUTF16("bogus"); 422 keyword.short_name = ASCIIToUTF16("bogus");
423 keyword.SetKeyword(ASCIIToUTF16("bogus")); 423 keyword.SetKeyword(ASCIIToUTF16("bogus"));
424 keyword.id = 2000; 424 keyword.id = 2000;
425 TemplateURL url2(keyword); 425 TemplateURL url2(NULL, keyword);
426 EXPECT_TRUE(keyword_table->AddKeyword(url2)); 426 EXPECT_TRUE(keyword_table->AddKeyword(url2));
427 427
428 KeywordTable::Keywords keywords; 428 KeywordTable::Keywords keywords;
429 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 429 EXPECT_TRUE(keyword_table->GetKeywords(&keywords));
430 EXPECT_EQ(2U, keywords.size()); 430 EXPECT_EQ(2U, keywords.size());
431 keywords.clear(); 431 keywords.clear();
432 432
433 // Erase the URL field for the second keyword to simulate having bogus data 433 // Erase the URL field for the second keyword to simulate having bogus data
434 // previously saved into the database. 434 // previously saved into the database.
435 sql::Statement s(keyword_table->db_->GetUniqueStatement( 435 sql::Statement s(keyword_table->db_->GetUniqueStatement(
436 "UPDATE keywords SET url=? WHERE id=?")); 436 "UPDATE keywords SET url=? WHERE id=?"));
437 s.BindString16(0, string16()); 437 s.BindString16(0, string16());
438 s.BindInt64(1, 2000); 438 s.BindInt64(1, 2000);
439 EXPECT_TRUE(s.Run()); 439 EXPECT_TRUE(s.Run());
440 EXPECT_TRUE(keyword_table->UpdateBackupSignature()); 440 EXPECT_TRUE(keyword_table->UpdateBackupSignature());
441 441
442 // GetKeywords() should erase the entry with the empty URL field. 442 // GetKeywords() should erase the entry with the empty URL field.
443 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 443 EXPECT_TRUE(keyword_table->GetKeywords(&keywords));
444 EXPECT_EQ(1U, keywords.size()); 444 EXPECT_EQ(1U, keywords.size());
445 } 445 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698