diff options
author | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-26 16:44:32 +0000 |
---|---|---|
committer | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-26 16:44:32 +0000 |
commit | 5b80ca6b47826af334bb10ff6f262bfae61b5f50 (patch) | |
tree | 963ff1308b4d83c467beca7d99d3c0f54bdd4fb2 /chrome | |
parent | 040dd4dc3d551d46eff338e590953485b2b6fd7f (diff) | |
download | chromium_src-5b80ca6b47826af334bb10ff6f262bfae61b5f50.zip chromium_src-5b80ca6b47826af334bb10ff6f262bfae61b5f50.tar.gz chromium_src-5b80ca6b47826af334bb10ff6f262bfae61b5f50.tar.bz2 |
[Web Intents] Add WebIntentPickerModel::GetInstalledServiceWithURL.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9812037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128928 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
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); |