| 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 |