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/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 db_->AddTable(table_.get()); | 35 db_->AddTable(table_.get()); |
36 ASSERT_EQ(sql::INIT_OK, db_->Init(file_)); | 36 ASSERT_EQ(sql::INIT_OK, db_->Init(file_)); |
37 } | 37 } |
38 | 38 |
39 void AddKeyword(const TemplateURLData& keyword) const { | 39 void AddKeyword(const TemplateURLData& keyword) const { |
40 EXPECT_TRUE(table_->AddKeyword(keyword)); | 40 EXPECT_TRUE(table_->AddKeyword(keyword)); |
41 } | 41 } |
42 | 42 |
43 TemplateURLData CreateAndAddKeyword() const { | 43 TemplateURLData CreateAndAddKeyword() const { |
44 TemplateURLData keyword; | 44 TemplateURLData keyword; |
45 keyword.short_name = ASCIIToUTF16("short_name"); | 45 keyword.SetShortName(ASCIIToUTF16("short_name")); |
46 keyword.SetKeyword(ASCIIToUTF16("keyword")); | 46 keyword.SetKeyword(ASCIIToUTF16("keyword")); |
47 keyword.SetURL("http://url/"); | 47 keyword.SetURL("http://url/"); |
48 keyword.suggestions_url = "url2"; | 48 keyword.suggestions_url = "url2"; |
49 keyword.instant_url = "http://instant/"; | 49 keyword.instant_url = "http://instant/"; |
50 keyword.image_url = "http://image-search-url/"; | 50 keyword.image_url = "http://image-search-url/"; |
51 keyword.new_tab_url = "http://new-tab-url/"; | 51 keyword.new_tab_url = "http://new-tab-url/"; |
52 keyword.search_url_post_params = "ie=utf-8,oe=utf-8"; | 52 keyword.search_url_post_params = "ie=utf-8,oe=utf-8"; |
53 keyword.image_url_post_params = "name=1,value=2"; | 53 keyword.image_url_post_params = "name=1,value=2"; |
54 keyword.favicon_url = GURL("http://favicon.url/"); | 54 keyword.favicon_url = GURL("http://favicon.url/"); |
55 keyword.originating_url = GURL("http://google.com/"); | 55 keyword.originating_url = GURL("http://google.com/"); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 }; | 110 }; |
111 | 111 |
112 | 112 |
113 TEST_F(KeywordTableTest, Keywords) { | 113 TEST_F(KeywordTableTest, Keywords) { |
114 TemplateURLData keyword(CreateAndAddKeyword()); | 114 TemplateURLData keyword(CreateAndAddKeyword()); |
115 | 115 |
116 KeywordTable::Keywords keywords(GetKeywords()); | 116 KeywordTable::Keywords keywords(GetKeywords()); |
117 EXPECT_EQ(1U, keywords.size()); | 117 EXPECT_EQ(1U, keywords.size()); |
118 const TemplateURLData& restored_keyword = keywords.front(); | 118 const TemplateURLData& restored_keyword = keywords.front(); |
119 | 119 |
120 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); | 120 EXPECT_EQ(keyword.short_name(), restored_keyword.short_name()); |
121 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); | 121 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); |
122 EXPECT_EQ(keyword.url(), restored_keyword.url()); | 122 EXPECT_EQ(keyword.url(), restored_keyword.url()); |
123 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); | 123 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); |
124 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); | 124 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); |
125 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); | 125 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); |
126 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); | 126 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); |
127 EXPECT_EQ(keyword.show_in_default_list, | 127 EXPECT_EQ(keyword.show_in_default_list, |
128 restored_keyword.show_in_default_list); | 128 restored_keyword.show_in_default_list); |
129 EXPECT_EQ(keyword.safe_for_autoreplace, | 129 EXPECT_EQ(keyword.safe_for_autoreplace, |
130 restored_keyword.safe_for_autoreplace); | 130 restored_keyword.safe_for_autoreplace); |
(...skipping 24 matching lines...) Expand all Loading... |
155 keyword.instant_url = "http://instant2/"; | 155 keyword.instant_url = "http://instant2/"; |
156 keyword.originating_url = GURL("http://originating.url/"); | 156 keyword.originating_url = GURL("http://originating.url/"); |
157 keyword.input_encodings.push_back("Shift_JIS"); | 157 keyword.input_encodings.push_back("Shift_JIS"); |
158 keyword.prepopulate_id = 5; | 158 keyword.prepopulate_id = 5; |
159 UpdateKeyword(keyword); | 159 UpdateKeyword(keyword); |
160 | 160 |
161 KeywordTable::Keywords keywords(GetKeywords()); | 161 KeywordTable::Keywords keywords(GetKeywords()); |
162 EXPECT_EQ(1U, keywords.size()); | 162 EXPECT_EQ(1U, keywords.size()); |
163 const TemplateURLData& restored_keyword = keywords.front(); | 163 const TemplateURLData& restored_keyword = keywords.front(); |
164 | 164 |
165 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); | 165 EXPECT_EQ(keyword.short_name(), restored_keyword.short_name()); |
166 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); | 166 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); |
167 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); | 167 EXPECT_EQ(keyword.suggestions_url, restored_keyword.suggestions_url); |
168 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); | 168 EXPECT_EQ(keyword.instant_url, restored_keyword.instant_url); |
169 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); | 169 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); |
170 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); | 170 EXPECT_EQ(keyword.originating_url, restored_keyword.originating_url); |
171 EXPECT_EQ(keyword.show_in_default_list, | 171 EXPECT_EQ(keyword.show_in_default_list, |
172 restored_keyword.show_in_default_list); | 172 restored_keyword.show_in_default_list); |
173 EXPECT_EQ(keyword.safe_for_autoreplace, | 173 EXPECT_EQ(keyword.safe_for_autoreplace, |
174 restored_keyword.safe_for_autoreplace); | 174 restored_keyword.safe_for_autoreplace); |
175 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings); | 175 EXPECT_EQ(keyword.input_encodings, restored_keyword.input_encodings); |
176 EXPECT_EQ(keyword.id, restored_keyword.id); | 176 EXPECT_EQ(keyword.id, restored_keyword.id); |
177 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id); | 177 EXPECT_EQ(keyword.prepopulate_id, restored_keyword.prepopulate_id); |
178 } | 178 } |
179 | 179 |
180 TEST_F(KeywordTableTest, KeywordWithNoFavicon) { | 180 TEST_F(KeywordTableTest, KeywordWithNoFavicon) { |
181 TemplateURLData keyword; | 181 TemplateURLData keyword; |
182 keyword.short_name = ASCIIToUTF16("short_name"); | 182 keyword.SetShortName(ASCIIToUTF16("short_name")); |
183 keyword.SetKeyword(ASCIIToUTF16("keyword")); | 183 keyword.SetKeyword(ASCIIToUTF16("keyword")); |
184 keyword.SetURL("http://url/"); | 184 keyword.SetURL("http://url/"); |
185 keyword.safe_for_autoreplace = true; | 185 keyword.safe_for_autoreplace = true; |
186 keyword.id = -100; | 186 keyword.id = -100; |
187 AddKeyword(keyword); | 187 AddKeyword(keyword); |
188 | 188 |
189 KeywordTable::Keywords keywords(GetKeywords()); | 189 KeywordTable::Keywords keywords(GetKeywords()); |
190 EXPECT_EQ(1U, keywords.size()); | 190 EXPECT_EQ(1U, keywords.size()); |
191 const TemplateURLData& restored_keyword = keywords.front(); | 191 const TemplateURLData& restored_keyword = keywords.front(); |
192 | 192 |
193 EXPECT_EQ(keyword.short_name, restored_keyword.short_name); | 193 EXPECT_EQ(keyword.short_name(), restored_keyword.short_name()); |
194 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); | 194 EXPECT_EQ(keyword.keyword(), restored_keyword.keyword()); |
195 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); | 195 EXPECT_EQ(keyword.favicon_url, restored_keyword.favicon_url); |
196 EXPECT_EQ(keyword.safe_for_autoreplace, | 196 EXPECT_EQ(keyword.safe_for_autoreplace, |
197 restored_keyword.safe_for_autoreplace); | 197 restored_keyword.safe_for_autoreplace); |
198 EXPECT_EQ(keyword.id, restored_keyword.id); | 198 EXPECT_EQ(keyword.id, restored_keyword.id); |
199 } | 199 } |
200 | 200 |
201 TEST_F(KeywordTableTest, SanitizeURLs) { | 201 TEST_F(KeywordTableTest, SanitizeURLs) { |
202 TemplateURLData keyword; | 202 TemplateURLData keyword; |
203 keyword.short_name = ASCIIToUTF16("legit"); | 203 keyword.SetShortName(ASCIIToUTF16("legit")); |
204 keyword.SetKeyword(ASCIIToUTF16("legit")); | 204 keyword.SetKeyword(ASCIIToUTF16("legit")); |
205 keyword.SetURL("http://url/"); | 205 keyword.SetURL("http://url/"); |
206 keyword.id = 1000; | 206 keyword.id = 1000; |
207 AddKeyword(keyword); | 207 AddKeyword(keyword); |
208 | 208 |
209 keyword.short_name = ASCIIToUTF16("bogus"); | 209 keyword.SetShortName(ASCIIToUTF16("bogus")); |
210 keyword.SetKeyword(ASCIIToUTF16("bogus")); | 210 keyword.SetKeyword(ASCIIToUTF16("bogus")); |
211 keyword.id = 2000; | 211 keyword.id = 2000; |
212 AddKeyword(keyword); | 212 AddKeyword(keyword); |
213 | 213 |
214 EXPECT_EQ(2U, GetKeywords().size()); | 214 EXPECT_EQ(2U, GetKeywords().size()); |
215 | 215 |
216 // Erase the URL field for the second keyword to simulate having bogus data | 216 // Erase the URL field for the second keyword to simulate having bogus data |
217 // previously saved into the database. | 217 // previously saved into the database. |
218 sql::Statement s; | 218 sql::Statement s; |
219 GetStatement("UPDATE keywords SET url=? WHERE id=?", &s); | 219 GetStatement("UPDATE keywords SET url=? WHERE id=?", &s); |
220 s.BindString16(0, base::string16()); | 220 s.BindString16(0, base::string16()); |
221 s.BindInt64(1, 2000); | 221 s.BindInt64(1, 2000); |
222 EXPECT_TRUE(s.Run()); | 222 EXPECT_TRUE(s.Run()); |
223 | 223 |
224 // GetKeywords() should erase the entry with the empty URL field. | 224 // GetKeywords() should erase the entry with the empty URL field. |
225 EXPECT_EQ(1U, GetKeywords().size()); | 225 EXPECT_EQ(1U, GetKeywords().size()); |
226 } | 226 } |
| 227 |
| 228 TEST_F(KeywordTableTest, SanitizeShortName) { |
| 229 TemplateURLData keyword; |
| 230 { |
| 231 keyword.SetShortName(ASCIIToUTF16("legit name")); |
| 232 keyword.SetKeyword(ASCIIToUTF16("legit")); |
| 233 keyword.SetURL("http://url/"); |
| 234 keyword.id = 1000; |
| 235 AddKeyword(keyword); |
| 236 KeywordTable::Keywords keywords(GetKeywords()); |
| 237 EXPECT_EQ(1U, keywords.size()); |
| 238 const TemplateURLData& keyword_from_database = keywords.front(); |
| 239 EXPECT_EQ(keyword.id, keyword_from_database.id); |
| 240 EXPECT_EQ(ASCIIToUTF16("legit name"), keyword_from_database.short_name()); |
| 241 RemoveKeyword(keyword.id); |
| 242 } |
| 243 |
| 244 { |
| 245 keyword.SetShortName(ASCIIToUTF16("\t\tbogus \tname \n")); |
| 246 keyword.SetKeyword(ASCIIToUTF16("bogus")); |
| 247 keyword.id = 2000; |
| 248 AddKeyword(keyword); |
| 249 KeywordTable::Keywords keywords(GetKeywords()); |
| 250 EXPECT_EQ(1U, keywords.size()); |
| 251 const TemplateURLData& keyword_from_database = keywords.front(); |
| 252 EXPECT_EQ(keyword.id, keyword_from_database.id); |
| 253 EXPECT_EQ(ASCIIToUTF16("bogus name"), keyword_from_database.short_name()); |
| 254 RemoveKeyword(keyword.id); |
| 255 } |
| 256 } |
OLD | NEW |