Chromium Code Reviews| Index: chrome/browser/extensions/bookmark_app_helper_unittest.cc |
| diff --git a/chrome/browser/extensions/bookmark_app_helper_unittest.cc b/chrome/browser/extensions/bookmark_app_helper_unittest.cc |
| index c042129d794300f1063fd23dd3a1bda67709cb0e..6803d37016fb3c81cda91926e7d4142e46699fff 100644 |
| --- a/chrome/browser/extensions/bookmark_app_helper_unittest.cc |
| +++ b/chrome/browser/extensions/bookmark_app_helper_unittest.cc |
| @@ -24,6 +24,7 @@ namespace { |
| const char kAppUrl[] = "http://www.chromium.org"; |
| const char kAppTitle[] = "Test title"; |
| +const char kAppShortName[] = "Test short name"; |
| const char kAlternativeAppTitle[] = "Different test title"; |
| const char kAppDescription[] = "Test description"; |
| @@ -129,6 +130,10 @@ class TestBookmarkAppHelper : public BookmarkAppHelper { |
| extension_ = extension; |
| } |
| + void CompleteGetManifest(const content::Manifest& manifest) { |
| + BookmarkAppHelper::OnDidGetManifest(manifest); |
| + } |
| + |
| void CompleteIconDownload( |
| bool success, |
| const std::map<GURL, std::vector<SkBitmap> >& bitmaps) { |
| @@ -175,6 +180,34 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) { |
| extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
| } |
| +TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppWithManifest) { |
| + WebApplicationInfo web_app_info; |
|
calamity
2014/10/23 02:46:24
Maybe also supply a url and name here to ensure th
benwells
2014/10/23 03:50:09
OK, I did this in the UpdateWebAppInfoFromManifest
|
| + |
| + scoped_ptr<content::WebContents> contents( |
| + content::WebContentsTester::CreateTestWebContents(profile_.get(), NULL)); |
| + TestBookmarkAppHelper helper(service_, web_app_info, contents.get()); |
| + helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete, |
| + base::Unretained(&helper))); |
| + |
| + content::Manifest manifest; |
| + manifest.start_url = GURL(kAppUrl); |
| + manifest.name = base::NullableString16(base::UTF8ToUTF16(kAppTitle), false); |
| + helper.CompleteGetManifest(manifest); |
| + |
| + std::map<GURL, std::vector<SkBitmap> > icon_map; |
| + helper.CompleteIconDownload(true, icon_map); |
| + |
| + base::RunLoop().RunUntilIdle(); |
| + EXPECT_TRUE(helper.extension()); |
| + const Extension* extension = |
| + service_->GetInstalledExtension(helper.extension()->id()); |
| + EXPECT_TRUE(extension); |
| + EXPECT_EQ(1u, service_->extensions()->size()); |
| + EXPECT_TRUE(extension->from_bookmark()); |
| + EXPECT_EQ(kAppTitle, extension->name()); |
| + EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); |
| +} |
| + |
| TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) { |
| WebApplicationInfo web_app_info; |
| web_app_info.app_url = GURL(kAppUrl); |
| @@ -286,6 +319,23 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { |
| run_loop.Run(); |
| } |
| +TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { |
| + WebApplicationInfo web_app_info; |
| + content::Manifest manifest; |
| + manifest.start_url = GURL(kAppUrl); |
| + manifest.short_name = base::NullableString16(base::UTF8ToUTF16(kAppShortName), |
| + false); |
| + |
| + BookmarkAppHelper::UpdateWebAppInfoFromManifest(manifest, &web_app_info); |
| + EXPECT_EQ(base::UTF8ToUTF16(kAppShortName), web_app_info.title); |
| + EXPECT_EQ(GURL(kAppUrl), web_app_info.app_url); |
| + |
| + // Test that |manifest.name| takes priority over |manifest.short_name| |
| + manifest.name = base::NullableString16(base::UTF8ToUTF16(kAppTitle), false); |
| + BookmarkAppHelper::UpdateWebAppInfoFromManifest(manifest, &web_app_info); |
| + EXPECT_EQ(base::UTF8ToUTF16(kAppTitle), web_app_info.title); |
| +} |
| + |
| TEST_F(BookmarkAppHelperTest, ConstrainBitmapsToSizes) { |
| std::set<int> desired_sizes; |
| desired_sizes.insert(16); |