| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/utf_string_conversions.h" | 5 #include "base/utf_string_conversions.h" |
| 6 #include "chrome/browser/ui/intents/web_intent_picker_model.h" | 6 #include "chrome/browser/ui/intents/web_intent_picker_model.h" |
| 7 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" | 7 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/gfx/image/image.h" | 10 #include "ui/gfx/image/image.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 MOCK_METHOD2(OnFaviconChanged, | 40 MOCK_METHOD2(OnFaviconChanged, |
| 41 void(WebIntentPickerModel* model, size_t index)); | 41 void(WebIntentPickerModel* model, size_t index)); |
| 42 MOCK_METHOD2(OnExtensionIconChanged, | 42 MOCK_METHOD2(OnExtensionIconChanged, |
| 43 void(WebIntentPickerModel* model, const string16& extension_id)); | 43 void(WebIntentPickerModel* model, const string16& extension_id)); |
| 44 MOCK_METHOD2(OnInlineDisposition, | 44 MOCK_METHOD2(OnInlineDisposition, |
| 45 void(const string16& title, const GURL& url)); | 45 void(const string16& title, const GURL& url)); |
| 46 }; | 46 }; |
| 47 | 47 |
| 48 class WebIntentPickerModelTest : public testing::Test { | 48 class WebIntentPickerModelTest : public testing::Test { |
| 49 public: | 49 public: |
| 50 typedef WebIntentPickerModel::SuggestedExtension SuggestedExtension; |
| 50 WebIntentPickerModelTest() {} | 51 WebIntentPickerModelTest() {} |
| 51 | 52 |
| 52 virtual void SetUp() { | 53 virtual void SetUp() { |
| 53 testing::Test::SetUp(); | 54 testing::Test::SetUp(); |
| 54 model_.set_observer(&observer_); | 55 model_.set_observer(&observer_); |
| 55 } | 56 } |
| 56 | 57 |
| 57 WebIntentPickerModel model_; | 58 WebIntentPickerModel model_; |
| 58 WebIntentPickerModelObserverMock observer_; | 59 WebIntentPickerModelObserverMock observer_; |
| 59 }; | 60 }; |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 model_.AddInstalledService(kTitle2, kUrl2, kWindowDisposition); | 141 model_.AddInstalledService(kTitle2, kUrl2, kWindowDisposition); |
| 141 gfx::Image image(gfx::test::CreateImage()); | 142 gfx::Image image(gfx::test::CreateImage()); |
| 142 model_.UpdateFaviconAt(1U, image); | 143 model_.UpdateFaviconAt(1U, image); |
| 143 | 144 |
| 144 EXPECT_FALSE(gfx::test::IsEqual( | 145 EXPECT_FALSE(gfx::test::IsEqual( |
| 145 image, model_.GetInstalledServiceAt(0).favicon)); | 146 image, model_.GetInstalledServiceAt(0).favicon)); |
| 146 EXPECT_TRUE(gfx::test::IsEqual( | 147 EXPECT_TRUE(gfx::test::IsEqual( |
| 147 image, model_.GetInstalledServiceAt(1).favicon)); | 148 image, model_.GetInstalledServiceAt(1).favicon)); |
| 148 } | 149 } |
| 149 | 150 |
| 150 TEST_F(WebIntentPickerModelTest, AddSuggestedExtension) { | 151 TEST_F(WebIntentPickerModelTest, AddSuggestedExtensions) { |
| 151 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2); | 152 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(1); |
| 152 | 153 |
| 153 EXPECT_EQ(0U, model_.GetSuggestedExtensionCount()); | 154 EXPECT_EQ(0U, model_.GetSuggestedExtensionCount()); |
| 154 | 155 |
| 155 model_.AddSuggestedExtension(kTitle1, kId1, 3.0); | 156 std::vector<WebIntentPickerModel::SuggestedExtension> suggestions; |
| 156 model_.AddSuggestedExtension(kTitle2, kId2, 4.3); | 157 suggestions.push_back( |
| 158 WebIntentPickerModel::SuggestedExtension(kTitle1, kId1, 3.0)); |
| 159 suggestions.push_back( |
| 160 WebIntentPickerModel::SuggestedExtension(kTitle2, kId2, 4.0)); |
| 161 model_.AddSuggestedExtensions(suggestions); |
| 157 | 162 |
| 158 EXPECT_EQ(2U, model_.GetSuggestedExtensionCount()); | 163 EXPECT_EQ(2U, model_.GetSuggestedExtensionCount()); |
| 159 EXPECT_EQ(kId1, model_.GetSuggestedExtensionAt(0).id); | 164 EXPECT_EQ(kId1, model_.GetSuggestedExtensionAt(0).id); |
| 160 EXPECT_EQ(kId2, model_.GetSuggestedExtensionAt(1).id); | 165 EXPECT_EQ(kId2, model_.GetSuggestedExtensionAt(1).id); |
| 161 | 166 |
| 162 EXPECT_EQ(string16(), model_.GetSuggestionsLinkText()); | 167 EXPECT_EQ(string16(), model_.GetSuggestionsLinkText()); |
| 163 } | 168 } |
| 164 | 169 |
| 165 TEST_F(WebIntentPickerModelTest, MaxSuggestedExtensions) { | 170 TEST_F(WebIntentPickerModelTest, MaxSuggestedExtensions) { |
| 166 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(6); | 171 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(1); |
| 167 | 172 |
| 168 model_.AddSuggestedExtension(kTitle1, kId1, 3.0); | 173 std::vector<SuggestedExtension> suggestions; |
| 169 model_.AddSuggestedExtension(kTitle2, kId2, 4.3); | 174 suggestions.push_back(SuggestedExtension(kTitle1, kId1, 3.0)); |
| 170 model_.AddSuggestedExtension(kTitle3, kId3, 4.4); | 175 suggestions.push_back(SuggestedExtension(kTitle2, kId2, 4.3)); |
| 171 model_.AddSuggestedExtension(kTitle4, kId4, 4.5); | 176 suggestions.push_back(SuggestedExtension(kTitle3, kId3, 4.4)); |
| 172 model_.AddSuggestedExtension(kTitle5, kId5, 4.6); | 177 suggestions.push_back(SuggestedExtension(kTitle4, kId4, 4.5)); |
| 173 model_.AddSuggestedExtension(kTitle6, kId6, 4.7); | 178 suggestions.push_back(SuggestedExtension(kTitle5, kId5, 4.6)); |
| 179 suggestions.push_back(SuggestedExtension(kTitle6, kId6, 4.7)); |
| 180 model_.AddSuggestedExtensions(suggestions); |
| 174 | 181 |
| 175 // Max to show currently set to 5. | 182 // Max to show currently set to 5. |
| 176 EXPECT_EQ(5U, model_.GetSuggestedExtensionCount()); | 183 EXPECT_EQ(5U, model_.GetSuggestedExtensionCount()); |
| 177 EXPECT_NE(string16(), model_.GetSuggestionsLinkText()); | 184 EXPECT_NE(string16(), model_.GetSuggestionsLinkText()); |
| 178 } | 185 } |
| 179 | 186 |
| 180 TEST_F(WebIntentPickerModelTest, RemoveSuggestedExtensionAt) { | |
| 181 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(4); | |
| 182 | |
| 183 model_.AddSuggestedExtension(kTitle1, kId1, 3.0); | |
| 184 model_.AddSuggestedExtension(kTitle2, kId2, 4.3); | |
| 185 model_.AddSuggestedExtension(kTitle3, kId3, 1.6); | |
| 186 | |
| 187 EXPECT_EQ(3U, model_.GetSuggestedExtensionCount()); | |
| 188 | |
| 189 model_.RemoveSuggestedExtensionAt(1); | |
| 190 | |
| 191 EXPECT_EQ(2U, model_.GetSuggestedExtensionCount()); | |
| 192 EXPECT_EQ(kId1, model_.GetSuggestedExtensionAt(0).id); | |
| 193 EXPECT_EQ(kId3, model_.GetSuggestedExtensionAt(1).id); | |
| 194 } | |
| 195 | |
| 196 TEST_F(WebIntentPickerModelTest, SetSuggestedExtensionIconWithId) { | 187 TEST_F(WebIntentPickerModelTest, SetSuggestedExtensionIconWithId) { |
| 197 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2); | 188 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(1); |
| 198 EXPECT_CALL(observer_, OnExtensionIconChanged(&model_, kId2)).Times(1); | 189 EXPECT_CALL(observer_, OnExtensionIconChanged(&model_, kId2)).Times(1); |
| 199 | 190 |
| 200 model_.AddSuggestedExtension(kTitle1, kId1, 3.0); | 191 std::vector<SuggestedExtension> suggestions; |
| 201 model_.AddSuggestedExtension(kTitle2, kId2, 4.3); | 192 suggestions.push_back(SuggestedExtension(kTitle1, kId1, 3.0)); |
| 193 suggestions.push_back(SuggestedExtension(kTitle2, kId2, 4.3)); |
| 194 model_.AddSuggestedExtensions(suggestions); |
| 202 | 195 |
| 203 gfx::Image image(gfx::test::CreateImage()); | 196 gfx::Image image(gfx::test::CreateImage()); |
| 204 model_.SetSuggestedExtensionIconWithId(kId2, image); | 197 model_.SetSuggestedExtensionIconWithId(kId2, image); |
| 205 | 198 |
| 206 EXPECT_FALSE(gfx::test::IsEqual( | 199 EXPECT_FALSE(gfx::test::IsEqual( |
| 207 image, model_.GetSuggestedExtensionAt(0).icon)); | 200 image, model_.GetSuggestedExtensionAt(0).icon)); |
| 208 EXPECT_TRUE(gfx::test::IsEqual( | 201 EXPECT_TRUE(gfx::test::IsEqual( |
| 209 image, model_.GetSuggestedExtensionAt(1).icon)); | 202 image, model_.GetSuggestedExtensionAt(1).icon)); |
| 210 } | 203 } |
| 211 | 204 |
| 212 TEST_F(WebIntentPickerModelTest, SetInlineDisposition) { | 205 TEST_F(WebIntentPickerModelTest, SetInlineDisposition) { |
| 213 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(3); | 206 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(3); |
| 214 EXPECT_CALL(observer_, OnInlineDisposition(kTitle2, testing::_)).Times(1); | 207 EXPECT_CALL(observer_, OnInlineDisposition(kTitle2, testing::_)).Times(1); |
| 215 | 208 |
| 216 EXPECT_FALSE(model_.IsInlineDisposition()); | 209 EXPECT_FALSE(model_.IsInlineDisposition()); |
| 217 EXPECT_EQ(GURL::EmptyGURL(), model_.inline_disposition_url()); | 210 EXPECT_EQ(GURL::EmptyGURL(), model_.inline_disposition_url()); |
| 218 | 211 |
| 219 model_.AddInstalledService(kTitle1, kUrl1, kWindowDisposition); | 212 model_.AddInstalledService(kTitle1, kUrl1, kWindowDisposition); |
| 220 model_.AddInstalledService(kTitle2, kUrl2, kInlineDisposition); | 213 model_.AddInstalledService(kTitle2, kUrl2, kInlineDisposition); |
| 221 model_.SetInlineDisposition(kUrl2); | 214 model_.SetInlineDisposition(kUrl2); |
| 222 | 215 |
| 223 EXPECT_TRUE(model_.IsInlineDisposition()); | 216 EXPECT_TRUE(model_.IsInlineDisposition()); |
| 224 EXPECT_EQ(kUrl2, model_.inline_disposition_url()); | 217 EXPECT_EQ(kUrl2, model_.inline_disposition_url()); |
| 225 | 218 |
| 226 model_.Clear(); | 219 model_.Clear(); |
| 227 | 220 |
| 228 EXPECT_FALSE(model_.IsInlineDisposition()); | 221 EXPECT_FALSE(model_.IsInlineDisposition()); |
| 229 EXPECT_EQ(GURL::EmptyGURL(), model_.inline_disposition_url()); | 222 EXPECT_EQ(GURL::EmptyGURL(), model_.inline_disposition_url()); |
| 230 } | 223 } |
| OLD | NEW |