diff options
3 files changed, 24 insertions, 1 deletions
diff --git a/chrome/browser/ui/intents/web_intent_picker_model.cc b/chrome/browser/ui/intents/web_intent_picker_model.cc index 349b2f6..f2f6b88c 100644 --- a/chrome/browser/ui/intents/web_intent_picker_model.cc +++ b/chrome/browser/ui/intents/web_intent_picker_model.cc @@ -52,6 +52,16 @@ const WebIntentPickerModel::InstalledService& return *installed_services_[index]; } +const WebIntentPickerModel::InstalledService* + WebIntentPickerModel::GetInstalledServiceWithURL(const GURL& url) const { + for (size_t i = 0; i < installed_services_.size(); ++i) { + InstalledService* service = installed_services_[i]; + if (service->url == url) + return service; + } + return NULL; +} + size_t WebIntentPickerModel::GetInstalledServiceCount() const { return installed_services_.size(); } diff --git a/chrome/browser/ui/intents/web_intent_picker_model.h b/chrome/browser/ui/intents/web_intent_picker_model.h index 148a682..57acb6d 100644 --- a/chrome/browser/ui/intents/web_intent_picker_model.h +++ b/chrome/browser/ui/intents/web_intent_picker_model.h @@ -96,9 +96,12 @@ class WebIntentPickerModel { // observer. void Clear(); - // Return the intent service installed service at |index|. + // Return the intent service installed at |index|. const InstalledService& GetInstalledServiceAt(size_t index) const; + // Return the intent service that uses |url| as its service url, or NULL. + const InstalledService* GetInstalledServiceWithURL(const GURL& url) const; + // Return the number of intent services in the picker. size_t GetInstalledServiceCount() const; diff --git a/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc b/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc index d738a94..e6afcf4 100644 --- a/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc +++ b/chrome/browser/ui/intents/web_intent_picker_model_unittest.cc @@ -94,6 +94,16 @@ TEST_F(WebIntentPickerModelTest, Clear) { EXPECT_EQ(0U, model_.GetInstalledServiceCount()); } +TEST_F(WebIntentPickerModelTest, GetInstalledServiceWithURL) { + EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2); + + model_.AddInstalledService(kTitle1, kUrl1, kWindowDisposition); + model_.AddInstalledService(kTitle2, kUrl2, kWindowDisposition); + + EXPECT_EQ(kTitle2, model_.GetInstalledServiceWithURL(kUrl2)->title); + EXPECT_EQ(NULL, model_.GetInstalledServiceWithURL(kUrl3)); +} + TEST_F(WebIntentPickerModelTest, UpdateFaviconAt) { EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2); EXPECT_CALL(observer_, OnFaviconChanged(&model_, 1U)).Times(1); |