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

Side by Side Diff: content/common/cursors/webcursor_unittest.cc

Issue 2823003002: SkBitmap and SkPixelRef no longer need lock/unlock (Closed)
Patch Set: win fix after rebase Created 3 years, 8 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) 2012 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/pickle.h" 7 #include "base/pickle.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "content/common/cursors/webcursor.h" 9 #include "content/common/cursors/webcursor.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 // Custom Windows message. 215 // Custom Windows message.
216 ok_custom_pickle.WriteUInt32(0); 216 ok_custom_pickle.WriteUInt32(0);
217 base::PickleIterator iter(ok_custom_pickle); 217 base::PickleIterator iter(ok_custom_pickle);
218 EXPECT_TRUE(custom_cursor.Deserialize(&iter)); 218 EXPECT_TRUE(custom_cursor.Deserialize(&iter));
219 } 219 }
220 220
221 TEST(WebCursorTest, AlphaConversion) { 221 TEST(WebCursorTest, AlphaConversion) {
222 SkBitmap bitmap; 222 SkBitmap bitmap;
223 SkPMColor testColor = SkPreMultiplyARGB(10, 255, 255, 255); 223 SkPMColor testColor = SkPreMultiplyARGB(10, 255, 255, 255);
224 bitmap.allocN32Pixels(1,1); 224 bitmap.allocN32Pixels(1,1);
225 SkAutoLockPixels bitmap_lock(bitmap);
226 *bitmap.getAddr32(0, 0) = testColor; 225 *bitmap.getAddr32(0, 0) = testColor;
227 CursorInfo cursor_info; 226 CursorInfo cursor_info;
228 cursor_info.type = WebCursorInfo::kTypeCustom; 227 cursor_info.type = WebCursorInfo::kTypeCustom;
229 cursor_info.custom_image = bitmap; 228 cursor_info.custom_image = bitmap;
230 cursor_info.image_scale_factor = 1; 229 cursor_info.image_scale_factor = 1;
231 WebCursor custom_cursor; 230 WebCursor custom_cursor;
232 231
233 // This round trip will convert the cursor to unpremultiplied form. 232 // This round trip will convert the cursor to unpremultiplied form.
234 custom_cursor.InitFromCursorInfo(cursor_info); 233 custom_cursor.InitFromCursorInfo(cursor_info);
235 custom_cursor.GetCursorInfo(&cursor_info); 234 custom_cursor.GetCursorInfo(&cursor_info);
236 { 235 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType());
237 SkAutoLockPixels lock(cursor_info.custom_image); 236 EXPECT_EQ(testColor,
238 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType()); 237 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0, 0)));
239 EXPECT_EQ(testColor,
240 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0,0)));
241 }
242 238
243 // Second round trip should not do any conversion because data is already 239 // Second round trip should not do any conversion because data is already
244 // unpremultiplied. 240 // unpremultiplied.
245 custom_cursor.InitFromCursorInfo(cursor_info); 241 custom_cursor.InitFromCursorInfo(cursor_info);
246 custom_cursor.GetCursorInfo(&cursor_info); 242 custom_cursor.GetCursorInfo(&cursor_info);
247 { 243 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType());
248 SkAutoLockPixels lock(cursor_info.custom_image); 244 EXPECT_EQ(testColor,
249 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType()); 245 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0, 0)));
250 EXPECT_EQ(testColor,
251 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0,0)));
252 }
253 246
254 #if defined(OS_MACOSX) 247 #if defined(OS_MACOSX)
255 // On MacOS, test roundtrip through NSCursor conversion. 248 // On MacOS, test roundtrip through NSCursor conversion.
256 WebCursor custom_cursor_copy; 249 WebCursor custom_cursor_copy;
257 custom_cursor_copy.InitFromNSCursor(custom_cursor.GetNativeCursor()); 250 custom_cursor_copy.InitFromNSCursor(custom_cursor.GetNativeCursor());
258 custom_cursor_copy.GetCursorInfo(&cursor_info); 251 custom_cursor_copy.GetCursorInfo(&cursor_info);
259 { 252 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType());
260 SkAutoLockPixels lock(cursor_info.custom_image); 253 EXPECT_EQ(testColor,
261 EXPECT_EQ(kUnpremul_SkAlphaType, cursor_info.custom_image.alphaType()); 254 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0, 0)));
262 EXPECT_EQ(testColor,
263 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0,0)));
264 }
265 #endif 255 #endif
266 } 256 }
267 257
268 #if defined(USE_AURA) 258 #if defined(USE_AURA)
269 TEST(WebCursorTest, CursorScaleFactor) { 259 TEST(WebCursorTest, CursorScaleFactor) {
270 display::Display display; 260 display::Display display;
271 display.set_device_scale_factor(80.2f); 261 display.set_device_scale_factor(80.2f);
272 262
273 CursorInfo info; 263 CursorInfo info;
274 info.image_scale_factor = 2.0f; 264 info.image_scale_factor = 2.0f;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 } // namespace 341 } // namespace
352 342
353 TEST(WebCursorTest, WindowsCursorScaledAtHiDpi) { 343 TEST(WebCursorTest, WindowsCursorScaledAtHiDpi) {
354 ScaleCursor(2.0f, 4, 6); 344 ScaleCursor(2.0f, 4, 6);
355 ScaleCursor(1.5f, 2, 8); 345 ScaleCursor(1.5f, 2, 8);
356 ScaleCursor(1.25f, 3, 7); 346 ScaleCursor(1.25f, 3, 7);
357 } 347 }
358 #endif 348 #endif
359 349
360 } // namespace content 350 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698