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

Side by Side Diff: chrome/browser/extensions/image_loader_unittest.cc

Issue 11786003: Move Icons out of Extension class (Closed) Base URL: http://git.chromium.org/chromium/src.git@dc_unref_browser_action
Patch Set: Latest master + Yoyo's requests Created 7 years, 11 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/image_loader.h" 5 #include "chrome/browser/extensions/image_loader.h"
6 6
7 #include "base/json/json_file_value_serializer.h" 7 #include "base/json/json_file_value_serializer.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "chrome/common/chrome_notification_types.h" 10 #include "chrome/common/chrome_notification_types.h"
11 #include "chrome/common/chrome_paths.h" 11 #include "chrome/common/chrome_paths.h"
12 #include "chrome/common/extensions/api/icons/icons_handler.h"
12 #include "chrome/common/extensions/extension.h" 13 #include "chrome/common/extensions/extension.h"
13 #include "chrome/common/extensions/extension_constants.h" 14 #include "chrome/common/extensions/extension_constants.h"
14 #include "chrome/common/extensions/extension_icon_set.h" 15 #include "chrome/common/extensions/extension_icon_set.h"
15 #include "chrome/common/extensions/extension_resource.h" 16 #include "chrome/common/extensions/extension_resource.h"
16 #include "content/public/browser/notification_service.h" 17 #include "content/public/browser/notification_service.h"
17 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
18 #include "grit/component_extension_resources.h" 19 #include "grit/component_extension_resources.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "third_party/skia/include/core/SkBitmap.h" 21 #include "third_party/skia/include/core/SkBitmap.h"
21 #include "ui/gfx/image/image.h" 22 #include "ui/gfx/image/image.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 content::TestBrowserThread file_thread_; 106 content::TestBrowserThread file_thread_;
106 content::TestBrowserThread io_thread_; 107 content::TestBrowserThread io_thread_;
107 }; 108 };
108 109
109 // Tests loading an image works correctly. 110 // Tests loading an image works correctly.
110 TEST_F(ImageLoaderTest, LoadImage) { 111 TEST_F(ImageLoaderTest, LoadImage) {
111 scoped_refptr<Extension> extension(CreateExtension( 112 scoped_refptr<Extension> extension(CreateExtension(
112 "image_loading_tracker", Extension::INVALID)); 113 "image_loading_tracker", Extension::INVALID));
113 ASSERT_TRUE(extension.get() != NULL); 114 ASSERT_TRUE(extension.get() != NULL);
114 115
115 ExtensionResource image_resource = 116 ExtensionResource image_resource = extensions::IconsInfo::GetIconResource(
116 extension->GetIconResource(extension_misc::EXTENSION_ICON_SMALLISH, 117 extension,
117 ExtensionIconSet::MATCH_EXACTLY); 118 extension_misc::EXTENSION_ICON_SMALLISH,
119 ExtensionIconSet::MATCH_EXACTLY);
118 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH, 120 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
119 extension_misc::EXTENSION_ICON_SMALLISH); 121 extension_misc::EXTENSION_ICON_SMALLISH);
120 ImageLoader loader; 122 ImageLoader loader;
121 loader.LoadImageAsync(extension.get(), 123 loader.LoadImageAsync(extension.get(),
122 image_resource, 124 image_resource,
123 max_size, 125 max_size,
124 base::Bind(&ImageLoaderTest::OnImageLoaded, 126 base::Bind(&ImageLoaderTest::OnImageLoaded,
125 base::Unretained(this))); 127 base::Unretained(this)));
126 128
127 // The image isn't cached, so we should not have received notification. 129 // The image isn't cached, so we should not have received notification.
128 EXPECT_EQ(0, image_loaded_count()); 130 EXPECT_EQ(0, image_loaded_count());
129 131
130 WaitForImageLoad(); 132 WaitForImageLoad();
131 133
132 // We should have gotten the image. 134 // We should have gotten the image.
133 EXPECT_EQ(1, image_loaded_count()); 135 EXPECT_EQ(1, image_loaded_count());
134 136
135 // Check that the image was loaded. 137 // Check that the image was loaded.
136 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, 138 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH,
137 image_.ToSkBitmap()->width()); 139 image_.ToSkBitmap()->width());
138 } 140 }
139 141
140 // Tests deleting an extension while waiting for the image to load doesn't cause 142 // Tests deleting an extension while waiting for the image to load doesn't cause
141 // problems. 143 // problems.
142 TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) { 144 TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) {
143 scoped_refptr<Extension> extension(CreateExtension( 145 scoped_refptr<Extension> extension(CreateExtension(
144 "image_loading_tracker", Extension::INVALID)); 146 "image_loading_tracker", Extension::INVALID));
145 ASSERT_TRUE(extension.get() != NULL); 147 ASSERT_TRUE(extension.get() != NULL);
146 148
147 ExtensionResource image_resource = 149 ExtensionResource image_resource = extensions::IconsInfo::GetIconResource(
148 extension->GetIconResource(extension_misc::EXTENSION_ICON_SMALLISH, 150 extension,
149 ExtensionIconSet::MATCH_EXACTLY); 151 extension_misc::EXTENSION_ICON_SMALLISH,
152 ExtensionIconSet::MATCH_EXACTLY);
150 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH, 153 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
151 extension_misc::EXTENSION_ICON_SMALLISH); 154 extension_misc::EXTENSION_ICON_SMALLISH);
152 ImageLoader loader; 155 ImageLoader loader;
153 std::set<int> sizes; 156 std::set<int> sizes;
154 sizes.insert(extension_misc::EXTENSION_ICON_SMALLISH); 157 sizes.insert(extension_misc::EXTENSION_ICON_SMALLISH);
155 loader.LoadImageAsync(extension.get(), 158 loader.LoadImageAsync(extension.get(),
156 image_resource, 159 image_resource,
157 max_size, 160 max_size,
158 base::Bind(&ImageLoaderTest::OnImageLoaded, 161 base::Bind(&ImageLoaderTest::OnImageLoaded,
159 base::Unretained(this))); 162 base::Unretained(this)));
(...skipping 27 matching lines...) Expand all
187 // Tests loading multiple dimensions of the same image. 190 // Tests loading multiple dimensions of the same image.
188 TEST_F(ImageLoaderTest, MultipleImages) { 191 TEST_F(ImageLoaderTest, MultipleImages) {
189 scoped_refptr<Extension> extension(CreateExtension( 192 scoped_refptr<Extension> extension(CreateExtension(
190 "image_loading_tracker", Extension::INVALID)); 193 "image_loading_tracker", Extension::INVALID));
191 ASSERT_TRUE(extension.get() != NULL); 194 ASSERT_TRUE(extension.get() != NULL);
192 195
193 std::vector<ImageLoader::ImageRepresentation> info_list; 196 std::vector<ImageLoader::ImageRepresentation> info_list;
194 int sizes[] = {extension_misc::EXTENSION_ICON_SMALLISH, 197 int sizes[] = {extension_misc::EXTENSION_ICON_SMALLISH,
195 extension_misc::EXTENSION_ICON_BITTY}; 198 extension_misc::EXTENSION_ICON_BITTY};
196 for (size_t i = 0; i < arraysize(sizes); ++i) { 199 for (size_t i = 0; i < arraysize(sizes); ++i) {
197 ExtensionResource resource = 200 ExtensionResource resource = extensions::IconsInfo::GetIconResource(
198 extension->GetIconResource(sizes[i], ExtensionIconSet::MATCH_EXACTLY); 201 extension, sizes[i], ExtensionIconSet::MATCH_EXACTLY);
199 info_list.push_back(ImageLoader::ImageRepresentation( 202 info_list.push_back(ImageLoader::ImageRepresentation(
200 resource, 203 resource,
201 ImageLoader::ImageRepresentation::RESIZE_WHEN_LARGER, 204 ImageLoader::ImageRepresentation::RESIZE_WHEN_LARGER,
202 gfx::Size(sizes[i], sizes[i]), 205 gfx::Size(sizes[i], sizes[i]),
203 ui::SCALE_FACTOR_NONE)); 206 ui::SCALE_FACTOR_NONE));
204 } 207 }
205 208
206 ImageLoader loader; 209 ImageLoader loader;
207 loader.LoadImagesAsync(extension.get(), info_list, 210 loader.LoadImagesAsync(extension.get(), info_list,
208 base::Bind(&ImageLoaderTest::OnImageLoaded, 211 base::Bind(&ImageLoaderTest::OnImageLoaded,
(...skipping 21 matching lines...) Expand all
230 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, 233 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH,
231 img_rep2->pixel_width()); 234 img_rep2->pixel_width());
232 } 235 }
233 236
234 // Tests IsComponentExtensionResource function. 237 // Tests IsComponentExtensionResource function.
235 TEST_F(ImageLoaderTest, IsComponentExtensionResource) { 238 TEST_F(ImageLoaderTest, IsComponentExtensionResource) {
236 scoped_refptr<Extension> extension(CreateExtension( 239 scoped_refptr<Extension> extension(CreateExtension(
237 "file_manager", Extension::COMPONENT)); 240 "file_manager", Extension::COMPONENT));
238 ASSERT_TRUE(extension.get() != NULL); 241 ASSERT_TRUE(extension.get() != NULL);
239 242
240 ExtensionResource resource = 243 ExtensionResource resource = extensions::IconsInfo::GetIconResource(
241 extension->GetIconResource(extension_misc::EXTENSION_ICON_BITTY, 244 extension,
242 ExtensionIconSet::MATCH_EXACTLY); 245 extension_misc::EXTENSION_ICON_BITTY,
246 ExtensionIconSet::MATCH_EXACTLY);
243 247
244 #if defined(FILE_MANAGER_EXTENSION) 248 #if defined(FILE_MANAGER_EXTENSION)
245 int resource_id; 249 int resource_id;
246 ASSERT_EQ(true, 250 ASSERT_EQ(true,
247 ImageLoader::IsComponentExtensionResource(extension->path(), 251 ImageLoader::IsComponentExtensionResource(extension->path(),
248 resource.relative_path(), 252 resource.relative_path(),
249 &resource_id)); 253 &resource_id));
250 ASSERT_EQ(IDR_FILE_MANAGER_ICON_16, resource_id); 254 ASSERT_EQ(IDR_FILE_MANAGER_ICON_16, resource_id);
251 #endif 255 #endif
252 } 256 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698