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

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

Issue 9104018: Modify schema to include defaulting information. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add accessors, tests. Created 8 years, 10 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <algorithm> 5 #include <algorithm>
6 #include <string>
7 #include <vector>
6 8
7 #include "base/file_util.h" 9 #include "base/file_util.h"
8 #include "base/scoped_temp_dir.h" 10 #include "base/scoped_temp_dir.h"
9 #include "base/string16.h" 11 #include "base/string16.h"
10 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/intents/default_intent_service.h"
11 #include "chrome/browser/webdata/web_database.h" 14 #include "chrome/browser/webdata/web_database.h"
12 #include "chrome/browser/webdata/web_intents_table.h" 15 #include "chrome/browser/webdata/web_intents_table.h"
13 #include "chrome/common/chrome_paths.h" 16 #include "chrome/common/chrome_paths.h"
14 #include "googleurl/src/gurl.h" 17 #include "googleurl/src/gurl.h"
15 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
16 #include "webkit/glue/web_intent_service_data.h" 19 #include "webkit/glue/web_intent_service_data.h"
17 20
18 using webkit_glue::WebIntentServiceData; 21 using webkit_glue::WebIntentServiceData;
19 22
20 namespace { 23 namespace {
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 UTF8ToUTF16(test_url_fake.spec()), &intents)); 178 UTF8ToUTF16(test_url_fake.spec()), &intents));
176 EXPECT_EQ(0U, intents.size()); 179 EXPECT_EQ(0U, intents.size());
177 180
178 intent.action = test_action_2; 181 intent.action = test_action_2;
179 ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent)); 182 ASSERT_TRUE(IntentsTable()->SetWebIntentService(intent));
180 EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL( 183 EXPECT_TRUE(IntentsTable()->GetWebIntentServicesForURL(
181 UTF8ToUTF16(test_url.spec()), &intents)); 184 UTF8ToUTF16(test_url.spec()), &intents));
182 ASSERT_EQ(2U, intents.size()); 185 ASSERT_EQ(2U, intents.size());
183 } 186 }
184 187
188 TEST_F(WebIntentsTableTest, DefaultServices) {
189 DefaultIntentService default_service;
190 default_service.action = ASCIIToUTF16("action");
191 default_service.type = ASCIIToUTF16("mime/type");
192 default_service.url_prefix = "url_prefix";
193 default_service.user_date = 1;
194 default_service.suppression = 4;
195 default_service.service_url = "service_url";
196 default_service.extension_url = "extension_url";
197
198 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
199
200 std::vector<DefaultIntentService> defaults;
201 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
202 ASCIIToUTF16("no_action"), ASCIIToUTF16("mime/type"), "url_prefix",
203 &defaults));
204 EXPECT_EQ(0U, defaults.size());
205
206 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
207 ASCIIToUTF16("action"), ASCIIToUTF16("mime/notype"), "url_prefix",
208 &defaults));
209 EXPECT_EQ(0U, defaults.size());
210
211 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
212 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "no_url_prefix",
213 &defaults));
214 EXPECT_EQ(0U, defaults.size());
215
216 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
217 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "url_prefix",
218 &defaults));
219
220 ASSERT_EQ(1U, defaults.size());
221 EXPECT_EQ(ASCIIToUTF16("action"), defaults[0].action);
222 EXPECT_EQ(ASCIIToUTF16("mime/type"), defaults[0].type);
223 EXPECT_EQ("url_prefix", defaults[0].url_prefix);
224 EXPECT_EQ(1, defaults[0].user_date);
225 EXPECT_EQ(4, defaults[0].suppression);
226 EXPECT_EQ("service_url", defaults[0].service_url);
227 EXPECT_EQ("extension_url", defaults[0].extension_url);
228 }
229
230 TEST_F(WebIntentsTableTest, TestDefaultMimeTypes) {
231 DefaultIntentService default_service;
232 default_service.action = ASCIIToUTF16("action");
233 default_service.type = ASCIIToUTF16("mime/type1");
234 default_service.url_prefix = "url_prefix";
235 default_service.user_date = 1;
236 default_service.suppression = 4;
237 default_service.service_url = "service_url";
238 default_service.extension_url = "extension_url";
239 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
240
241 default_service.type = ASCIIToUTF16("mime/*");
242 default_service.service_url = "service_url_star";
243 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
244
245 std::vector<DefaultIntentService> defaults;
246 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
247 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type"), "url_prefix",
248 &defaults));
249 ASSERT_EQ(1U, defaults.size());
250 EXPECT_EQ("service_url_star", defaults[0].service_url);
251
252 defaults.clear();
253 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
254 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix",
255 &defaults));
256 ASSERT_EQ(2U, defaults.size());
257
258 defaults.clear();
259 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
260 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1;type=k"),
261 "url_prefix", &defaults));
262 ASSERT_EQ(2U, defaults.size());
263 }
264
265 TEST_F(WebIntentsTableTest, TestUrlPrefixDefaults) {
266 DefaultIntentService default_service;
267 default_service.action = ASCIIToUTF16("action");
268 default_service.type = ASCIIToUTF16("mime/type1");
269 default_service.url_prefix = "url_prefix";
270 default_service.user_date = 1;
271 default_service.suppression = 4;
272 default_service.service_url = "service_url";
273 default_service.extension_url = "extension_url";
274 ASSERT_TRUE(IntentsTable()->SetDefaultService(default_service));
275
276 std::vector<DefaultIntentService> defaults;
277 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
278 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_not_prefix",
279 &defaults));
280 ASSERT_EQ(0U, defaults.size());
281
282 defaults.clear();
283 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
284 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix_abc",
285 &defaults));
286 ASSERT_EQ(1U, defaults.size());
287
288 defaults.clear();
289 ASSERT_TRUE(IntentsTable()->GetDefaultServices(
290 ASCIIToUTF16("action"), ASCIIToUTF16("mime/type1"), "url_prefix_xyz",
291 &defaults));
292 ASSERT_EQ(1U, defaults.size());
293 }
294
295
185 } // namespace 296 } // namespace
OLDNEW
« chrome/browser/webdata/web_intents_table.cc ('K') | « chrome/browser/webdata/web_intents_table.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698