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