summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-26 16:44:32 +0000
committerbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-26 16:44:32 +0000
commit5b80ca6b47826af334bb10ff6f262bfae61b5f50 (patch)
tree963ff1308b4d83c467beca7d99d3c0f54bdd4fb2 /chrome
parent040dd4dc3d551d46eff338e590953485b2b6fd7f (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model.cc10
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model.h5
-rw-r--r--chrome/browser/ui/intents/web_intent_picker_model_unittest.cc10
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);