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

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

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 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 "extensions/browser/image_loader.h" 5 #include "extensions/browser/image_loader.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/json/json_file_value_serializer.h" 8 #include "base/json/json_file_value_serializer.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 image_loaded_count_ = 0; 67 image_loaded_count_ = 0;
68 return result; 68 return result;
69 } 69 }
70 70
71 scoped_refptr<Extension> CreateExtension(const char* dir_name, 71 scoped_refptr<Extension> CreateExtension(const char* dir_name,
72 Manifest::Location location) { 72 Manifest::Location location) {
73 // Create and load an extension. 73 // Create and load an extension.
74 base::FilePath extension_dir; 74 base::FilePath extension_dir;
75 if (!PathService::Get(DIR_TEST_DATA, &extension_dir)) { 75 if (!PathService::Get(DIR_TEST_DATA, &extension_dir)) {
76 EXPECT_FALSE(true); 76 EXPECT_FALSE(true);
77 return NULL; 77 return nullptr;
78 } 78 }
79 extension_dir = extension_dir.AppendASCII(dir_name); 79 extension_dir = extension_dir.AppendASCII(dir_name);
80 int error_code = 0; 80 int error_code = 0;
81 std::string error; 81 std::string error;
82 JSONFileValueSerializer serializer( 82 JSONFileValueSerializer serializer(
83 extension_dir.AppendASCII("manifest.json")); 83 extension_dir.AppendASCII("manifest.json"));
84 scoped_ptr<base::DictionaryValue> valid_value( 84 scoped_ptr<base::DictionaryValue> valid_value(
85 static_cast<base::DictionaryValue*>(serializer.Deserialize(&error_code, 85 static_cast<base::DictionaryValue*>(serializer.Deserialize(&error_code,
86 &error))); 86 &error)));
87 EXPECT_EQ(0, error_code) << error; 87 EXPECT_EQ(0, error_code) << error;
88 if (error_code != 0) 88 if (error_code != 0)
89 return NULL; 89 return nullptr;
90 90
91 EXPECT_TRUE(valid_value.get()); 91 EXPECT_TRUE(valid_value.get());
92 if (!valid_value) 92 if (!valid_value)
93 return NULL; 93 return nullptr;
94 94
95 return Extension::Create( 95 return Extension::Create(
96 extension_dir, location, *valid_value, Extension::NO_FLAGS, &error); 96 extension_dir, location, *valid_value, Extension::NO_FLAGS, &error);
97 } 97 }
98 98
99 gfx::Image image_; 99 gfx::Image image_;
100 gfx::ImageFamily image_family_; 100 gfx::ImageFamily image_family_;
101 101
102 private: 102 private:
103 virtual void SetUp() OVERRIDE { 103 virtual void SetUp() OVERRIDE {
104 testing::Test::SetUp(); 104 testing::Test::SetUp();
105 file_thread_.Start(); 105 file_thread_.Start();
106 io_thread_.Start(); 106 io_thread_.Start();
107 } 107 }
108 108
109 int image_loaded_count_; 109 int image_loaded_count_;
110 bool quit_in_image_loaded_; 110 bool quit_in_image_loaded_;
111 base::MessageLoop ui_loop_; 111 base::MessageLoop ui_loop_;
112 content::TestBrowserThread ui_thread_; 112 content::TestBrowserThread ui_thread_;
113 content::TestBrowserThread file_thread_; 113 content::TestBrowserThread file_thread_;
114 content::TestBrowserThread io_thread_; 114 content::TestBrowserThread io_thread_;
115 scoped_ptr<NotificationService> notification_service_; 115 scoped_ptr<NotificationService> notification_service_;
116 }; 116 };
117 117
118 // Tests loading an image works correctly. 118 // Tests loading an image works correctly.
119 TEST_F(ImageLoaderTest, LoadImage) { 119 TEST_F(ImageLoaderTest, LoadImage) {
120 scoped_refptr<Extension> extension( 120 scoped_refptr<Extension> extension(
121 CreateExtension("image_loader", Manifest::INVALID_LOCATION)); 121 CreateExtension("image_loader", Manifest::INVALID_LOCATION));
122 ASSERT_TRUE(extension.get() != NULL); 122 ASSERT_TRUE(extension.get() != nullptr);
123 123
124 ExtensionResource image_resource = 124 ExtensionResource image_resource =
125 IconsInfo::GetIconResource(extension.get(), 125 IconsInfo::GetIconResource(extension.get(),
126 extension_misc::EXTENSION_ICON_SMALLISH, 126 extension_misc::EXTENSION_ICON_SMALLISH,
127 ExtensionIconSet::MATCH_EXACTLY); 127 ExtensionIconSet::MATCH_EXACTLY);
128 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH, 128 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
129 extension_misc::EXTENSION_ICON_SMALLISH); 129 extension_misc::EXTENSION_ICON_SMALLISH);
130 ImageLoader loader; 130 ImageLoader loader;
131 loader.LoadImageAsync(extension.get(), 131 loader.LoadImageAsync(extension.get(),
132 image_resource, 132 image_resource,
(...skipping 13 matching lines...) Expand all
146 // Check that the image was loaded. 146 // Check that the image was loaded.
147 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, 147 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH,
148 image_.ToSkBitmap()->width()); 148 image_.ToSkBitmap()->width());
149 } 149 }
150 150
151 // Tests deleting an extension while waiting for the image to load doesn't cause 151 // Tests deleting an extension while waiting for the image to load doesn't cause
152 // problems. 152 // problems.
153 TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) { 153 TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) {
154 scoped_refptr<Extension> extension( 154 scoped_refptr<Extension> extension(
155 CreateExtension("image_loader", Manifest::INVALID_LOCATION)); 155 CreateExtension("image_loader", Manifest::INVALID_LOCATION));
156 ASSERT_TRUE(extension.get() != NULL); 156 ASSERT_TRUE(extension.get() != nullptr);
157 157
158 ExtensionResource image_resource = 158 ExtensionResource image_resource =
159 IconsInfo::GetIconResource(extension.get(), 159 IconsInfo::GetIconResource(extension.get(),
160 extension_misc::EXTENSION_ICON_SMALLISH, 160 extension_misc::EXTENSION_ICON_SMALLISH,
161 ExtensionIconSet::MATCH_EXACTLY); 161 ExtensionIconSet::MATCH_EXACTLY);
162 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH, 162 gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
163 extension_misc::EXTENSION_ICON_SMALLISH); 163 extension_misc::EXTENSION_ICON_SMALLISH);
164 ImageLoader loader; 164 ImageLoader loader;
165 std::set<int> sizes; 165 std::set<int> sizes;
166 sizes.insert(extension_misc::EXTENSION_ICON_SMALLISH); 166 sizes.insert(extension_misc::EXTENSION_ICON_SMALLISH);
167 loader.LoadImageAsync(extension.get(), 167 loader.LoadImageAsync(extension.get(),
168 image_resource, 168 image_resource,
169 max_size, 169 max_size,
170 base::Bind(&ImageLoaderTest::OnImageLoaded, 170 base::Bind(&ImageLoaderTest::OnImageLoaded,
171 base::Unretained(this))); 171 base::Unretained(this)));
172 172
173 // The image isn't cached, so we should not have received notification. 173 // The image isn't cached, so we should not have received notification.
174 EXPECT_EQ(0, image_loaded_count()); 174 EXPECT_EQ(0, image_loaded_count());
175 175
176 // Send out notification the extension was uninstalled. 176 // Send out notification the extension was uninstalled.
177 UnloadedExtensionInfo details(extension.get(), 177 UnloadedExtensionInfo details(extension.get(),
178 UnloadedExtensionInfo::REASON_UNINSTALL); 178 UnloadedExtensionInfo::REASON_UNINSTALL);
179 content::NotificationService::current()->Notify( 179 content::NotificationService::current()->Notify(
180 NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, 180 NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
181 content::NotificationService::AllSources(), 181 content::NotificationService::AllSources(),
182 content::Details<UnloadedExtensionInfo>(&details)); 182 content::Details<UnloadedExtensionInfo>(&details));
183 183
184 // Chuck the extension, that way if anyone tries to access it we should crash 184 // Chuck the extension, that way if anyone tries to access it we should crash
185 // or get valgrind errors. 185 // or get valgrind errors.
186 extension = NULL; 186 extension = nullptr;
187 187
188 WaitForImageLoad(); 188 WaitForImageLoad();
189 189
190 // Even though we deleted the extension, we should still get the image. 190 // Even though we deleted the extension, we should still get the image.
191 // We should still have gotten the image. 191 // We should still have gotten the image.
192 EXPECT_EQ(1, image_loaded_count()); 192 EXPECT_EQ(1, image_loaded_count());
193 193
194 // Check that the image was loaded. 194 // Check that the image was loaded.
195 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, 195 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH,
196 image_.ToSkBitmap()->width()); 196 image_.ToSkBitmap()->width());
197 } 197 }
198 198
199 // Tests loading multiple dimensions of the same image. 199 // Tests loading multiple dimensions of the same image.
200 TEST_F(ImageLoaderTest, MultipleImages) { 200 TEST_F(ImageLoaderTest, MultipleImages) {
201 scoped_refptr<Extension> extension( 201 scoped_refptr<Extension> extension(
202 CreateExtension("image_loader", Manifest::INVALID_LOCATION)); 202 CreateExtension("image_loader", Manifest::INVALID_LOCATION));
203 ASSERT_TRUE(extension.get() != NULL); 203 ASSERT_TRUE(extension.get() != nullptr);
204 204
205 std::vector<ImageLoader::ImageRepresentation> info_list; 205 std::vector<ImageLoader::ImageRepresentation> info_list;
206 int sizes[] = {extension_misc::EXTENSION_ICON_BITTY, 206 int sizes[] = {extension_misc::EXTENSION_ICON_BITTY,
207 extension_misc::EXTENSION_ICON_SMALLISH, }; 207 extension_misc::EXTENSION_ICON_SMALLISH, };
208 for (size_t i = 0; i < arraysize(sizes); ++i) { 208 for (size_t i = 0; i < arraysize(sizes); ++i) {
209 ExtensionResource resource = IconsInfo::GetIconResource( 209 ExtensionResource resource = IconsInfo::GetIconResource(
210 extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY); 210 extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY);
211 info_list.push_back(ImageLoader::ImageRepresentation( 211 info_list.push_back(ImageLoader::ImageRepresentation(
212 resource, 212 resource,
213 ImageLoader::ImageRepresentation::RESIZE_WHEN_LARGER, 213 ImageLoader::ImageRepresentation::RESIZE_WHEN_LARGER,
(...skipping 24 matching lines...) Expand all
238 EXPECT_EQ(extension_misc::EXTENSION_ICON_BITTY, 238 EXPECT_EQ(extension_misc::EXTENSION_ICON_BITTY,
239 img_rep1->pixel_width()); 239 img_rep1->pixel_width());
240 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, 240 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH,
241 img_rep2->pixel_width()); 241 img_rep2->pixel_width());
242 } 242 }
243 243
244 // Tests loading multiple dimensions of the same image into an image family. 244 // Tests loading multiple dimensions of the same image into an image family.
245 TEST_F(ImageLoaderTest, LoadImageFamily) { 245 TEST_F(ImageLoaderTest, LoadImageFamily) {
246 scoped_refptr<Extension> extension( 246 scoped_refptr<Extension> extension(
247 CreateExtension("image_loader", Manifest::INVALID_LOCATION)); 247 CreateExtension("image_loader", Manifest::INVALID_LOCATION));
248 ASSERT_TRUE(extension.get() != NULL); 248 ASSERT_TRUE(extension.get() != nullptr);
249 249
250 std::vector<ImageLoader::ImageRepresentation> info_list; 250 std::vector<ImageLoader::ImageRepresentation> info_list;
251 int sizes[] = {extension_misc::EXTENSION_ICON_BITTY, 251 int sizes[] = {extension_misc::EXTENSION_ICON_BITTY,
252 extension_misc::EXTENSION_ICON_SMALLISH, }; 252 extension_misc::EXTENSION_ICON_SMALLISH, };
253 for (size_t i = 0; i < arraysize(sizes); ++i) { 253 for (size_t i = 0; i < arraysize(sizes); ++i) {
254 ExtensionResource resource = IconsInfo::GetIconResource( 254 ExtensionResource resource = IconsInfo::GetIconResource(
255 extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY); 255 extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY);
256 info_list.push_back(ImageLoader::ImageRepresentation( 256 info_list.push_back(ImageLoader::ImageRepresentation(
257 resource, 257 resource,
258 ImageLoader::ImageRepresentation::NEVER_RESIZE, 258 ImageLoader::ImageRepresentation::NEVER_RESIZE,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 304
305 const gfx::ImageSkiaRep* img_rep1 = &image_reps[0]; 305 const gfx::ImageSkiaRep* img_rep1 = &image_reps[0];
306 const gfx::ImageSkiaRep* img_rep2 = &image_reps[1]; 306 const gfx::ImageSkiaRep* img_rep2 = &image_reps[1];
307 EXPECT_EQ(extension_misc::EXTENSION_ICON_BITTY, img_rep1->pixel_width()); 307 EXPECT_EQ(extension_misc::EXTENSION_ICON_BITTY, img_rep1->pixel_width());
308 EXPECT_EQ(1.0f, img_rep1->scale()); 308 EXPECT_EQ(1.0f, img_rep1->scale());
309 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, img_rep2->pixel_width()); 309 EXPECT_EQ(extension_misc::EXTENSION_ICON_SMALLISH, img_rep2->pixel_width());
310 EXPECT_EQ(2.0f, img_rep2->scale()); 310 EXPECT_EQ(2.0f, img_rep2->scale());
311 } 311 }
312 312
313 } // namespace extensions 313 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698