1 /*
2  *  Copyright (c) 2016 Dmitry Kazakov <dimula73@gmail.com>
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  */
18 
19 #ifndef TESTSVGPARSER_H
20 #define TESTSVGPARSER_H
21 
22 #include <QtTest>
23 
24 class TestSvgParser : public QObject
25 {
26     Q_OBJECT
27 private Q_SLOTS:
28 
29     void testUnitPx();
30     void testUnitPxResolution();
31     void testUnitPt();
32     void testUnitIn();
33     void testUnitPercentInitial();
34     void testScalingViewport();
35     void testScalingViewportKeepMeet1();
36     void testScalingViewportKeepMeet2();
37     void testScalingViewportKeepMeetAlign();
38     void testScalingViewportKeepSlice1();
39     void testScalingViewportKeepSlice2();
40     void testScalingViewportResolution();
41     void testScalingViewportPercentInternal();
42     void testParsePreserveAspectRatio();
43     void testParseTransform();
44 
45     void testScalingViewportTransform();
46     void testTransformNesting();
47     void testTransformNestingGroups();
48     void testTransformRotation1();
49     void testTransformRotation2();
50 
51     void testRenderStrokeNone();
52     void testRenderStrokeColorName();
53     void testRenderStrokeColorHex3();
54     void testRenderStrokeColorHex6();
55     void testRenderStrokeColorRgbValues();
56     void testRenderStrokeColorRgbPercent();
57     void testRenderStrokeColorCurrent();
58     void testRenderStrokeColorNonexistentIri();
59 
60     void testRenderStrokeWidth();
61     void testRenderStrokeZeroWidth();
62     void testRenderStrokeOpacity();
63 
64     void testRenderStrokeJointRound();
65     void testRenderStrokeLinecap();
66     void testRenderStrokeMiterLimit();
67 
68     void testRenderStrokeDashArrayEven();
69     void testRenderStrokeDashArrayEvenOffset();
70     void testRenderStrokeDashArrayOdd();
71     void testRenderStrokeDashArrayRelative();
72 
73 
74     void testRenderFillDefault();
75     void testRenderFillRuleNonZero();
76     void testRenderFillRuleEvenOdd();
77     void testRenderFillOpacity();
78 
79     void testRenderDisplayAttribute();
80     void testRenderVisibilityAttribute();
81 
82     void testRenderVisibilityInheritance();
83     void testRenderDisplayInheritance();
84 
85     void testRenderStrokeWithInlineStyle();
86 
87     void testIccColor();
88     void testRenderFillLinearGradientRelativePercent();
89     void testRenderFillLinearGradientRelativePortion();
90     void testRenderFillLinearGradientUserCoord();
91     void testRenderFillLinearGradientStopPortion();
92     void testRenderFillLinearGradientTransform();
93     void testRenderFillLinearGradientTransformUserCoord();
94     void testRenderFillLinearGradientRotatedShape();
95     void testRenderFillLinearGradientRotatedShapeUserCoord();
96 
97     void testRenderFillRadialGradient();
98     void testRenderFillRadialGradientUserCoord();
99 
100     void testRenderFillLinearGradientUserCoordPercent();
101 
102     void testRenderStrokeLinearGradient();
103 
104     void testRenderMeshGradient_bilinear_1by1_UserCoord();
105     void testRenderMeshGradient_bicubic_1by1_UserCoord();
106     void testRenderMeshGradient_bilinear_2by2_UserCoord();
107     void testRenderMeshGradient_bicubic_2by2_UserCoord();
108     void testRenderMeshGradient_bilinear_1by1_Obb();
109     void testRenderMeshGradient_bicubic_2by2_Obb();
110     void testRenderMeshGradient_MeshTransform_UserCoord();
111     void testRenderMeshGradient_ShapeTransform_UserCoord();
112     void testRenderMeshGradient_transparent();
113     void testRenderMeshGradient_reversed();
114     void testRenderMeshGradient_MeshTransform_Obb();
115     void testRenderMeshGradient_ShapeTransform_Obb();
116 
117     void testManualRenderPattern_ContentUser_RefObb();
118     void testManualRenderPattern_ContentObb_RefObb();
119     void testManualRenderPattern_ContentUser_RefUser();
120 
121     void testManualRenderPattern_ContentObb_RefObb_Transform_Rotate();
122 
123     void testManualRenderPattern_ContentView_RefObb();
124 
125     void testManualRenderPattern_ContentView_RefUser();
126 
127     void testRenderPattern_r_User_c_User();
128     void testRenderPattern_InfiniteRecursionWhenInherited();
129     void testRenderPattern_r_User_c_View();
130     void testRenderPattern_r_User_c_Obb();
131 
132     void testRenderPattern_r_User_c_View_Rotated();
133     void testRenderPattern_r_Obb_c_View_Rotated();
134 
135     void testKoClipPathRendering();
136     void testKoClipPathRelativeRendering();
137 
138     void testRenderClipPath_User();
139     void testRenderClipPath_Obb();
140     void testRenderClipPath_Obb_Transform();
141 
142     void testRenderClipMask_Obb();
143     void testRenderClipMaskOnGroup_Obb();
144     void testRenderClipMask_User_Clip_Obb();
145     void testRenderClipMask_User_Clip_User();
146 
147     void testRenderImage_AspectDefault();
148     void testRenderImage_AspectNone();
149     void testRenderImage_AspectMeet();
150 
151     void testRectShapeRoundUniformX();
152     void testRectShapeRoundUniformY();
153     void testRectShapeRoundXY();
154     void testRectShapeRoundXYOverflow();
155 
156     void testCircleShape();
157     void testEllipseShape();
158     void testLineShape();
159     void testPolylineShape();
160     void testPolygonShape();
161 
162     void testPathShape();
163 
164     void testDefsHidden();
165     void testDefsUseInheritance();
166     void testUseWithoutDefs();
167 
168     void testMarkersAutoOrientation();
169     void testMarkersAutoOrientationScaled();
170     void testMarkersAutoOrientationScaledUserCoordinates();
171     void testMarkersCustomOrientation();
172 
173     void testMarkersDifferent();
174 
175     void testGradientRecoveringTransform();
176     void testMarkersOnClosedPath();
177     void testMarkersAngularUnits();
178 
179     void testSodipodiArcShape();
180     void testSodipodiArcShapeOpen();
181     void testKritaChordShape();
182     void testSodipodiChordShape();
183 
184     void testMarkersFillAsShape();
185 private:
186 
187 };
188 
189 #endif // TESTSVGPARSER_H
190