| 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_unittest.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
| 9 #include "chrome/browser/extensions/extension_service_test_base.h" |
| 9 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 10 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| 10 #include "chrome/test/base/testing_profile.h" | 11 #include "chrome/test/base/testing_profile.h" |
| 11 #include "content/public/browser/render_process_host.h" | 12 #include "content/public/browser/render_process_host.h" |
| 12 #include "content/public/browser/web_contents.h" | 13 #include "content/public/browser/web_contents.h" |
| 13 #include "content/public/test/web_contents_tester.h" | 14 #include "content/public/test/web_contents_tester.h" |
| 14 #include "extensions/browser/extension_registry.h" | 15 #include "extensions/browser/extension_registry.h" |
| 15 #include "extensions/common/constants.h" | 16 #include "extensions/common/constants.h" |
| 16 #include "extensions/common/extension_icon_set.h" | 17 #include "extensions/common/extension_icon_set.h" |
| 17 #include "extensions/common/manifest_handlers/icons_handler.h" | 18 #include "extensions/common/manifest_handlers/icons_handler.h" |
| 18 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 35 | 36 |
| 36 class BookmarkAppHelperTest : public testing::Test { | 37 class BookmarkAppHelperTest : public testing::Test { |
| 37 public: | 38 public: |
| 38 BookmarkAppHelperTest() {} | 39 BookmarkAppHelperTest() {} |
| 39 virtual ~BookmarkAppHelperTest() {} | 40 virtual ~BookmarkAppHelperTest() {} |
| 40 | 41 |
| 41 private: | 42 private: |
| 42 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); | 43 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); |
| 43 }; | 44 }; |
| 44 | 45 |
| 45 class BookmarkAppHelperExtensionServiceTest : public ExtensionServiceTestBase { | 46 class BookmarkAppHelperExtensionServiceTest |
| 47 : public extensions::ExtensionServiceTestBase { |
| 46 public: | 48 public: |
| 47 BookmarkAppHelperExtensionServiceTest() {} | 49 BookmarkAppHelperExtensionServiceTest() {} |
| 48 virtual ~BookmarkAppHelperExtensionServiceTest() {} | 50 virtual ~BookmarkAppHelperExtensionServiceTest() {} |
| 49 | 51 |
| 50 virtual void SetUp() OVERRIDE { | 52 virtual void SetUp() OVERRIDE { |
| 51 ExtensionServiceTestBase::SetUp(); | 53 extensions::ExtensionServiceTestBase::SetUp(); |
| 52 InitializeEmptyExtensionService(); | 54 InitializeEmptyExtensionService(); |
| 53 service_->Init(); | 55 service_->Init(); |
| 54 EXPECT_EQ(0u, service_->extensions()->size()); | 56 EXPECT_EQ(0u, service_->extensions()->size()); |
| 55 } | 57 } |
| 56 | 58 |
| 57 virtual void TearDown() OVERRIDE { | 59 virtual void TearDown() OVERRIDE { |
| 58 ExtensionServiceTestBase::TearDown(); | 60 ExtensionServiceTestBase::TearDown(); |
| 59 for (content::RenderProcessHost::iterator i( | 61 for (content::RenderProcessHost::iterator i( |
| 60 content::RenderProcessHost::AllHostsIterator()); | 62 content::RenderProcessHost::AllHostsIterator()); |
| 61 !i.IsAtEnd(); | 63 !i.IsAtEnd(); |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 EXPECT_FALSE( | 217 EXPECT_FALSE( |
| 216 IconsInfo::GetIconResource( | 218 IconsInfo::GetIconResource( |
| 217 extension, kIconSizeMedium, ExtensionIconSet::MATCH_EXACTLY).empty()); | 219 extension, kIconSizeMedium, ExtensionIconSet::MATCH_EXACTLY).empty()); |
| 218 EXPECT_FALSE( | 220 EXPECT_FALSE( |
| 219 IconsInfo::GetIconResource(extension, | 221 IconsInfo::GetIconResource(extension, |
| 220 kIconSizeMedium * 2, | 222 kIconSizeMedium * 2, |
| 221 ExtensionIconSet::MATCH_EXACTLY).empty()); | 223 ExtensionIconSet::MATCH_EXACTLY).empty()); |
| 222 } | 224 } |
| 223 | 225 |
| 224 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) { | 226 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) { |
| 225 EXPECT_EQ(0u, registry_->enabled_extensions().size()); | 227 EXPECT_EQ(0u, registry()->enabled_extensions().size()); |
| 226 WebApplicationInfo web_app_info; | 228 WebApplicationInfo web_app_info; |
| 227 web_app_info.app_url = GURL(kAppUrl); | 229 web_app_info.app_url = GURL(kAppUrl); |
| 228 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 230 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
| 229 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 231 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
| 230 web_app_info.icons.push_back( | 232 web_app_info.icons.push_back( |
| 231 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); | 233 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); |
| 232 | 234 |
| 233 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 235 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
| 234 base::RunLoop().RunUntilIdle(); | 236 base::RunLoop().RunUntilIdle(); |
| 235 | 237 |
| 236 { | 238 { |
| 237 EXPECT_EQ(1u, registry_->enabled_extensions().size()); | 239 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
| 238 const Extension* extension = service_->extensions()->begin()->get(); | 240 const Extension* extension = service_->extensions()->begin()->get(); |
| 239 EXPECT_TRUE(extension->from_bookmark()); | 241 EXPECT_TRUE(extension->from_bookmark()); |
| 240 EXPECT_EQ(kAppTitle, extension->name()); | 242 EXPECT_EQ(kAppTitle, extension->name()); |
| 241 EXPECT_EQ(kAppDescription, extension->description()); | 243 EXPECT_EQ(kAppDescription, extension->description()); |
| 242 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 244 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
| 243 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 245 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
| 244 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 246 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
| 245 .empty()); | 247 .empty()); |
| 246 } | 248 } |
| 247 | 249 |
| 248 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); | 250 web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); |
| 249 web_app_info.icons[0] = CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED); | 251 web_app_info.icons[0] = CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED); |
| 250 | 252 |
| 251 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 253 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
| 252 base::RunLoop().RunUntilIdle(); | 254 base::RunLoop().RunUntilIdle(); |
| 253 | 255 |
| 254 { | 256 { |
| 255 EXPECT_EQ(1u, registry_->enabled_extensions().size()); | 257 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
| 256 const Extension* extension = service_->extensions()->begin()->get(); | 258 const Extension* extension = service_->extensions()->begin()->get(); |
| 257 EXPECT_TRUE(extension->from_bookmark()); | 259 EXPECT_TRUE(extension->from_bookmark()); |
| 258 EXPECT_EQ(kAlternativeAppTitle, extension->name()); | 260 EXPECT_EQ(kAlternativeAppTitle, extension->name()); |
| 259 EXPECT_EQ(kAppDescription, extension->description()); | 261 EXPECT_EQ(kAppDescription, extension->description()); |
| 260 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); | 262 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
| 261 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( | 263 EXPECT_TRUE(extensions::IconsInfo::GetIconResource( |
| 262 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) | 264 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY) |
| 263 .empty()); | 265 .empty()); |
| 264 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( | 266 EXPECT_FALSE(extensions::IconsInfo::GetIconResource( |
| 265 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) | 267 extension, kIconSizeLarge, ExtensionIconSet::MATCH_EXACTLY) |
| 266 .empty()); | 268 .empty()); |
| 267 } | 269 } |
| 268 } | 270 } |
| 269 | 271 |
| 270 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { | 272 TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { |
| 271 WebApplicationInfo web_app_info; | 273 WebApplicationInfo web_app_info; |
| 272 web_app_info.app_url = GURL(kAppUrl); | 274 web_app_info.app_url = GURL(kAppUrl); |
| 273 web_app_info.title = base::UTF8ToUTF16(kAppTitle); | 275 web_app_info.title = base::UTF8ToUTF16(kAppTitle); |
| 274 web_app_info.description = base::UTF8ToUTF16(kAppDescription); | 276 web_app_info.description = base::UTF8ToUTF16(kAppDescription); |
| 275 | 277 |
| 276 web_app_info.icons.push_back( | 278 web_app_info.icons.push_back( |
| 277 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); | 279 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); |
| 278 web_app_info.icons.push_back( | 280 web_app_info.icons.push_back( |
| 279 CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED)); | 281 CreateIconInfoWithBitmap(kIconSizeLarge, SK_ColorRED)); |
| 280 | 282 |
| 281 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); | 283 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); |
| 282 base::RunLoop().RunUntilIdle(); | 284 base::RunLoop().RunUntilIdle(); |
| 283 | 285 |
| 284 EXPECT_EQ(1u, registry_->enabled_extensions().size()); | 286 EXPECT_EQ(1u, registry()->enabled_extensions().size()); |
| 285 base::RunLoop run_loop; | 287 base::RunLoop run_loop; |
| 286 extensions::GetWebApplicationInfoFromApp( | 288 extensions::GetWebApplicationInfoFromApp( |
| 287 profile_.get(), | 289 profile_.get(), |
| 288 service_->extensions()->begin()->get(), | 290 service_->extensions()->begin()->get(), |
| 289 base::Bind( | 291 base::Bind( |
| 290 &ValidateWebApplicationInfo, run_loop.QuitClosure(), web_app_info)); | 292 &ValidateWebApplicationInfo, run_loop.QuitClosure(), web_app_info)); |
| 291 run_loop.Run(); | 293 run_loop.Run(); |
| 292 } | 294 } |
| 293 #endif | 295 #endif |
| 294 | 296 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 } | 334 } |
| 333 | 335 |
| 334 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { | 336 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { |
| 335 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); | 337 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); |
| 336 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); | 338 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); |
| 337 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); | 339 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); |
| 338 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); | 340 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); |
| 339 } | 341 } |
| 340 | 342 |
| 341 } // namespace extensions | 343 } // namespace extensions |
| OLD | NEW |