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

Side by Side Diff: LayoutTests/svg/dom/script-tests/path-parser.js

Issue 1015433003: Don't handle out-of-range parameters for arcs in UnalteredParsing mode (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 9 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
1 description("This tests the SVG path parser by parsing and then re-serializing v arious paths."); 1 description("This tests the SVG path parser by parsing and then re-serializing v arious paths.");
2 2
3 var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path") ; 3 var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path") ;
4 4
5 var pathProperties = { 5 var pathProperties = {
6 "M": [ "x", "y" ], 6 "M": [ "x", "y" ],
7 "m": [ "x", "y" ], 7 "m": [ "x", "y" ],
8 "L": [ "x", "y" ], 8 "L": [ "x", "y" ],
9 "l": [ "x", "y" ], 9 "l": [ "x", "y" ],
10 "H": [ "x" ], 10 "H": [ "x" ],
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 shouldBe("parsePath('M100,200 a3,4,5,0,1,6,7')", "'M100,200 a3,4,5,0,1,6,7'"); 93 shouldBe("parsePath('M100,200 a3,4,5,0,1,6,7')", "'M100,200 a3,4,5,0,1,6,7'");
94 shouldBe("parsePath('M100,200 a3,4,5,1,0,6,7')", "'M100,200 a3,4,5,1,0,6,7'"); 94 shouldBe("parsePath('M100,200 a3,4,5,1,0,6,7')", "'M100,200 a3,4,5,1,0,6,7'");
95 shouldBe("parsePath('M100,200 a3,4,5,1,1,6,7')", "'M100,200 a3,4,5,1,1,6,7'"); 95 shouldBe("parsePath('M100,200 a3,4,5,1,1,6,7')", "'M100,200 a3,4,5,1,1,6,7'");
96 shouldBe("parsePath('M100,200 a3,4,5,006,7')", "'M100,200 a3,4,5,0,0,6,7'"); 96 shouldBe("parsePath('M100,200 a3,4,5,006,7')", "'M100,200 a3,4,5,0,0,6,7'");
97 shouldBe("parsePath('M100,200 a3,4,5,016,7')", "'M100,200 a3,4,5,0,1,6,7'"); 97 shouldBe("parsePath('M100,200 a3,4,5,016,7')", "'M100,200 a3,4,5,0,1,6,7'");
98 shouldBe("parsePath('M100,200 a3,4,5,106,7')", "'M100,200 a3,4,5,1,0,6,7'"); 98 shouldBe("parsePath('M100,200 a3,4,5,106,7')", "'M100,200 a3,4,5,1,0,6,7'");
99 shouldBe("parsePath('M100,200 a3,4,5,116,7')", "'M100,200 a3,4,5,1,1,6,7'"); 99 shouldBe("parsePath('M100,200 a3,4,5,116,7')", "'M100,200 a3,4,5,1,1,6,7'");
100 shouldBe("parsePath('M100,200 a3,4,5,2,1,6,7')", "'M100,200'"); 100 shouldBe("parsePath('M100,200 a3,4,5,2,1,6,7')", "'M100,200'");
101 shouldBe("parsePath('M100,200 a3,4,5,1,2,6,7')", "'M100,200'"); 101 shouldBe("parsePath('M100,200 a3,4,5,1,2,6,7')", "'M100,200'");
102 102
103 // FIXME: This uses 'If rx = 0 or ry = 0 then this arc is treated as a straight line segment (a "lineto") joining the endpoints.' 103 shouldBe("parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z ')", "'M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 Z'");
104 // I think the SVG DOM should still show the arc segment, fix that!
105 shouldBe("parsePath('M100,200 a0,4,5,0,0,10,0 a4,0,5,0,0,0,10 a0,0,5,0,0,-10,0 z ')", "'M100,200 l10,0 l0,10 l-10,0 Z'");
106 104
107 shouldBe("parsePath('M1,2,3,4')", "'M1,2 L3,4'"); 105 shouldBe("parsePath('M1,2,3,4')", "'M1,2 L3,4'");
108 shouldBe("parsePath('m100,200,3,4')", "'m100,200 l3,4'"); 106 shouldBe("parsePath('m100,200,3,4')", "'m100,200 l3,4'");
109 107
110 shouldBe("parsePath('M 100-200')", "'M100,-200'"); 108 shouldBe("parsePath('M 100-200')", "'M100,-200'");
111 shouldBe("parsePath('M 0.6.5')", "'M0.6,0.5'"); 109 shouldBe("parsePath('M 0.6.5')", "'M0.6,0.5'");
112 110
113 shouldBe("parsePath(' M1,2')", "'M1,2'"); 111 shouldBe("parsePath(' M1,2')", "'M1,2'");
114 shouldBe("parsePath(' M1,2')", "'M1,2'"); 112 shouldBe("parsePath(' M1,2')", "'M1,2'");
115 shouldBe("parsePath('\\tM1,2')", "'M1,2'"); 113 shouldBe("parsePath('\\tM1,2')", "'M1,2'");
116 shouldBe("parsePath('\\nM1,2')", "'M1,2'"); 114 shouldBe("parsePath('\\nM1,2')", "'M1,2'");
117 shouldBe("parsePath('\\rM1,2')", "'M1,2'"); 115 shouldBe("parsePath('\\rM1,2')", "'M1,2'");
118 shouldBe("parsePath('\\vM1,2')", "''"); 116 shouldBe("parsePath('\\vM1,2')", "''");
119 shouldBe("parsePath('xM1,2')", "''"); 117 shouldBe("parsePath('xM1,2')", "''");
120 shouldBe("parsePath('M1,2 ')", "'M1,2'"); 118 shouldBe("parsePath('M1,2 ')", "'M1,2'");
121 shouldBe("parsePath('M1,2\\t')", "'M1,2'"); 119 shouldBe("parsePath('M1,2\\t')", "'M1,2'");
122 shouldBe("parsePath('M1,2\\n')", "'M1,2'"); 120 shouldBe("parsePath('M1,2\\n')", "'M1,2'");
123 shouldBe("parsePath('M1,2\\r')", "'M1,2'"); 121 shouldBe("parsePath('M1,2\\r')", "'M1,2'");
124 shouldBe("parsePath('M1,2\\v')", "'M1,2'"); 122 shouldBe("parsePath('M1,2\\v')", "'M1,2'");
125 shouldBe("parsePath('M1,2x')", "'M1,2'"); 123 shouldBe("parsePath('M1,2x')", "'M1,2'");
126 shouldBe("parsePath('M1,2 L40,0#90')", "'M1,2 L40,0'"); 124 shouldBe("parsePath('M1,2 L40,0#90')", "'M1,2 L40,0'");
127 125
128 shouldBe("parsePath('')", "''"); 126 shouldBe("parsePath('')", "''");
129 shouldBe("parsePath(' ')", "''"); 127 shouldBe("parsePath(' ')", "''");
130 shouldBe("parsePath('x')", "''"); 128 shouldBe("parsePath('x')", "''");
131 shouldBe("parsePath('L1,2')", "''"); 129 shouldBe("parsePath('L1,2')", "''");
132 shouldBe("parsePath('M.1 .2 L.3 .4 .5 .6')", "'M0.1,0.2 L0.3,0.4 L0.5,0.6'"); 130 shouldBe("parsePath('M.1 .2 L.3 .4 .5 .6')", "'M0.1,0.2 L0.3,0.4 L0.5,0.6'");
133 131
134 successfullyParsed = true; 132 successfullyParsed = true;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698