OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/extensions/bookmark_app_helper.h" | 5 #include "chrome/browser/extensions/bookmark_app_helper.h" |
6 | 6 |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "chrome/browser/extensions/extension_service.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
9 #include "chrome/browser/extensions/extension_service_test_base.h" | 9 #include "chrome/browser/extensions/extension_service_test_base.h" |
10 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 10 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 class BookmarkAppHelperExtensionServiceTest | 46 class BookmarkAppHelperExtensionServiceTest |
47 : public extensions::ExtensionServiceTestBase { | 47 : public extensions::ExtensionServiceTestBase { |
48 public: | 48 public: |
49 BookmarkAppHelperExtensionServiceTest() {} | 49 BookmarkAppHelperExtensionServiceTest() {} |
50 ~BookmarkAppHelperExtensionServiceTest() override {} | 50 ~BookmarkAppHelperExtensionServiceTest() override {} |
51 | 51 |
52 void SetUp() override { | 52 void SetUp() override { |
53 extensions::ExtensionServiceTestBase::SetUp(); | 53 extensions::ExtensionServiceTestBase::SetUp(); |
54 InitializeEmptyExtensionService(); | 54 InitializeEmptyExtensionService(); |
55 service_->Init(); | 55 service_->Init(); |
56 EXPECT_EQ(0u, service_->extensions()->size()); | 56 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
57 } | 57 } |
58 | 58 |
59 void TearDown() override { | 59 void TearDown() override { |
60 ExtensionServiceTestBase::TearDown(); | 60 ExtensionServiceTestBase::TearDown(); |
61 for (content::RenderProcessHost::iterator i( | 61 for (content::RenderProcessHost::iterator i( |
62 content::RenderProcessHost::AllHostsIterator()); | 62 content::RenderProcessHost::AllHostsIterator()); |
63 !i.IsAtEnd(); | 63 !i.IsAtEnd(); |
64 i.Advance()) { | 64 i.Advance()) { |
65 content::RenderProcessHost* host = i.GetCurrentValue(); | 65 content::RenderProcessHost* host = i.GetCurrentValue(); |
66 if (Profile::FromBrowserContext(host->GetBrowserContext()) == | 66 if (Profile::FromBrowserContext(host->GetBrowserContext()) == |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 std::map<GURL, std::vector<SkBitmap> > icon_map; | 164 std::map<GURL, std::vector<SkBitmap> > icon_map; |
165 icon_map[GURL(kAppUrl)].push_back( | 165 icon_map[GURL(kAppUrl)].push_back( |
166 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED)); | 166 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED)); |
167 helper.CompleteIconDownload(true, icon_map); | 167 helper.CompleteIconDownload(true, icon_map); |
168 | 168 |
169 base::RunLoop().RunUntilIdle(); | 169 base::RunLoop().RunUntilIdle(); |
170 EXPECT_TRUE(helper.extension()); | 170 EXPECT_TRUE(helper.extension()); |
171 const Extension* extension = | 171 const Extension* extension = |
172 service_->GetInstalledExtension(helper.extension()->id()); | 172 service_->GetInstalledExtension(helper.extension()->id()); |
173 EXPECT_TRUE(extension); | 173 EXPECT_TRUE(extension); |
174 EXPECT_EQ(1u, service_->extensions()->size()); | 174 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
175 EXPECT_TRUE(extension->from_bookmark()); | 175 EXPECT_TRUE(extension->from_bookmark()); |
176 EXPECT_EQ(kAppTitle, extension->name()); | 176 EXPECT_EQ(kAppTitle, extension->name()); |
177 EXPECT_EQ(kAppDescription, extension->description()); | 177 EXPECT_EQ(kAppDescription, extension->description()); |
178 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 178 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
179 EXPECT_FALSE( | 179 EXPECT_FALSE( |
180 IconsInfo::GetIconResource( | 180 IconsInfo::GetIconResource( |
181 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); | 181 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
182 } | 182 } |
183 | 183 |
184 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppWithManifest) { | 184 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppWithManifest) { |
(...skipping 11 matching lines...) Expand all Loading... |
196 helper.CompleteGetManifest(manifest); | 196 helper.CompleteGetManifest(manifest); |
197 | 197 |
198 std::map<GURL, std::vector<SkBitmap> > icon_map; | 198 std::map<GURL, std::vector<SkBitmap> > icon_map; |
199 helper.CompleteIconDownload(true, icon_map); | 199 helper.CompleteIconDownload(true, icon_map); |
200 | 200 |
201 base::RunLoop().RunUntilIdle(); | 201 base::RunLoop().RunUntilIdle(); |
202 EXPECT_TRUE(helper.extension()); | 202 EXPECT_TRUE(helper.extension()); |
203 const Extension* extension = | 203 const Extension* extension = |
204 service_->GetInstalledExtension(helper.extension()->id()); | 204 service_->GetInstalledExtension(helper.extension()->id()); |
205 EXPECT_TRUE(extension); | 205 EXPECT_TRUE(extension); |
206 EXPECT_EQ(1u, service_->extensions()->size()); | 206 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
207 EXPECT_TRUE(extension->from_bookmark()); | 207 EXPECT_TRUE(extension->from_bookmark()); |
208 EXPECT_EQ(kAppTitle, extension->name()); | 208 EXPECT_EQ(kAppTitle, extension->name()); |
209 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 209 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
210 } | 210 } |
211 | 211 |
212 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) { | 212 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) { |
213 WebApplicationInfo web_app_info; | 213 WebApplicationInfo web_app_info; |
214 web_app_info.app_url = GURL(kAppUrl); | 214 web_app_info.app_url = GURL(kAppUrl); |
215 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 215 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
216 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 216 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
217 web_app_info.icons.push_back( | 217 web_app_info.icons.push_back( |
218 CreateIconInfoWithBitmap(kIconSizeTiny, SK_ColorRED)); | 218 CreateIconInfoWithBitmap(kIconSizeTiny, SK_ColorRED)); |
219 | 219 |
220 TestBookmarkAppHelper helper(service_, web_app_info, NULL); | 220 TestBookmarkAppHelper helper(service_, web_app_info, NULL); |
221 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete, | 221 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete, |
222 base::Unretained(&helper))); | 222 base::Unretained(&helper))); |
223 | 223 |
224 base::RunLoop().RunUntilIdle(); | 224 base::RunLoop().RunUntilIdle(); |
225 EXPECT_TRUE(helper.extension()); | 225 EXPECT_TRUE(helper.extension()); |
226 const Extension* extension = | 226 const Extension* extension = |
227 service_->GetInstalledExtension(helper.extension()->id()); | 227 service_->GetInstalledExtension(helper.extension()->id()); |
228 EXPECT_TRUE(extension); | 228 EXPECT_TRUE(extension); |
229 EXPECT_EQ(1u, service_->extensions()->size()); | 229 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
230 EXPECT_TRUE(extension->from_bookmark()); | 230 EXPECT_TRUE(extension->from_bookmark()); |
231 EXPECT_EQ(kAppTitle, extension->name()); | 231 EXPECT_EQ(kAppTitle, extension->name()); |
232 EXPECT_EQ(kAppDescription, extension->description()); | 232 EXPECT_EQ(kAppDescription, extension->description()); |
233 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 233 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
234 EXPECT_FALSE( | 234 EXPECT_FALSE( |
235 IconsInfo::GetIconResource( | 235 IconsInfo::GetIconResource( |
236 extension, kIconSizeTiny, ExtensionIconSet::MATCH_EXACTLY).empty()); | 236 extension, kIconSizeTiny, ExtensionIconSet::MATCH_EXACTLY).empty()); |
237 EXPECT_FALSE( | 237 EXPECT_FALSE( |
238 IconsInfo::GetIconResource( | 238 IconsInfo::GetIconResource( |
239 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); | 239 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
(...skipping 17 matching lines...) Expand all Loading... |
257 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 257 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
258 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 258 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
259 web_app_info.icons.push_back( | 259 web_app_info.icons.push_back( |
260 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); | 260 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); |
261 | 261 |
262 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 262 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
263 base::RunLoop().RunUntilIdle(); | 263 base::RunLoop().RunUntilIdle(); |
264 | 264 |
265 { | 265 { |
266 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 266 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
267 const Extension* extension = service_->extensions()->begin()->get(); | 267 const Extension* extension = |
| 268 registry()->enabled_extensions().begin()->get(); |
268 EXPECT_TRUE(extension->from_bookmark()); | 269 EXPECT_TRUE(extension->from_bookmark()); |
269 EXPECT_EQ(kAppTitle, extension->name()); | 270 EXPECT_EQ(kAppTitle, extension->name()); |
270 EXPECT_EQ(kAppDescription, extension->description()); | 271 EXPECT_EQ(kAppDescription, extension->description()); |
271 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 272 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
272 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 273 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
273 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 274 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
274 .empty()); | 275 .empty()); |
275 } | 276 } |
276 | 277 |
277 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); | 278 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); |
278 web_app_info.icons[0] = CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED); | 279 web_app_info.icons[0] = CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED); |
279 | 280 |
280 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 281 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
281 base::RunLoop().RunUntilIdle(); | 282 base::RunLoop().RunUntilIdle(); |
282 | 283 |
283 { | 284 { |
284 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 285 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
285 const Extension* extension = service_->extensions()->begin()->get(); | 286 const Extension* extension = |
| 287 registry()->enabled_extensions().begin()->get(); |
286 EXPECT_TRUE(extension->from_bookmark()); | 288 EXPECT_TRUE(extension->from_bookmark()); |
287 EXPECT_EQ(kAlternativeAppTitle, extension->name()); | 289 EXPECT_EQ(kAlternativeAppTitle, extension->name()); |
288 EXPECT_EQ(kAppDescription, extension->description()); | 290 EXPECT_EQ(kAppDescription, extension->description()); |
289 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 291 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
290 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( | 292 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( |
291 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 293 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
292 .empty()); | 294 .empty()); |
293 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 295 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
294 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) | 296 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) |
295 .empty()); | 297 .empty()); |
(...skipping 10 matching lines...) Expand all Loading... |
306 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); | 308 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); |
307 web_app_info.icons.push_back( | 309 web_app_info.icons.push_back( |
308 CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED)); | 310 CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED)); |
309 | 311 |
310 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 312 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
311 base::RunLoop().RunUntilIdle(); | 313 base::RunLoop().RunUntilIdle(); |
312 | 314 |
313 EXPECT_EQ(1u, registry()->enabled_extensions().size()); | 315 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
314 base::RunLoop run_loop; | 316 base::RunLoop run_loop; |
315 extensions::GetWebApplicationInfoFromApp( | 317 extensions::GetWebApplicationInfoFromApp( |
316 profile_.get(), | 318 profile_.get(), registry()->enabled_extensions().begin()->get(), |
317 service_->extensions()->begin()->get(), | 319 base::Bind(&ValidateWebApplicationInfo, run_loop.QuitClosure(), |
318 base::Bind( | 320 web_app_info)); |
319 &ValidateWebApplicationInfo, run_loop.QuitClosure(), web_app_info)); | |
320 run_loop.Run(); | 321 run_loop.Run(); |
321 } | 322 } |
322 | 323 |
323 TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { | 324 TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { |
324 WebApplicationInfo web_app_info; | 325 WebApplicationInfo web_app_info; |
325 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); | 326 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); |
326 web_app_info.app_url = GURL(kAlternativeAppUrl); | 327 web_app_info.app_url = GURL(kAlternativeAppUrl); |
327 | 328 |
328 content::Manifest manifest; | 329 content::Manifest manifest; |
329 manifest.start_url = GURL(kAppUrl); | 330 manifest.start_url = GURL(kAppUrl); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 } | 381 } |
381 | 382 |
382 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { | 383 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { |
383 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); | 384 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); |
384 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); | 385 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); |
385 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); | 386 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); |
386 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); | 387 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); |
387 } | 388 } |
388 | 389 |
389 } // namespace extensions | 390 } // namespace extensions |
OLD | NEW |