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

Side by Side Diff: chrome/browser/intents/web_intents_registry_unittest.cc

Issue 9430027: Add default query method to WebIntentsRegistry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix some issues, refactoring. 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) 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 "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/json/json_value_serializer.h" 6 #include "base/json/json_value_serializer.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/scoped_temp_dir.h" 9 #include "base/scoped_temp_dir.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/extensions/test_extension_service.h" 11 #include "chrome/browser/extensions/test_extension_service.h"
12 #include "chrome/browser/intents/default_web_intent_service.h"
12 #include "chrome/browser/intents/web_intents_registry.h" 13 #include "chrome/browser/intents/web_intents_registry.h"
13 #include "chrome/browser/webdata/web_data_service.h" 14 #include "chrome/browser/webdata/web_data_service.h"
14 #include "chrome/common/chrome_paths.h" 15 #include "chrome/common/chrome_paths.h"
15 #include "chrome/common/extensions/extension_set.h" 16 #include "chrome/common/extensions/extension_set.h"
16 #include "content/test/test_browser_thread.h" 17 #include "content/test/test_browser_thread.h"
17 #include "testing/gmock/include/gmock/gmock.h" 18 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 using content::BrowserThread; 21 using content::BrowserThread;
21 using webkit_glue::WebIntentServiceData; 22 using webkit_glue::WebIntentServiceData;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 virtual void OnIntentsQueryDone( 121 virtual void OnIntentsQueryDone(
121 WebIntentsRegistry::QueryID id, 122 WebIntentsRegistry::QueryID id,
122 const std::vector<webkit_glue::WebIntentServiceData>& services) { 123 const std::vector<webkit_glue::WebIntentServiceData>& services) {
123 DCHECK(id == expected_id_); 124 DCHECK(id == expected_id_);
124 services_ = services; 125 services_ = services;
125 126
126 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 127 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
127 MessageLoop::current()->Quit(); 128 MessageLoop::current()->Quit();
128 } 129 }
129 130
131 virtual void OnIntentsDefaultsQueryDone(
132 WebIntentsRegistry::QueryID id,
133 const DefaultWebIntentService& default_service) {
134 DCHECK(id == expected_id_);
135 default_ = default_service;
136
137 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
138 MessageLoop::current()->Quit();
139 }
140
130 // Wait for the UI message loop to terminate - happens when OnIntesQueryDone 141 // Wait for the UI message loop to terminate - happens when OnIntesQueryDone
131 // is invoked. 142 // is invoked.
132 void WaitForData() { 143 void WaitForData() {
133 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
134 MessageLoop::current()->Run(); 145 MessageLoop::current()->Run();
135 } 146 }
136 147
137 // QueryID callback is tied to. 148 // QueryID callback is tied to.
138 WebIntentsRegistry::QueryID expected_id_; 149 WebIntentsRegistry::QueryID expected_id_;
139 150
140 // Result data from callback. 151 // Result data from callback.
141 std::vector<webkit_glue::WebIntentServiceData> services_; 152 std::vector<webkit_glue::WebIntentServiceData> services_;
153
154 // Result default data from callback.
155 DefaultWebIntentService default_;
142 }; 156 };
143 157
144 TEST_F(WebIntentsRegistryTest, BasicTests) { 158 TEST_F(WebIntentsRegistryTest, BasicTests) {
145 webkit_glue::WebIntentServiceData service; 159 webkit_glue::WebIntentServiceData service;
146 service.service_url = GURL("http://google.com"); 160 service.service_url = GURL("http://google.com");
147 service.action = ASCIIToUTF16("share"); 161 service.action = ASCIIToUTF16("share");
148 service.type = ASCIIToUTF16("image/*"); 162 service.type = ASCIIToUTF16("image/*");
149 service.title = ASCIIToUTF16("Google's Sharing Service"); 163 service.title = ASCIIToUTF16("Google's Sharing Service");
150 164
151 registry_.RegisterIntentService(service); 165 registry_.RegisterIntentService(service);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 consumer.expected_id_ = registry_.GetIntentServices( 334 consumer.expected_id_ = registry_.GetIntentServices(
321 ASCIIToUTF16("http://webintents.org/share"), 335 ASCIIToUTF16("http://webintents.org/share"),
322 ASCIIToUTF16("*"), &consumer); 336 ASCIIToUTF16("*"), &consumer);
323 consumer.WaitForData(); 337 consumer.WaitForData();
324 ASSERT_EQ(4U, consumer.services_.size()); 338 ASSERT_EQ(4U, consumer.services_.size());
325 EXPECT_EQ(services[0], consumer.services_[0]); 339 EXPECT_EQ(services[0], consumer.services_[0]);
326 EXPECT_EQ(services[1], consumer.services_[1]); 340 EXPECT_EQ(services[1], consumer.services_[1]);
327 EXPECT_EQ(services[2], consumer.services_[2]); 341 EXPECT_EQ(services[2], consumer.services_[2]);
328 EXPECT_EQ(services[3], consumer.services_[3]); 342 EXPECT_EQ(services[3], consumer.services_[3]);
329 } 343 }
344
345 TEST_F(WebIntentsRegistryTest, TestGetDefaults) {
346 DefaultWebIntentService default_service;
347 default_service.action = ASCIIToUTF16("share");
348 default_service.type = ASCIIToUTF16("type/*");
349 // Values here are just dummies to test for preservation.
350 default_service.user_date = 1;
351 default_service.suppression = 4;
352 default_service.service_url = "service_url";
353 registry_.RegisterDefaultIntentService(default_service);
354
355 TestConsumer consumer;
356
357 // Test we can retrieve default entries by action.
358 consumer.expected_id_ = registry_.GetDefaultIntentService(
359 ASCIIToUTF16("share"),
360 ASCIIToUTF16("type/plain"),
361 GURL("http://www.google.com/"),
362 &consumer);
363
364 consumer.WaitForData();
365
366 EXPECT_EQ("service_url", consumer.default_.service_url);
367 EXPECT_EQ(1, consumer.default_.user_date);
368 EXPECT_EQ(4, consumer.default_.suppression);
369
370 // Test that no action match means we don't retrieve any
371 // default entries.
372 consumer.default_ = DefaultWebIntentService();
373 ASSERT_EQ("", consumer.default_.service_url);
374 consumer.expected_id_ = registry_.GetDefaultIntentService(
375 ASCIIToUTF16("no-share"),
376 ASCIIToUTF16("type/plain"),
377 GURL("http://www.google.com/"),
378 &consumer);
379
380 consumer.WaitForData();
381
382 EXPECT_EQ("", consumer.default_.service_url);
383
384 // Test that no type match means we don't retrieve any
385 // default entries (they get filtered out).
386 consumer.default_ = DefaultWebIntentService();
387 ASSERT_EQ("", consumer.default_.service_url);
388 consumer.expected_id_ = registry_.GetDefaultIntentService(
389 ASCIIToUTF16("share"),
390 ASCIIToUTF16("notype/plain"),
391 GURL("http://www.google.com/"),
392 &consumer);
393
394 consumer.WaitForData();
395
396 EXPECT_EQ("", consumer.default_.service_url);
397 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698