OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |