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 "ui/gfx/transform_util.h" | 5 #include "ui/gfx/transform_util.h" |
6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" |
7 #include "ui/gfx/point.h" | 8 #include "ui/gfx/point.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "ui/gfx/test/transform_test_common.h" |
9 | 10 |
10 namespace gfx { | 11 namespace gfx { |
11 namespace { | 12 namespace { |
12 | 13 |
13 TEST(TransformUtilTest, GetScaleTransform) { | 14 TEST(TransformUtilTest, GetScaleTransform) { |
14 const Point kAnchor(20, 40); | 15 const Point kAnchor(20, 40); |
15 const float kScale = 0.5f; | 16 const float kScale = 0.5f; |
16 | 17 |
17 Transform scale = GetScaleTransform(kAnchor, kScale); | 18 Transform scale = GetScaleTransform(kAnchor, kScale); |
18 | 19 |
19 const int kOffset = 10; | 20 const int kOffset = 10; |
20 for (int sign_x = -1; sign_x <= 1; ++sign_x) { | 21 for (int sign_x = -1; sign_x <= 1; ++sign_x) { |
21 for (int sign_y = -1; sign_y <= 1; ++sign_y) { | 22 for (int sign_y = -1; sign_y <= 1; ++sign_y) { |
22 Point test(kAnchor.x() + sign_x * kOffset, | 23 Point test(kAnchor.x() + sign_x * kOffset, |
23 kAnchor.y() + sign_y * kOffset); | 24 kAnchor.y() + sign_y * kOffset); |
24 scale.TransformPoint(test); | 25 scale.TransformPoint(test); |
25 | 26 |
26 EXPECT_EQ(Point(kAnchor.x() + sign_x * kOffset * kScale, | 27 EXPECT_EQ(Point(kAnchor.x() + sign_x * kOffset * kScale, |
27 kAnchor.y() + sign_y * kOffset * kScale), | 28 kAnchor.y() + sign_y * kOffset * kScale), |
28 test); | 29 test); |
29 } | 30 } |
30 } | 31 } |
31 } | 32 } |
32 | 33 |
| 34 TEST(TransformUtilTest, verifyFlattenTo2DTransform) |
| 35 { |
| 36 Transform A; |
| 37 InitializeTestMatrix(&A); |
| 38 |
| 39 Transform B = CreateFlattenedTransform(A); |
| 40 |
| 41 EXPECT_ROW1_EQ(10, 14, 0, 22, B); |
| 42 EXPECT_ROW2_EQ(11, 15, 0, 23, B); |
| 43 EXPECT_ROW3_EQ(0, 0, 1, 0, B); |
| 44 EXPECT_ROW4_EQ(13, 17, 0, 25, B); |
| 45 |
| 46 // CreateFlattenedTransform should not have changed the original matrix. |
| 47 EXPECT_ROW1_EQ(10, 14, 18, 22, A); |
| 48 EXPECT_ROW2_EQ(11, 15, 19, 23, A); |
| 49 EXPECT_ROW3_EQ(12, 16, 20, 24, A); |
| 50 EXPECT_ROW4_EQ(13, 17, 21, 25, A); |
| 51 |
| 52 // This version of the flatten operation should modify the matrix in-place. |
| 53 FlattenTransformTo2d(A); |
| 54 EXPECT_ROW1_EQ(10, 14, 0, 22, A); |
| 55 EXPECT_ROW2_EQ(11, 15, 0, 23, A); |
| 56 EXPECT_ROW3_EQ(0, 0, 1, 0, A); |
| 57 EXPECT_ROW4_EQ(13, 17, 0, 25, A); |
| 58 } |
| 59 |
| 60 TEST(TransformUtilTest, verifyCreateGfxTransformForAllElements) |
| 61 { |
| 62 Transform transform = CreateGfxTransform( |
| 63 1, 2, 3, 4, |
| 64 5, 6, 7, 8, |
| 65 9, 10, 11, 12, |
| 66 13, 14, 15, 16); |
| 67 |
| 68 EXPECT_ROW1_EQ(1, 5, 9, 13, transform); |
| 69 EXPECT_ROW2_EQ(2, 6, 10, 14, transform); |
| 70 EXPECT_ROW3_EQ(3, 7, 11, 15, transform); |
| 71 EXPECT_ROW4_EQ(4, 8, 12, 16, transform); |
| 72 } |
| 73 |
| 74 TEST(TransformUtilTest, verifyCreateGfxTransformFor2dElements) |
| 75 { |
| 76 Transform transform = CreateGfxTransform(1, 2, 3, 4, 5, 6); |
| 77 EXPECT_ROW1_EQ(1, 3, 0, 5, transform); |
| 78 EXPECT_ROW2_EQ(2, 4, 0, 6, transform); |
| 79 EXPECT_ROW3_EQ(0, 0, 1, 0, transform); |
| 80 EXPECT_ROW4_EQ(0, 0, 0, 1, transform); |
| 81 } |
| 82 |
33 } // namespace | 83 } // namespace |
34 } // namespace gfx | 84 } // namespace gfx |
OLD | NEW |