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..800f3c4374b29ce97bef084ae8ba0855f941283b 100644 |
--- a/chrome/browser/extensions/bookmark_app_helper_unittest.cc |
+++ b/chrome/browser/extensions/bookmark_app_helper_unittest.cc |
@@ -23,7 +23,9 @@ |
namespace { |
const char kAppUrl[] = "http://www.chromium.org"; |
+const char kAlternativeAppUrl[] = "http://www.notchromium.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 +131,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 +181,34 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) { |
extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); |
} |
+TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppWithManifest) { |
+ WebApplicationInfo web_app_info; |
+ |
+ 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 +320,26 @@ TEST_F(BookmarkAppHelperExtensionServiceTest, GetWebApplicationInfo) { |
run_loop.Run(); |
} |
+TEST_F(BookmarkAppHelperTest, UpdateWebAppInfoFromManifest) { |
+ WebApplicationInfo web_app_info; |
+ web_app_info.title = base::UTF8ToUTF16(kAlternativeAppTitle); |
+ web_app_info.app_url = GURL(kAlternativeAppUrl); |
+ |
+ 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); |