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

Side by Side Diff: cc/output/filter_operations_unittest.cc

Issue 16968002: Move implementation of WebFilterOperations into cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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 "cc/output/filter_operations.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7 #include "ui/gfx/point.h"
8
9 namespace cc {
10 namespace {
11
12 TEST(FilterOperationsTest, GetOutsetsBlur) {
13 FilterOperations ops;
14 ops.Append(FilterOperation::CreateBlurFilter(20));
15 int top, right, bottom, left;
16 top = right = bottom = left = 0;
17 ops.GetOutsets(&top, &right, &bottom, &left);
18 EXPECT_EQ(57, top);
19 EXPECT_EQ(57, right);
20 EXPECT_EQ(57, bottom);
21 EXPECT_EQ(57, left);
22 }
23
24 TEST(FilterOperationsTest, GetOutsetsDropShadow) {
25 FilterOperations ops;
26 ops.Append(FilterOperation::CreateDropShadowFilter(gfx::Point(3, 8), 20, 0));
27 int top, right, bottom, left;
28 top = right = bottom = left = 0;
29 ops.GetOutsets(&top, &right, &bottom, &left);
30 EXPECT_EQ(49, top);
31 EXPECT_EQ(60, right);
32 EXPECT_EQ(65, bottom);
33 EXPECT_EQ(54, left);
34 }
35
36 #define SAVE_RESTORE_AMOUNT(Type, a) \
37 { \
38 FilterOperation op = FilterOperation::Create##Type##Filter(a); \
39 EXPECT_EQ(FilterOperation::FilterType##Type, op.type()); \
40 EXPECT_EQ(a, op.amount()); \
41 \
42 FilterOperation op2 = FilterOperation::CreateEmptyFilter(); \
43 op2.set_type(FilterOperation::FilterType##Type); \
44 \
45 EXPECT_NE(a, op2.amount()); \
46 \
47 op2.set_amount(a); \
48 \
49 EXPECT_EQ(FilterOperation::FilterType##Type, op2.type()); \
50 EXPECT_EQ(a, op2.amount()); \
51 }
52
53 #define SAVE_RESTORE_OFFSET_AMOUNT_COLOR(Type, a, b, c) \
54 { \
55 FilterOperation op = FilterOperation::Create##Type##Filter(a, b, c); \
56 EXPECT_EQ(FilterOperation::FilterType##Type, op.type()); \
57 EXPECT_EQ(a, op.drop_shadow_offset()); \
58 EXPECT_EQ(b, op.amount()); \
59 EXPECT_EQ(c, op.drop_shadow_color()); \
60 \
61 FilterOperation op2 = FilterOperation::CreateEmptyFilter(); \
62 op2.set_type(FilterOperation::FilterType##Type); \
63 \
64 EXPECT_NE(a, op2.drop_shadow_offset()); \
65 EXPECT_NE(b, op2.amount()); \
66 EXPECT_NE(c, op2.drop_shadow_color()); \
67 \
68 op2.set_drop_shadow_offset(a); \
69 op2.set_amount(b); \
70 op2.set_drop_shadow_color(c); \
71 \
72 EXPECT_EQ(FilterOperation::FilterType##Type, op2.type()); \
73 EXPECT_EQ(a, op2.drop_shadow_offset()); \
74 EXPECT_EQ(b, op2.amount()); \
75 EXPECT_EQ(c, op2.drop_shadow_color()); \
76 }
77
78 #define SAVE_RESTORE_MATRIX(Type, a) \
79 { \
80 FilterOperation op = FilterOperation::Create##Type##Filter(a); \
81 EXPECT_EQ(FilterOperation::FilterType##Type, op.type()); \
82 for (size_t i = 0; i < 20; ++i) \
83 EXPECT_EQ(a[i], op.matrix()[i]); \
84 \
85 FilterOperation op2 = FilterOperation::CreateEmptyFilter(); \
86 op2.set_type(FilterOperation::FilterType##Type); \
87 \
88 for (size_t i = 0; i < 20; ++i) \
89 EXPECT_NE(a[i], op2.matrix()[i]); \
90 \
91 op2.set_matrix(a); \
92 \
93 EXPECT_EQ(FilterOperation::FilterType##Type, op2.type()); \
94 for (size_t i = 0; i < 20; ++i) \
95 EXPECT_EQ(a[i], op.matrix()[i]); \
96 }
97
98 #define SAVE_RESTORE_AMOUNT_INSET(Type, a, b) \
99 { \
100 FilterOperation op = FilterOperation::Create##Type##Filter(a, b); \
101 EXPECT_EQ(FilterOperation::FilterType##Type, op.type()); \
102 EXPECT_EQ(a, op.amount()); \
103 EXPECT_EQ(b, op.zoom_inset()); \
104 \
105 FilterOperation op2 = FilterOperation::CreateEmptyFilter(); \
106 op2.set_type(FilterOperation::FilterType##Type); \
107 \
108 EXPECT_NE(a, op2.amount()); \
109 EXPECT_NE(b, op2.zoom_inset()); \
110 \
111 op2.set_amount(a); \
112 op2.set_zoom_inset(b); \
113 \
114 EXPECT_EQ(FilterOperation::FilterType##Type, op2.type()); \
115 EXPECT_EQ(a, op2.amount()); \
116 EXPECT_EQ(b, op2.zoom_inset()); \
117 }
118
119 TEST(FilterOperationsTest, SaveAndRestore) {
120 SAVE_RESTORE_AMOUNT(Grayscale, 0.6f);
121 SAVE_RESTORE_AMOUNT(Sepia, 0.6f);
122 SAVE_RESTORE_AMOUNT(Saturate, 0.6f);
123 SAVE_RESTORE_AMOUNT(HueRotate, 0.6f);
124 SAVE_RESTORE_AMOUNT(Invert, 0.6f);
125 SAVE_RESTORE_AMOUNT(Brightness, 0.6f);
126 SAVE_RESTORE_AMOUNT(Contrast, 0.6f);
127 SAVE_RESTORE_AMOUNT(Opacity, 0.6f);
128 SAVE_RESTORE_AMOUNT(Blur, 0.6f);
129 SAVE_RESTORE_OFFSET_AMOUNT_COLOR(
130 DropShadow, gfx::Point(3, 4), 0.4f, 0xffffff00);
131
132 SkScalar matrix[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
133 17, 18, 19, 20};
134 SAVE_RESTORE_MATRIX(ColorMatrix, matrix);
135
136 SAVE_RESTORE_AMOUNT_INSET(Zoom, 0.5f, 32);
137 }
138
139 } // namespace
140 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698