OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "skia/ext/bitmap_platform_device_mac.h" | |
6 | |
7 #include "base/memory/scoped_ptr.h" | |
8 #include "skia/ext/skia_utils_mac.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 #include "third_party/skia/include/core/SkMatrix.h" | |
11 #include "third_party/skia/include/core/SkRegion.h" | |
12 #include "third_party/skia/include/core/SkClipStack.h" | |
13 | |
14 namespace skia { | |
15 | |
16 const int kWidth = 400; | |
17 const int kHeight = 300; | |
18 | |
19 class BitmapPlatformDeviceMacTest : public testing::Test { | |
20 public: | |
21 BitmapPlatformDeviceMacTest() { | |
22 bitmap_.reset(BitmapPlatformDevice::Create( | |
23 NULL, kWidth, kHeight, /*is_opaque=*/true)); | |
24 } | |
25 | |
26 scoped_ptr<BitmapPlatformDevice> bitmap_; | |
27 }; | |
28 | |
29 TEST_F(BitmapPlatformDeviceMacTest, ClipRectTransformWithTranslate) { | |
30 SkMatrix transform; | |
31 transform.setTranslate(50, 140); | |
32 | |
33 SkClipStack ignore; | |
34 SkRegion clip_region; | |
35 SkIRect rect; | |
36 rect.set(0, 0, kWidth, kHeight); | |
37 clip_region.setRect(rect); | |
38 bitmap_->setMatrixClip(transform, clip_region, ignore); | |
39 | |
40 CGContextRef context = bitmap_->GetBitmapContext(); | |
41 SkRect clip_rect = gfx::CGRectToSkRect(CGContextGetClipBoundingBox(context)); | |
42 transform.mapRect(&clip_rect); | |
43 EXPECT_EQ(0, clip_rect.fLeft); | |
44 EXPECT_EQ(0, clip_rect.fTop); | |
45 EXPECT_EQ(kWidth, clip_rect.width()); | |
46 EXPECT_EQ(kHeight, clip_rect.height()); | |
47 } | |
48 | |
49 TEST_F(BitmapPlatformDeviceMacTest, ClipRectTransformWithScale) { | |
50 SkMatrix transform; | |
51 transform.setScale(0.5, 0.5); | |
52 | |
53 SkClipStack unused; | |
54 SkRegion clip_region; | |
55 SkIRect rect; | |
56 rect.set(0, 0, kWidth, kHeight); | |
57 clip_region.setRect(rect); | |
58 bitmap_->setMatrixClip(transform, clip_region, unused); | |
59 | |
60 CGContextRef context = bitmap_->GetBitmapContext(); | |
61 SkRect clip_rect = gfx::CGRectToSkRect(CGContextGetClipBoundingBox(context)); | |
62 transform.mapRect(&clip_rect); | |
63 EXPECT_EQ(0, clip_rect.fLeft); | |
64 EXPECT_EQ(0, clip_rect.fTop); | |
65 EXPECT_EQ(kWidth, clip_rect.width()); | |
66 EXPECT_EQ(kHeight, clip_rect.height()); | |
67 } | |
68 | |
69 } // namespace skia | |
OLD | NEW |