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 |