Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: trunk/src/chrome/browser/extensions/bookmark_app_helper_unittest.cc

Issue 313633003: Revert 274549 "Add generateAppForLink function in chrome.management" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_unittest.h"
9 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" 9 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
10 #include "chrome/test/base/testing_profile.h" 10 #include "chrome/test/base/testing_profile.h"
11 #include "content/public/browser/render_process_host.h"
12 #include "content/public/browser/web_contents.h"
13 #include "content/public/test/web_contents_tester.h"
14 #include "extensions/browser/extension_registry.h" 11 #include "extensions/browser/extension_registry.h"
15 #include "extensions/common/constants.h" 12 #include "extensions/common/constants.h"
16 #include "extensions/common/extension_icon_set.h" 13 #include "extensions/common/extension_icon_set.h"
17 #include "extensions/common/manifest_handlers/icons_handler.h" 14 #include "extensions/common/manifest_handlers/icons_handler.h"
18 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
19 #include "third_party/skia/include/core/SkBitmap.h" 16 #include "third_party/skia/include/core/SkBitmap.h"
20 #include "ui/gfx/skia_util.h" 17 #include "ui/gfx/skia_util.h"
21 18
22 namespace { 19 namespace {
23 20
24 #if !defined(OS_ANDROID) 21 #if !defined(OS_ANDROID)
25 const char kAppUrl[] = "http://www.chromium.org"; 22 const char kAppUrl[] = "http://www.chromium.org";
26 const char kAppTitle[] = "Test title"; 23 const char kAppTitle[] = "Test title";
27 const char kAlternativeAppTitle[] = "Different test title"; 24 const char kAlternativeAppTitle[] = "Different test title";
28 const char kAppDescription[] = "Test description"; 25 const char kAppDescription[] = "Test description";
29 26
30 const int kIconSizeTiny = extension_misc::EXTENSION_ICON_BITTY;
31 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL; 27 const int kIconSizeSmall = extension_misc::EXTENSION_ICON_SMALL;
32 const int kIconSizeMedium = extension_misc::EXTENSION_ICON_MEDIUM;
33 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE; 28 const int kIconSizeLarge = extension_misc::EXTENSION_ICON_LARGE;
34 #endif 29 #endif
35 30
36 class BookmarkAppHelperTest : public testing::Test { 31 class BookmarkAppHelperTest : public testing::Test {
37 public: 32 public:
38 BookmarkAppHelperTest() {} 33 BookmarkAppHelperTest() {}
39 virtual ~BookmarkAppHelperTest() {} 34 virtual ~BookmarkAppHelperTest() {}
40 35
41 private: 36 private:
42 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest); 37 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperTest);
43 }; 38 };
44 39
45 class BookmarkAppHelperExtensionServiceTest : public ExtensionServiceTestBase { 40 class BookmarkAppHelperExtensionServiceTest : public ExtensionServiceTestBase {
46 public: 41 public:
47 BookmarkAppHelperExtensionServiceTest() {} 42 BookmarkAppHelperExtensionServiceTest() {}
48 virtual ~BookmarkAppHelperExtensionServiceTest() {} 43 virtual ~BookmarkAppHelperExtensionServiceTest() {}
49 44
50 virtual void SetUp() OVERRIDE { 45 virtual void SetUp() OVERRIDE {
51 ExtensionServiceTestBase::SetUp(); 46 ExtensionServiceTestBase::SetUp();
52 InitializeEmptyExtensionService(); 47 InitializeEmptyExtensionService();
53 service_->Init(); 48 service_->Init();
54 EXPECT_EQ(0u, service_->extensions()->size()); 49 EXPECT_EQ(0u, service_->extensions()->size());
55 } 50 }
56 51
57 virtual void TearDown() OVERRIDE {
58 ExtensionServiceTestBase::TearDown();
59 for (content::RenderProcessHost::iterator i(
60 content::RenderProcessHost::AllHostsIterator());
61 !i.IsAtEnd();
62 i.Advance()) {
63 content::RenderProcessHost* host = i.GetCurrentValue();
64 if (Profile::FromBrowserContext(host->GetBrowserContext()) ==
65 profile_.get())
66 delete host;
67 }
68 }
69
70 private: 52 private:
71 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest); 53 DISALLOW_COPY_AND_ASSIGN(BookmarkAppHelperExtensionServiceTest);
72 }; 54 };
73 55
74 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) { 56 SkBitmap CreateSquareBitmapWithColor(int size, SkColor color) {
75 SkBitmap bitmap; 57 SkBitmap bitmap;
76 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size, size); 58 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size, size);
77 bitmap.allocPixels(); 59 bitmap.allocPixels();
78 bitmap.eraseColor(color); 60 bitmap.eraseColor(color);
79 return bitmap; 61 return bitmap;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 }; 129 };
148 130
149 // Android doesn't support extensions. 131 // Android doesn't support extensions.
150 #if !defined(OS_ANDROID) 132 #if !defined(OS_ANDROID)
151 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) { 133 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkApp) {
152 WebApplicationInfo web_app_info; 134 WebApplicationInfo web_app_info;
153 web_app_info.app_url = GURL(kAppUrl); 135 web_app_info.app_url = GURL(kAppUrl);
154 web_app_info.title = base::UTF8ToUTF16(kAppTitle); 136 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
155 web_app_info.description = base::UTF8ToUTF16(kAppDescription); 137 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
156 138
157 scoped_ptr<content::WebContents> contents( 139 TestBookmarkAppHelper helper(service_, web_app_info, NULL);
158 content::WebContentsTester::CreateTestWebContents(profile_.get(), NULL));
159 TestBookmarkAppHelper helper(service_, web_app_info, contents.get());
160 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete, 140 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete,
161 base::Unretained(&helper))); 141 base::Unretained(&helper)));
162 142
163 std::map<GURL, std::vector<SkBitmap> > icon_map; 143 std::map<GURL, std::vector<SkBitmap> > icon_map;
164 icon_map[GURL(kAppUrl)].push_back( 144 icon_map[GURL(kAppUrl)].push_back(
165 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED)); 145 CreateSquareBitmapWithColor(kIconSizeSmall, SK_ColorRED));
166 helper.CompleteIconDownload(true, icon_map); 146 helper.CompleteIconDownload(true, icon_map);
167 147
168 base::RunLoop().RunUntilIdle(); 148 base::RunLoop().RunUntilIdle();
169 EXPECT_TRUE(helper.extension()); 149 EXPECT_TRUE(helper.extension());
170 const Extension* extension = 150 const Extension* extension =
171 service_->GetInstalledExtension(helper.extension()->id()); 151 service_->GetInstalledExtension(helper.extension()->id());
172 EXPECT_TRUE(extension); 152 EXPECT_TRUE(extension);
173 EXPECT_EQ(1u, service_->extensions()->size()); 153 EXPECT_EQ(1u, service_->extensions()->size());
174 EXPECT_TRUE(extension->from_bookmark()); 154 EXPECT_TRUE(extension->from_bookmark());
175 EXPECT_EQ(kAppTitle, extension->name()); 155 EXPECT_EQ(kAppTitle, extension->name());
176 EXPECT_EQ(kAppDescription, extension->description()); 156 EXPECT_EQ(kAppDescription, extension->description());
177 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension)); 157 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension));
178 EXPECT_FALSE( 158 EXPECT_FALSE(
179 IconsInfo::GetIconResource( 159 IconsInfo::GetIconResource(
180 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty()); 160 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty());
181 } 161 }
182 162
183 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateBookmarkAppNoContents) {
184 WebApplicationInfo web_app_info;
185 web_app_info.app_url = GURL(kAppUrl);
186 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
187 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
188 web_app_info.icons.push_back(
189 CreateIconInfoWithBitmap(kIconSizeTiny, SK_ColorRED));
190
191 TestBookmarkAppHelper helper(service_, web_app_info, NULL);
192 helper.Create(base::Bind(&TestBookmarkAppHelper::CreationComplete,
193 base::Unretained(&helper)));
194
195 base::RunLoop().RunUntilIdle();
196 EXPECT_TRUE(helper.extension());
197 const Extension* extension =
198 service_->GetInstalledExtension(helper.extension()->id());
199 EXPECT_TRUE(extension);
200 EXPECT_EQ(1u, service_->extensions()->size());
201 EXPECT_TRUE(extension->from_bookmark());
202 EXPECT_EQ(kAppTitle, extension->name());
203 EXPECT_EQ(kAppDescription, extension->description());
204 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(extension));
205 EXPECT_FALSE(
206 IconsInfo::GetIconResource(
207 extension, kIconSizeTiny, ExtensionIconSet::MATCH_EXACTLY).empty());
208 EXPECT_FALSE(
209 IconsInfo::GetIconResource(
210 extension, kIconSizeSmall, ExtensionIconSet::MATCH_EXACTLY).empty());
211 EXPECT_FALSE(
212 IconsInfo::GetIconResource(extension,
213 kIconSizeSmall * 2,
214 ExtensionIconSet::MATCH_EXACTLY).empty());
215 EXPECT_FALSE(
216 IconsInfo::GetIconResource(
217 extension, kIconSizeMedium, ExtensionIconSet::MATCH_EXACTLY).empty());
218 EXPECT_FALSE(
219 IconsInfo::GetIconResource(extension,
220 kIconSizeMedium * 2,
221 ExtensionIconSet::MATCH_EXACTLY).empty());
222 }
223
224 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) { 163 TEST_F(BookmarkAppHelperExtensionServiceTest, CreateAndUpdateBookmarkApp) {
225 EXPECT_EQ(0u, registry_->enabled_extensions().size()); 164 EXPECT_EQ(0u, registry_->enabled_extensions().size());
226 WebApplicationInfo web_app_info; 165 WebApplicationInfo web_app_info;
227 web_app_info.app_url = GURL(kAppUrl); 166 web_app_info.app_url = GURL(kAppUrl);
228 web_app_info.title = base::UTF8ToUTF16(kAppTitle); 167 web_app_info.title = base::UTF8ToUTF16(kAppTitle);
229 web_app_info.description = base::UTF8ToUTF16(kAppDescription); 168 web_app_info.description = base::UTF8ToUTF16(kAppDescription);
230 web_app_info.icons.push_back( 169 web_app_info.icons.push_back(
231 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED)); 170 CreateIconInfoWithBitmap(kIconSizeSmall, SK_ColorRED));
232 171
233 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info); 172 extensions::CreateOrUpdateBookmarkApp(service_, web_app_info);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } 271 }
333 272
334 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) { 273 TEST_F(BookmarkAppHelperTest, IsValidBookmarkAppUrl) {
335 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org"))); 274 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("https://www.chromium.org")));
336 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path"))); 275 EXPECT_TRUE(IsValidBookmarkAppUrl(GURL("http://www.chromium.org/path")));
337 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org"))); 276 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("ftp://www.chromium.org")));
338 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags"))); 277 EXPECT_FALSE(IsValidBookmarkAppUrl(GURL("chrome://flags")));
339 } 278 }
340 279
341 } // namespace extensions 280 } // namespace extensions
OLDNEW
« no previous file with comments | « trunk/src/chrome/browser/extensions/bookmark_app_helper.cc ('k') | trunk/src/chrome/common/extensions/api/_api_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698