| OLD | NEW |
| 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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 // Data len including enough data for a 2x2 image. | 154 // Data len including enough data for a 2x2 image. |
| 155 ok_custom_pickle.WriteInt(4 * 4); | 155 ok_custom_pickle.WriteInt(4 * 4); |
| 156 for (size_t i = 0; i < 4; i++) | 156 for (size_t i = 0; i < 4; i++) |
| 157 ok_custom_pickle.WriteUInt32(0); | 157 ok_custom_pickle.WriteUInt32(0); |
| 158 // Custom Windows message. | 158 // Custom Windows message. |
| 159 ok_custom_pickle.WriteUInt32(0); | 159 ok_custom_pickle.WriteUInt32(0); |
| 160 base::PickleIterator iter(ok_custom_pickle); | 160 base::PickleIterator iter(ok_custom_pickle); |
| 161 EXPECT_TRUE(custom_cursor.Deserialize(&iter)); | 161 EXPECT_TRUE(custom_cursor.Deserialize(&iter)); |
| 162 | 162 |
| 163 // Convert to WebCursorInfo, make sure the hotspot got clamped. | 163 // Convert to WebCursorInfo, make sure the hotspot got clamped. |
| 164 WebCursor::CursorInfo info; | 164 CursorInfo info; |
| 165 custom_cursor.GetCursorInfo(&info); | 165 custom_cursor.GetCursorInfo(&info); |
| 166 EXPECT_EQ(gfx::Point(1, 1), info.hotspot); | 166 EXPECT_EQ(gfx::Point(1, 1), info.hotspot); |
| 167 | 167 |
| 168 // Set hotspot to an invalid point again, pipe back through WebCursor, | 168 // Set hotspot to an invalid point again, pipe back through WebCursor, |
| 169 // and make sure the hotspot got clamped again. | 169 // and make sure the hotspot got clamped again. |
| 170 info.hotspot = gfx::Point(-1, -1); | 170 info.hotspot = gfx::Point(-1, -1); |
| 171 custom_cursor.InitFromCursorInfo(info); | 171 custom_cursor.InitFromCursorInfo(info); |
| 172 custom_cursor.GetCursorInfo(&info); | 172 custom_cursor.GetCursorInfo(&info); |
| 173 EXPECT_EQ(gfx::Point(0, 0), info.hotspot); | 173 EXPECT_EQ(gfx::Point(0, 0), info.hotspot); |
| 174 } | 174 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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); | 225 SkAutoLockPixels bitmap_lock(bitmap); |
| 226 *bitmap.getAddr32(0, 0) = testColor; | 226 *bitmap.getAddr32(0, 0) = testColor; |
| 227 WebCursor::CursorInfo cursor_info; | 227 CursorInfo cursor_info; |
| 228 cursor_info.type = WebCursorInfo::kTypeCustom; | 228 cursor_info.type = WebCursorInfo::kTypeCustom; |
| 229 cursor_info.custom_image = bitmap; | 229 cursor_info.custom_image = bitmap; |
| 230 cursor_info.image_scale_factor = 1; | 230 cursor_info.image_scale_factor = 1; |
| 231 WebCursor custom_cursor; | 231 WebCursor custom_cursor; |
| 232 | 232 |
| 233 // This round trip will convert the cursor to unpremultiplied form. | 233 // This round trip will convert the cursor to unpremultiplied form. |
| 234 custom_cursor.InitFromCursorInfo(cursor_info); | 234 custom_cursor.InitFromCursorInfo(cursor_info); |
| 235 custom_cursor.GetCursorInfo(&cursor_info); | 235 custom_cursor.GetCursorInfo(&cursor_info); |
| 236 { | 236 { |
| 237 SkAutoLockPixels lock(cursor_info.custom_image); | 237 SkAutoLockPixels lock(cursor_info.custom_image); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 263 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0,0))); | 263 SkPreMultiplyColor(*cursor_info.custom_image.getAddr32(0,0))); |
| 264 } | 264 } |
| 265 #endif | 265 #endif |
| 266 } | 266 } |
| 267 | 267 |
| 268 #if defined(USE_AURA) | 268 #if defined(USE_AURA) |
| 269 TEST(WebCursorTest, CursorScaleFactor) { | 269 TEST(WebCursorTest, CursorScaleFactor) { |
| 270 display::Display display; | 270 display::Display display; |
| 271 display.set_device_scale_factor(80.2f); | 271 display.set_device_scale_factor(80.2f); |
| 272 | 272 |
| 273 WebCursor::CursorInfo info; | 273 CursorInfo info; |
| 274 info.image_scale_factor = 2.0f; | 274 info.image_scale_factor = 2.0f; |
| 275 | 275 |
| 276 WebCursor cursor; | 276 WebCursor cursor; |
| 277 cursor.InitFromCursorInfo(info); | 277 cursor.InitFromCursorInfo(info); |
| 278 cursor.SetDisplayInfo(display); | 278 cursor.SetDisplayInfo(display); |
| 279 | 279 |
| 280 EXPECT_EQ(40.1f, cursor.GetCursorScaleFactor()); | 280 EXPECT_EQ(40.1f, cursor.GetCursorScaleFactor()); |
| 281 } | 281 } |
| 282 | 282 |
| 283 TEST(WebCursorTest, UnscaledImageCopy) { | 283 TEST(WebCursorTest, UnscaledImageCopy) { |
| 284 WebCursor::CursorInfo info; | 284 CursorInfo info; |
| 285 info.type = WebCursorInfo::kTypeCustom; | 285 info.type = WebCursorInfo::kTypeCustom; |
| 286 info.hotspot = gfx::Point(0, 1); | 286 info.hotspot = gfx::Point(0, 1); |
| 287 | 287 |
| 288 SkImageInfo image_info = SkImageInfo::MakeN32(2, 2, kUnpremul_SkAlphaType); | 288 SkImageInfo image_info = SkImageInfo::MakeN32(2, 2, kUnpremul_SkAlphaType); |
| 289 info.custom_image = SkBitmap(); | 289 info.custom_image = SkBitmap(); |
| 290 info.custom_image.setInfo(image_info); | 290 info.custom_image.setInfo(image_info); |
| 291 info.custom_image.allocN32Pixels(2, 2); | 291 info.custom_image.allocN32Pixels(2, 2); |
| 292 info.custom_image.eraseColor(0xFFFFFFFF); | 292 info.custom_image.eraseColor(0xFFFFFFFF); |
| 293 | 293 |
| 294 WebCursor cursor; | 294 WebCursor cursor; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 318 } | 318 } |
| 319 #endif | 319 #endif |
| 320 | 320 |
| 321 #if defined(OS_WIN) | 321 #if defined(OS_WIN) |
| 322 namespace { | 322 namespace { |
| 323 | 323 |
| 324 void ScaleCursor(float scale_factor, int hotspot_x, int hotspot_y) { | 324 void ScaleCursor(float scale_factor, int hotspot_x, int hotspot_y) { |
| 325 display::Display display; | 325 display::Display display; |
| 326 display.set_device_scale_factor(scale_factor); | 326 display.set_device_scale_factor(scale_factor); |
| 327 | 327 |
| 328 WebCursor::CursorInfo info; | 328 CursorInfo info; |
| 329 info.type = WebCursorInfo::kTypeCustom; | 329 info.type = WebCursorInfo::kTypeCustom; |
| 330 info.hotspot = gfx::Point(hotspot_x, hotspot_y); | 330 info.hotspot = gfx::Point(hotspot_x, hotspot_y); |
| 331 | 331 |
| 332 info.custom_image = SkBitmap(); | 332 info.custom_image = SkBitmap(); |
| 333 info.custom_image.allocN32Pixels(10, 10); | 333 info.custom_image.allocN32Pixels(10, 10); |
| 334 info.custom_image.eraseColor(0); | 334 info.custom_image.eraseColor(0); |
| 335 | 335 |
| 336 WebCursor cursor; | 336 WebCursor cursor; |
| 337 cursor.SetDisplayInfo(display); | 337 cursor.SetDisplayInfo(display); |
| 338 cursor.InitFromCursorInfo(info); | 338 cursor.InitFromCursorInfo(info); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 351 } // namespace | 351 } // namespace |
| 352 | 352 |
| 353 TEST(WebCursorTest, WindowsCursorScaledAtHiDpi) { | 353 TEST(WebCursorTest, WindowsCursorScaledAtHiDpi) { |
| 354 ScaleCursor(2.0f, 4, 6); | 354 ScaleCursor(2.0f, 4, 6); |
| 355 ScaleCursor(1.5f, 2, 8); | 355 ScaleCursor(1.5f, 2, 8); |
| 356 ScaleCursor(1.25f, 3, 7); | 356 ScaleCursor(1.25f, 3, 7); |
| 357 } | 357 } |
| 358 #endif | 358 #endif |
| 359 | 359 |
| 360 } // namespace content | 360 } // namespace content |
| OLD | NEW |