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

Unified Diff: chrome/browser/webdata/web_data_service_unittest.cc

Issue 9370043: Add default intents methods for web data service. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactor WaitUntilCalled 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/webdata/web_data_service.cc ('k') | chrome/browser/webdata/web_intents_table.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webdata/web_data_service_unittest.cc
diff --git a/chrome/browser/webdata/web_data_service_unittest.cc b/chrome/browser/webdata/web_data_service_unittest.cc
index b816772820ff23d0812b77fab338c42de46762ab..8290b4a6451abbfb0fa5c1a0007e29d9327966f2 100644
--- a/chrome/browser/webdata/web_data_service_unittest.cc
+++ b/chrome/browser/webdata/web_data_service_unittest.cc
@@ -19,6 +19,7 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/autofill/credit_card.h"
+#include "chrome/browser/intents/default_web_intent_service.h"
#include "chrome/browser/webdata/autofill_change.h"
#include "chrome/browser/webdata/autofill_entry.h"
#include "chrome/browser/webdata/web_data_service.h"
@@ -146,8 +147,15 @@ class WebDataServiceAutofillTest : public WebDataServiceTest {
WaitableEvent done_event_;
};
-// Simple consumer for WebIntents data. Stores the result data and quits UI
-// message loop when callback is invoked.
+// Run the current message loop. OnWebDataServiceRequestDone will invoke
+// MessageLoop::Quit on completion, so this call will finish at that point.
+static void WaitUntilCalled() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ MessageLoop::current()->Run();
+}
+
+// Simple consumer for WebIntents service data. Stores the result data and
+// quits UI message loop when callback is invoked.
class WebIntentsConsumer : public WebDataServiceConsumer {
public:
virtual void OnWebDataServiceRequestDone(WebDataService::Handle h,
@@ -164,15 +172,30 @@ class WebIntentsConsumer : public WebDataServiceConsumer {
MessageLoop::current()->Quit();
}
- // Run the current message loop. OnWebDataServiceRequestDone will invoke
- // MessageLoop::Quit on completion, so this call will finish at that point.
- static void WaitUntilCalled() {
+ // Result data from completion callback.
+ std::vector<WebIntentServiceData> services_;
+};
+
+// Simple consumer for WebIntents defaults data. Stores the result data and
+// quits UI message loop when callback is invoked.
+class WebIntentsDefaultsConsumer : public WebDataServiceConsumer {
+ public:
+ virtual void OnWebDataServiceRequestDone(WebDataService::Handle h,
+ const WDTypedResult* result) {
+ services_.clear();
+ if (result) {
+ DCHECK(result->GetType() == WEB_INTENTS_DEFAULTS_RESULT);
+ services_ = static_cast<
+ const WDResult<std::vector<DefaultWebIntentService> >*>(result)->
+ GetValue();
+ }
+
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- MessageLoop::current()->Run();
+ MessageLoop::current()->Quit();
}
// Result data from completion callback.
- std::vector<WebIntentServiceData> services_;
+ std::vector<DefaultWebIntentService> services_;
};
// Simple consumer for Keywords data. Stores the result data and quits UI
@@ -195,13 +218,6 @@ class KeywordsConsumer : public WebDataServiceConsumer {
MessageLoop::current()->Quit();
}
- // Run the current message loop. OnWebDataServiceRequestDone will invoke
- // MessageLoop::Quit on completion, so this call will finish at that point.
- static void WaitUntilCalled() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- MessageLoop::current()->Run();
- }
-
// True if keywords data was loaded successfully.
bool load_succeeded;
// Result data from completion callback.
@@ -635,7 +651,7 @@ TEST_F(WebDataServiceTest, WebIntents) {
WebIntentsConsumer consumer;
wds_->GetWebIntentServices(ASCIIToUTF16("share"), &consumer);
- WebIntentsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
EXPECT_EQ(0U, consumer.services_.size());
WebIntentServiceData service;
@@ -652,7 +668,7 @@ TEST_F(WebDataServiceTest, WebIntents) {
wds_->AddWebIntentService(service);
wds_->GetWebIntentServices(ASCIIToUTF16("share"), &consumer);
- WebIntentsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
ASSERT_EQ(2U, consumer.services_.size());
if (consumer.services_[0].type != ASCIIToUTF16("image/*"))
@@ -669,7 +685,7 @@ TEST_F(WebDataServiceTest, WebIntents) {
wds_->RemoveWebIntentService(service);
wds_->GetWebIntentServices(ASCIIToUTF16("share"), &consumer);
- WebIntentsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
ASSERT_EQ(1U, consumer.services_.size());
service.type = ASCIIToUTF16("video/*");
@@ -694,7 +710,7 @@ TEST_F(WebDataServiceTest, WebIntentsForURL) {
wds_->GetWebIntentServicesForURL(
UTF8ToUTF16(service.service_url.spec()),
&consumer);
- WebIntentsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
ASSERT_EQ(2U, consumer.services_.size());
EXPECT_EQ(service, consumer.services_[0]);
service.action = ASCIIToUTF16("share1");
@@ -714,7 +730,7 @@ TEST_F(WebDataServiceTest, WebIntentsGetAll) {
wds_->AddWebIntentService(service);
wds_->GetAllWebIntentServices(&consumer);
- WebIntentsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
ASSERT_EQ(2U, consumer.services_.size());
if (consumer.services_[0].action != ASCIIToUTF16("edit"))
@@ -725,10 +741,56 @@ TEST_F(WebDataServiceTest, WebIntentsGetAll) {
EXPECT_EQ(service, consumer.services_[1]);
}
+TEST_F(WebDataServiceTest, WebIntentsDefaultsTest) {
+ WebIntentsDefaultsConsumer consumer;
+
+ wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share"), &consumer);
+ WaitUntilCalled();
+ EXPECT_EQ(0U, consumer.services_.size());
+
+ DefaultWebIntentService default_service;
+ default_service.action = ASCIIToUTF16("share");
+ default_service.type = ASCIIToUTF16("type");
+ default_service.user_date = 1;
+ default_service.suppression = 4;
+ default_service.service_url = "service_url";
+ wds_->AddDefaultWebIntentService(default_service);
+
+ default_service.action = ASCIIToUTF16("share2");
+ default_service.service_url = "service_url_2";
+ wds_->AddDefaultWebIntentService(default_service);
+
+ wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share"), &consumer);
+ WaitUntilCalled();
+ ASSERT_EQ(1U, consumer.services_.size());
+ EXPECT_EQ("service_url", consumer.services_[0].service_url);
+
+ wds_->GetAllDefaultWebIntentServices(&consumer);
+ WaitUntilCalled();
+ EXPECT_EQ(2U, consumer.services_.size());
+
+ default_service.action = ASCIIToUTF16("share");
+ wds_->RemoveDefaultWebIntentService(default_service);
+
+ wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share"), &consumer);
+ WaitUntilCalled();
+ EXPECT_EQ(0U, consumer.services_.size());
+
+ wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share2"), &consumer);
+ WaitUntilCalled();
+ ASSERT_EQ(1U, consumer.services_.size());
+ EXPECT_EQ("service_url_2", consumer.services_[0].service_url);
+
+ wds_->GetAllDefaultWebIntentServices(&consumer);
+ WaitUntilCalled();
+ ASSERT_EQ(1U, consumer.services_.size());
+ EXPECT_EQ("service_url_2", consumer.services_[0].service_url);
+}
+
TEST_F(WebDataServiceTest, DidDefaultSearchProviderChangeOnNewProfile) {
KeywordsConsumer consumer;
wds_->GetKeywords(&consumer);
- KeywordsConsumer::WaitUntilCalled();
+ WaitUntilCalled();
ASSERT_TRUE(consumer.load_succeeded);
EXPECT_FALSE(consumer.keywords_result.did_default_search_provider_change);
EXPECT_EQ(NULL, consumer.keywords_result.default_search_provider_backup);
« no previous file with comments | « chrome/browser/webdata/web_data_service.cc ('k') | chrome/browser/webdata/web_intents_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698