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

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

Issue 12543034: Move creation of the various WebDatabaseTable types out of WebDatabase. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Windows release builds (COMDAT folding combined static functions being used for keys. Created 7 years, 9 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
« no previous file with comments | « chrome/browser/webdata/keyword_table.cc ('k') | chrome/browser/webdata/logins_table.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 13 matching lines...) Expand all
24 24
25 class KeywordTableTest : public testing::Test { 25 class KeywordTableTest : public testing::Test {
26 public: 26 public:
27 KeywordTableTest() {} 27 KeywordTableTest() {}
28 virtual ~KeywordTableTest() {} 28 virtual ~KeywordTableTest() {}
29 29
30 protected: 30 protected:
31 virtual void SetUp() { 31 virtual void SetUp() {
32 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 32 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
33 file_ = temp_dir_.path().AppendASCII("TestWebDatabase"); 33 file_ = temp_dir_.path().AppendASCII("TestWebDatabase");
34
35 table_.reset(new KeywordTable);
36 db_.reset(new WebDatabase);
37 db_->AddTable(table_.get());
38 ASSERT_EQ(sql::INIT_OK, db_->Init(file_, std::string()));
34 } 39 }
35 40
36 base::FilePath file_; 41 base::FilePath file_;
37 base::ScopedTempDir temp_dir_; 42 base::ScopedTempDir temp_dir_;
43 scoped_ptr<KeywordTable> table_;
44 scoped_ptr<WebDatabase> db_;
38 45
39 private: 46 private:
40 DISALLOW_COPY_AND_ASSIGN(KeywordTableTest); 47 DISALLOW_COPY_AND_ASSIGN(KeywordTableTest);
41 }; 48 };
42 49
43 50
44 TEST_F(KeywordTableTest, Keywords) { 51 TEST_F(KeywordTableTest, Keywords) {
45 WebDatabase db;
46 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
47 KeywordTable* keyword_table = db.GetKeywordTable();
48
49 TemplateURLData keyword; 52 TemplateURLData keyword;
50 keyword.short_name = ASCIIToUTF16("short_name"); 53 keyword.short_name = ASCIIToUTF16("short_name");
51 keyword.SetKeyword(ASCIIToUTF16("keyword")); 54 keyword.SetKeyword(ASCIIToUTF16("keyword"));
52 keyword.SetURL("http://url/"); 55 keyword.SetURL("http://url/");
53 keyword.instant_url = "http://instant/"; 56 keyword.instant_url = "http://instant/";
54 keyword.favicon_url = GURL("http://favicon.url/"); 57 keyword.favicon_url = GURL("http://favicon.url/");
55 keyword.originating_url = GURL("http://google.com/"); 58 keyword.originating_url = GURL("http://google.com/");
56 keyword.show_in_default_list = true; 59 keyword.show_in_default_list = true;
57 keyword.safe_for_autoreplace = true; 60 keyword.safe_for_autoreplace = true;
58 keyword.input_encodings.push_back("UTF-8"); 61 keyword.input_encodings.push_back("UTF-8");
59 keyword.input_encodings.push_back("UTF-16"); 62 keyword.input_encodings.push_back("UTF-16");
60 keyword.id = 1; 63 keyword.id = 1;
61 keyword.date_created = Time::Now(); 64 keyword.date_created = Time::Now();
62 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10); 65 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10);
63 keyword.created_by_policy = true; 66 keyword.created_by_policy = true;
64 keyword.usage_count = 32; 67 keyword.usage_count = 32;
65 keyword.prepopulate_id = 10; 68 keyword.prepopulate_id = 10;
66 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 69 EXPECT_TRUE(table_->AddKeyword(keyword));
67 70
68 KeywordTable::Keywords keywords; 71 KeywordTable::Keywords keywords;
69 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 72 EXPECT_TRUE(table_->GetKeywords(&keywords));
70 EXPECT_EQ(1U, keywords.size()); 73 EXPECT_EQ(1U, keywords.size());
71 const TemplateURLData& restored_keyword = keywords.front(); 74 const TemplateURLData& restored_keyword = keywords.front();
72 75
73 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 76 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
74 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); 77 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword());
75 EXPECT_EQ(keyword.url(), restored_keyword.url()); 78 EXPECT_EQ(keyword.url(), restored_keyword.url());
76 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); 79 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url);
77 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); 80 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url);
78 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 81 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
79 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); 82 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url);
80 EXPECT_EQ(keyword.show_in_default_list, 83 EXPECT_EQ(keyword.show_in_default_list,
81 restored_keyword.show_in_default_list); 84 restored_keyword.show_in_default_list);
82 EXPECT_EQ(keyword.safe_for_autoreplace, 85 EXPECT_EQ(keyword.safe_for_autoreplace,
83 restored_keyword.safe_for_autoreplace); 86 restored_keyword.safe_for_autoreplace);
84 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings); 87 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings);
85 EXPECT_EQ(keyword.id, restored_keyword.id); 88 EXPECT_EQ(keyword.id, restored_keyword.id);
86 // The database stores time only at the resolution of a second. 89 // The database stores time only at the resolution of a second.
87 EXPECT_EQ(keyword.date_created.ToTimeT(), 90 EXPECT_EQ(keyword.date_created.ToTimeT(),
88 restored_keyword.date_created.ToTimeT()); 91 restored_keyword.date_created.ToTimeT());
89 EXPECT_EQ(keyword.last_modified.ToTimeT(), 92 EXPECT_EQ(keyword.last_modified.ToTimeT(),
90 restored_keyword.last_modified.ToTimeT()); 93 restored_keyword.last_modified.ToTimeT());
91 EXPECT_EQ(keyword.created_by_policy, restored_keyword.created_by_policy); 94 EXPECT_EQ(keyword.created_by_policy, restored_keyword.created_by_policy);
92 EXPECT_EQ(keyword.usage_count, restored_keyword.usage_count); 95 EXPECT_EQ(keyword.usage_count, restored_keyword.usage_count);
93 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id); 96 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id);
94 97
95 EXPECT_TRUE(keyword_table->RemoveKeyword(restored_keyword.id)); 98 EXPECT_TRUE(table_->RemoveKeyword(restored_keyword.id));
96 99
97 KeywordTable::Keywords empty_keywords; 100 KeywordTable::Keywords empty_keywords;
98 EXPECT_TRUE(keyword_table->GetKeywords(&empty_keywords)); 101 EXPECT_TRUE(table_->GetKeywords(&empty_keywords));
99 EXPECT_EQ(0U, empty_keywords.size()); 102 EXPECT_EQ(0U, empty_keywords.size());
100 } 103 }
101 104
102 TEST_F(KeywordTableTest, KeywordMisc) { 105 TEST_F(KeywordTableTest, KeywordMisc) {
103 WebDatabase db; 106 EXPECT_EQ(kInvalidTemplateURLID, table_->GetDefaultSearchProviderID());
104 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string())); 107 EXPECT_EQ(0, table_->GetBuiltinKeywordVersion());
105 KeywordTable* keyword_table = db.GetKeywordTable();
106
107 EXPECT_EQ(kInvalidTemplateURLID, keyword_table->GetDefaultSearchProviderID());
108 EXPECT_EQ(0, keyword_table->GetBuiltinKeywordVersion());
109 108
110 TemplateURLData keyword; 109 TemplateURLData keyword;
111 keyword.short_name = ASCIIToUTF16("short_name"); 110 keyword.short_name = ASCIIToUTF16("short_name");
112 keyword.SetKeyword(ASCIIToUTF16("keyword")); 111 keyword.SetKeyword(ASCIIToUTF16("keyword"));
113 keyword.SetURL("http://url/"); 112 keyword.SetURL("http://url/");
114 keyword.instant_url = "http://instant/"; 113 keyword.instant_url = "http://instant/";
115 keyword.favicon_url = GURL("http://favicon.url/"); 114 keyword.favicon_url = GURL("http://favicon.url/");
116 keyword.originating_url = GURL("http://google.com/"); 115 keyword.originating_url = GURL("http://google.com/");
117 keyword.show_in_default_list = true; 116 keyword.show_in_default_list = true;
118 keyword.safe_for_autoreplace = true; 117 keyword.safe_for_autoreplace = true;
119 keyword.input_encodings.push_back("UTF-8"); 118 keyword.input_encodings.push_back("UTF-8");
120 keyword.input_encodings.push_back("UTF-16"); 119 keyword.input_encodings.push_back("UTF-16");
121 keyword.id = 10; 120 keyword.id = 10;
122 keyword.date_created = Time::Now(); 121 keyword.date_created = Time::Now();
123 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10); 122 keyword.last_modified = keyword.date_created + TimeDelta::FromSeconds(10);
124 keyword.created_by_policy = true; 123 keyword.created_by_policy = true;
125 keyword.usage_count = 32; 124 keyword.usage_count = 32;
126 keyword.prepopulate_id = 10; 125 keyword.prepopulate_id = 10;
127 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 126 EXPECT_TRUE(table_->AddKeyword(keyword));
128 127
129 EXPECT_TRUE(keyword_table->SetDefaultSearchProviderID(10)); 128 EXPECT_TRUE(table_->SetDefaultSearchProviderID(10));
130 EXPECT_TRUE(keyword_table->SetBuiltinKeywordVersion(11)); 129 EXPECT_TRUE(table_->SetBuiltinKeywordVersion(11));
131 130
132 EXPECT_EQ(10, keyword_table->GetDefaultSearchProviderID()); 131 EXPECT_EQ(10, table_->GetDefaultSearchProviderID());
133 EXPECT_EQ(11, keyword_table->GetBuiltinKeywordVersion()); 132 EXPECT_EQ(11, table_->GetBuiltinKeywordVersion());
134 } 133 }
135 134
136 TEST_F(KeywordTableTest, GetTableContents) { 135 TEST_F(KeywordTableTest, GetTableContents) {
137 WebDatabase db;
138 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
139 KeywordTable* keyword_table = db.GetKeywordTable();
140
141 TemplateURLData keyword; 136 TemplateURLData keyword;
142 keyword.short_name = ASCIIToUTF16("short_name"); 137 keyword.short_name = ASCIIToUTF16("short_name");
143 keyword.SetKeyword(ASCIIToUTF16("keyword")); 138 keyword.SetKeyword(ASCIIToUTF16("keyword"));
144 keyword.SetURL("http://url/"); 139 keyword.SetURL("http://url/");
145 keyword.suggestions_url = "url2"; 140 keyword.suggestions_url = "url2";
146 keyword.favicon_url = GURL("http://favicon.url/"); 141 keyword.favicon_url = GURL("http://favicon.url/");
147 keyword.show_in_default_list = true; 142 keyword.show_in_default_list = true;
148 keyword.safe_for_autoreplace = true; 143 keyword.safe_for_autoreplace = true;
149 keyword.id = 1; 144 keyword.id = 1;
150 keyword.date_created = base::Time::UnixEpoch(); 145 keyword.date_created = base::Time::UnixEpoch();
151 keyword.last_modified = base::Time::UnixEpoch(); 146 keyword.last_modified = base::Time::UnixEpoch();
152 keyword.sync_guid = "1234-5678-90AB-CDEF"; 147 keyword.sync_guid = "1234-5678-90AB-CDEF";
153 keyword.alternate_urls.push_back("a_url1"); 148 keyword.alternate_urls.push_back("a_url1");
154 keyword.alternate_urls.push_back("a_url2"); 149 keyword.alternate_urls.push_back("a_url2");
155 keyword.search_terms_replacement_key = "espv"; 150 keyword.search_terms_replacement_key = "espv";
156 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 151 EXPECT_TRUE(table_->AddKeyword(keyword));
157 152
158 keyword.SetKeyword(ASCIIToUTF16("url")); 153 keyword.SetKeyword(ASCIIToUTF16("url"));
159 keyword.instant_url = "http://instant2/"; 154 keyword.instant_url = "http://instant2/";
160 keyword.originating_url = GURL("http://originating.url/"); 155 keyword.originating_url = GURL("http://originating.url/");
161 keyword.input_encodings.push_back("Shift_JIS"); 156 keyword.input_encodings.push_back("Shift_JIS");
162 keyword.id = 2; 157 keyword.id = 2;
163 keyword.prepopulate_id = 5; 158 keyword.prepopulate_id = 5;
164 keyword.sync_guid = "FEDC-BA09-8765-4321"; 159 keyword.sync_guid = "FEDC-BA09-8765-4321";
165 keyword.alternate_urls.clear(); 160 keyword.alternate_urls.clear();
166 keyword.search_terms_replacement_key.clear(); 161 keyword.search_terms_replacement_key.clear();
167 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 162 EXPECT_TRUE(table_->AddKeyword(keyword));
168 163
169 const char kTestContents[] = "1short_namekeywordhttp://favicon.url/" 164 const char kTestContents[] = "1short_namekeywordhttp://favicon.url/"
170 "http://url/1001url20001234-5678-90AB-CDEF[\"a_url1\",\"a_url2\"]espv" 165 "http://url/1001url20001234-5678-90AB-CDEF[\"a_url1\",\"a_url2\"]espv"
171 "2short_nameurlhttp://favicon.url/http://url/1http://originating.url/00" 166 "2short_nameurlhttp://favicon.url/http://url/1http://originating.url/00"
172 "Shift_JIS1url250http://instant2/0FEDC-BA09-8765-4321[]"; 167 "Shift_JIS1url250http://instant2/0FEDC-BA09-8765-4321[]";
173 168
174 std::string contents; 169 std::string contents;
175 EXPECT_TRUE(keyword_table->GetTableContents("keywords", 170 EXPECT_TRUE(table_->GetTableContents("keywords",
176 WebDatabase::kCurrentVersionNumber, &contents)); 171 WebDatabase::kCurrentVersionNumber, &contents));
177 EXPECT_EQ(kTestContents, contents); 172 EXPECT_EQ(kTestContents, contents);
178 } 173 }
179 174
180 TEST_F(KeywordTableTest, GetTableContentsOrdering) { 175 TEST_F(KeywordTableTest, GetTableContentsOrdering) {
181 WebDatabase db;
182 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
183 KeywordTable* keyword_table = db.GetKeywordTable();
184
185 TemplateURLData keyword; 176 TemplateURLData keyword;
186 keyword.short_name = ASCIIToUTF16("short_name"); 177 keyword.short_name = ASCIIToUTF16("short_name");
187 keyword.SetKeyword(ASCIIToUTF16("keyword")); 178 keyword.SetKeyword(ASCIIToUTF16("keyword"));
188 keyword.SetURL("http://url/"); 179 keyword.SetURL("http://url/");
189 keyword.suggestions_url = "url2"; 180 keyword.suggestions_url = "url2";
190 keyword.favicon_url = GURL("http://favicon.url/"); 181 keyword.favicon_url = GURL("http://favicon.url/");
191 keyword.show_in_default_list = true; 182 keyword.show_in_default_list = true;
192 keyword.safe_for_autoreplace = true; 183 keyword.safe_for_autoreplace = true;
193 keyword.id = 2; 184 keyword.id = 2;
194 keyword.date_created = base::Time::UnixEpoch(); 185 keyword.date_created = base::Time::UnixEpoch();
195 keyword.last_modified = base::Time::UnixEpoch(); 186 keyword.last_modified = base::Time::UnixEpoch();
196 keyword.sync_guid = "1234-5678-90AB-CDEF"; 187 keyword.sync_guid = "1234-5678-90AB-CDEF";
197 keyword.alternate_urls.push_back("a_url1"); 188 keyword.alternate_urls.push_back("a_url1");
198 keyword.alternate_urls.push_back("a_url2"); 189 keyword.alternate_urls.push_back("a_url2");
199 keyword.search_terms_replacement_key = "espv"; 190 keyword.search_terms_replacement_key = "espv";
200 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 191 EXPECT_TRUE(table_->AddKeyword(keyword));
201 192
202 keyword.SetKeyword(ASCIIToUTF16("url")); 193 keyword.SetKeyword(ASCIIToUTF16("url"));
203 keyword.instant_url = "http://instant2/"; 194 keyword.instant_url = "http://instant2/";
204 keyword.originating_url = GURL("http://originating.url/"); 195 keyword.originating_url = GURL("http://originating.url/");
205 keyword.input_encodings.push_back("Shift_JIS"); 196 keyword.input_encodings.push_back("Shift_JIS");
206 keyword.id = 1; 197 keyword.id = 1;
207 keyword.prepopulate_id = 5; 198 keyword.prepopulate_id = 5;
208 keyword.sync_guid = "FEDC-BA09-8765-4321"; 199 keyword.sync_guid = "FEDC-BA09-8765-4321";
209 keyword.alternate_urls.clear(); 200 keyword.alternate_urls.clear();
210 keyword.search_terms_replacement_key.clear(); 201 keyword.search_terms_replacement_key.clear();
211 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 202 EXPECT_TRUE(table_->AddKeyword(keyword));
212 203
213 const char kTestContents[] = "1short_nameurlhttp://favicon.url/http://url/1" 204 const char kTestContents[] = "1short_nameurlhttp://favicon.url/http://url/1"
214 "http://originating.url/00Shift_JIS1url250http://instant2/0" 205 "http://originating.url/00Shift_JIS1url250http://instant2/0"
215 "FEDC-BA09-8765-4321[]" 206 "FEDC-BA09-8765-4321[]"
216 "2short_namekeywordhttp://favicon.url/http://url/1001" 207 "2short_namekeywordhttp://favicon.url/http://url/1001"
217 "url20001234-5678-90AB-CDEF[\"a_url1\",\"a_url2\"]espv"; 208 "url20001234-5678-90AB-CDEF[\"a_url1\",\"a_url2\"]espv";
218 209
219 std::string contents; 210 std::string contents;
220 EXPECT_TRUE(keyword_table->GetTableContents("keywords", 211 EXPECT_TRUE(table_->GetTableContents("keywords",
221 WebDatabase::kCurrentVersionNumber, &contents)); 212 WebDatabase::kCurrentVersionNumber, &contents));
222 EXPECT_EQ(kTestContents, contents); 213 EXPECT_EQ(kTestContents, contents);
223 } 214 }
224 215
225 TEST_F(KeywordTableTest, UpdateKeyword) { 216 TEST_F(KeywordTableTest, UpdateKeyword) {
226 WebDatabase db;
227 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
228 KeywordTable* keyword_table = db.GetKeywordTable();
229
230 TemplateURLData keyword; 217 TemplateURLData keyword;
231 keyword.short_name = ASCIIToUTF16("short_name"); 218 keyword.short_name = ASCIIToUTF16("short_name");
232 keyword.SetKeyword(ASCIIToUTF16("keyword")); 219 keyword.SetKeyword(ASCIIToUTF16("keyword"));
233 keyword.SetURL("http://url/"); 220 keyword.SetURL("http://url/");
234 keyword.suggestions_url = "url2"; 221 keyword.suggestions_url = "url2";
235 keyword.favicon_url = GURL("http://favicon.url/"); 222 keyword.favicon_url = GURL("http://favicon.url/");
236 keyword.show_in_default_list = true; 223 keyword.show_in_default_list = true;
237 keyword.safe_for_autoreplace = true; 224 keyword.safe_for_autoreplace = true;
238 keyword.id = 1; 225 keyword.id = 1;
239 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 226 EXPECT_TRUE(table_->AddKeyword(keyword));
240 227
241 keyword.SetKeyword(ASCIIToUTF16("url")); 228 keyword.SetKeyword(ASCIIToUTF16("url"));
242 keyword.instant_url = "http://instant2/"; 229 keyword.instant_url = "http://instant2/";
243 keyword.originating_url = GURL("http://originating.url/"); 230 keyword.originating_url = GURL("http://originating.url/");
244 keyword.input_encodings.push_back("Shift_JIS"); 231 keyword.input_encodings.push_back("Shift_JIS");
245 keyword.prepopulate_id = 5; 232 keyword.prepopulate_id = 5;
246 EXPECT_TRUE(keyword_table->UpdateKeyword(keyword)); 233 EXPECT_TRUE(table_->UpdateKeyword(keyword));
247 234
248 KeywordTable::Keywords keywords; 235 KeywordTable::Keywords keywords;
249 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 236 EXPECT_TRUE(table_->GetKeywords(&keywords));
250 EXPECT_EQ(1U, keywords.size()); 237 EXPECT_EQ(1U, keywords.size());
251 const TemplateURLData& restored_keyword = keywords.front(); 238 const TemplateURLData& restored_keyword = keywords.front();
252 239
253 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 240 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
254 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); 241 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword());
255 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); 242 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url);
256 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); 243 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url);
257 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 244 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
258 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); 245 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url);
259 EXPECT_EQ(keyword.show_in_default_list, 246 EXPECT_EQ(keyword.show_in_default_list,
260 restored_keyword.show_in_default_list); 247 restored_keyword.show_in_default_list);
261 EXPECT_EQ(keyword.safe_for_autoreplace, 248 EXPECT_EQ(keyword.safe_for_autoreplace,
262 restored_keyword.safe_for_autoreplace); 249 restored_keyword.safe_for_autoreplace);
263 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings); 250 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings);
264 EXPECT_EQ(keyword.id, restored_keyword.id); 251 EXPECT_EQ(keyword.id, restored_keyword.id);
265 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id); 252 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id);
266 } 253 }
267 254
268 TEST_F(KeywordTableTest, KeywordWithNoFavicon) { 255 TEST_F(KeywordTableTest, KeywordWithNoFavicon) {
269 WebDatabase db;
270 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
271 KeywordTable* keyword_table = db.GetKeywordTable();
272
273 TemplateURLData keyword; 256 TemplateURLData keyword;
274 keyword.short_name = ASCIIToUTF16("short_name"); 257 keyword.short_name = ASCIIToUTF16("short_name");
275 keyword.SetKeyword(ASCIIToUTF16("keyword")); 258 keyword.SetKeyword(ASCIIToUTF16("keyword"));
276 keyword.SetURL("http://url/"); 259 keyword.SetURL("http://url/");
277 keyword.safe_for_autoreplace = true; 260 keyword.safe_for_autoreplace = true;
278 keyword.id = -100; 261 keyword.id = -100;
279 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 262 EXPECT_TRUE(table_->AddKeyword(keyword));
280 263
281 KeywordTable::Keywords keywords; 264 KeywordTable::Keywords keywords;
282 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 265 EXPECT_TRUE(table_->GetKeywords(&keywords));
283 EXPECT_EQ(1U, keywords.size()); 266 EXPECT_EQ(1U, keywords.size());
284 const TemplateURLData& restored_keyword = keywords.front(); 267 const TemplateURLData& restored_keyword = keywords.front();
285 268
286 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); 269 EXPECT_EQ(keyword.short_name, restored_keyword.short_name);
287 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); 270 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword());
288 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); 271 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url);
289 EXPECT_EQ(keyword.safe_for_autoreplace, 272 EXPECT_EQ(keyword.safe_for_autoreplace,
290 restored_keyword.safe_for_autoreplace); 273 restored_keyword.safe_for_autoreplace);
291 EXPECT_EQ(keyword.id, restored_keyword.id); 274 EXPECT_EQ(keyword.id, restored_keyword.id);
292 } 275 }
293 276
294 TEST_F(KeywordTableTest, SanitizeURLs) { 277 TEST_F(KeywordTableTest, SanitizeURLs) {
295 WebDatabase db;
296 ASSERT_EQ(sql::INIT_OK, db.Init(file_, std::string()));
297 KeywordTable* keyword_table = db.GetKeywordTable();
298
299 TemplateURLData keyword; 278 TemplateURLData keyword;
300 keyword.short_name = ASCIIToUTF16("legit"); 279 keyword.short_name = ASCIIToUTF16("legit");
301 keyword.SetKeyword(ASCIIToUTF16("legit")); 280 keyword.SetKeyword(ASCIIToUTF16("legit"));
302 keyword.SetURL("http://url/"); 281 keyword.SetURL("http://url/");
303 keyword.id = 1000; 282 keyword.id = 1000;
304 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 283 EXPECT_TRUE(table_->AddKeyword(keyword));
305 284
306 keyword.short_name = ASCIIToUTF16("bogus"); 285 keyword.short_name = ASCIIToUTF16("bogus");
307 keyword.SetKeyword(ASCIIToUTF16("bogus")); 286 keyword.SetKeyword(ASCIIToUTF16("bogus"));
308 keyword.id = 2000; 287 keyword.id = 2000;
309 EXPECT_TRUE(keyword_table->AddKeyword(keyword)); 288 EXPECT_TRUE(table_->AddKeyword(keyword));
310 289
311 KeywordTable::Keywords keywords; 290 KeywordTable::Keywords keywords;
312 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 291 EXPECT_TRUE(table_->GetKeywords(&keywords));
313 EXPECT_EQ(2U, keywords.size()); 292 EXPECT_EQ(2U, keywords.size());
314 keywords.clear(); 293 keywords.clear();
315 294
316 // Erase the URL field for the second keyword to simulate having bogus data 295 // Erase the URL field for the second keyword to simulate having bogus data
317 // previously saved into the database. 296 // previously saved into the database.
318 sql::Statement s(keyword_table->db_->GetUniqueStatement( 297 sql::Statement s(table_->db_->GetUniqueStatement(
319 "UPDATE keywords SET url=? WHERE id=?")); 298 "UPDATE keywords SET url=? WHERE id=?"));
320 s.BindString16(0, string16()); 299 s.BindString16(0, string16());
321 s.BindInt64(1, 2000); 300 s.BindInt64(1, 2000);
322 EXPECT_TRUE(s.Run()); 301 EXPECT_TRUE(s.Run());
323 302
324 // GetKeywords() should erase the entry with the empty URL field. 303 // GetKeywords() should erase the entry with the empty URL field.
325 EXPECT_TRUE(keyword_table->GetKeywords(&keywords)); 304 EXPECT_TRUE(table_->GetKeywords(&keywords));
326 EXPECT_EQ(1U, keywords.size()); 305 EXPECT_EQ(1U, keywords.size());
327 } 306 }
OLDNEW
« no previous file with comments | « chrome/browser/webdata/keyword_table.cc ('k') | chrome/browser/webdata/logins_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698