| 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..da67897d82ce940892a58ef4ea9e6b9d07fe8e92 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,8 @@ 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.
|
| +// 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,
|
| @@ -175,6 +176,35 @@ class WebIntentsConsumer : public WebDataServiceConsumer {
|
| 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()->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();
|
| + }
|
| +
|
| + // Result data from completion callback.
|
| + std::vector<DefaultWebIntentService> services_;
|
| +};
|
| +
|
| // Simple consumer for Keywords data. Stores the result data and quits UI
|
| // message loop when callback is invoked.
|
| class KeywordsConsumer : public WebDataServiceConsumer {
|
| @@ -725,6 +755,52 @@ TEST_F(WebDataServiceTest, WebIntentsGetAll) {
|
| EXPECT_EQ(service, consumer.services_[1]);
|
| }
|
|
|
| +TEST_F(WebDataServiceTest, WebIntentsDefaultsTest) {
|
| + WebIntentsDefaultsConsumer consumer;
|
| +
|
| + wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share"), &consumer);
|
| + WebIntentsConsumer::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);
|
| + WebIntentsDefaultsConsumer::WaitUntilCalled();
|
| + EXPECT_EQ(1U, consumer.services_.size());
|
| + EXPECT_EQ("service_url", consumer.services_[0].service_url);
|
| +
|
| + wds_->GetAllDefaultWebIntentServices(&consumer);
|
| + WebIntentsDefaultsConsumer::WaitUntilCalled();
|
| + EXPECT_EQ(2U, consumer.services_.size());
|
| +
|
| + default_service.action = ASCIIToUTF16("share");
|
| + wds_->RemoveDefaultWebIntentService(default_service);
|
| +
|
| + wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share"), &consumer);
|
| + WebIntentsDefaultsConsumer::WaitUntilCalled();
|
| + EXPECT_EQ(0U, consumer.services_.size());
|
| +
|
| + wds_->GetDefaultWebIntentServicesForAction(ASCIIToUTF16("share2"), &consumer);
|
| + WebIntentsDefaultsConsumer::WaitUntilCalled();
|
| + EXPECT_EQ(1U, consumer.services_.size());
|
| + EXPECT_EQ("service_url_2", consumer.services_[0].service_url);
|
| +
|
| + wds_->GetAllDefaultWebIntentServices(&consumer);
|
| + WebIntentsDefaultsConsumer::WaitUntilCalled();
|
| + EXPECT_EQ(1U, consumer.services_.size());
|
| + EXPECT_EQ("service_url_2", consumer.services_[0].service_url);
|
| +}
|
| +
|
| TEST_F(WebDataServiceTest, DidDefaultSearchProviderChangeOnNewProfile) {
|
| KeywordsConsumer consumer;
|
| wds_->GetKeywords(&consumer);
|
|
|