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

Side by Side Diff: third_party/WebKit/LayoutTests/svg/dom/SVGLength-px-with-context.html

Issue 2271223002: Convert LayoutTests/svg/dom/SVGLength*.html js-tests.js tests to testharness.js based tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moved length to local Created 4 years, 3 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
OLDNEW
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 1 <!DOCTYPE HTML>
2 <html> 2 <title>SVGLength, converting from 'px' to other units (attached)</title>
3 <head> 3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/js-test.js"></script> 4 <script src="../../resources/testharnessreport.js"></script>
5 </head> 5 <p></p>
6 <body> 6 <script>
7 <p id="description"></p> 7 var cssPixelsPerInch = 96;
8 <div id="console"></div> 8 setup(function() {
9 <script src="script-tests/SVGLength-px-with-context.js"></script> 9 // Setup a real SVG document, so SVGLength can resolve relative units.
10 </body> 10 var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg") ;
11 </html> 11 svgElement.setAttribute("width", "150");
12 svgElement.setAttribute("height", "50");
13 svgElement.setAttribute("viewBox", "0 0 150 50");
14 var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect ");
15 rectElement.setAttribute("style", "visibility: hidden; font-size: 12px; font-f amily: Ahem;");
16 svgElement.appendChild(rectElement);
17 document.querySelector("p").appendChild(svgElement);
18
19 // Extract test information
20 window.length = rectElement.x.baseVal;
21 window.svgWidth = svgElement.width.baseVal.value;
22 window.svgHeight = svgElement.height.baseVal.value;
23 window.fontSize = parseInt(rectElement.style.fontSize);
24 // TODO(shanmuga.m) : // Since calculateXHeight() triggers force layout, relat ive length units are resolved.
25 // So make convertToSpecifiedUnits to update pending style sheet and do relayo ut if needed.
26 window.xHeight = calculateXHeight();
27
28 function calculateXHeight() {
29 // Crude hack to calculate the x-height
30 var divElement = document.createElement("div");
31 divElement.setAttribute("style", "height: 1ex; font-size: 12px; font-family: Ahem;");
32 var pElement = document.querySelector("p");
33 pElement.appendChild(divElement);
34 var xHeight = divElement.offsetHeight;
35 pElement.removeChild(divElement);
36 return xHeight;
37 }
38 });
39
40 test(function() {
41 length.valueAsString = "2px";
42 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_NUMBER);
43 assert_equals(length.valueAsString, "2");
44 assert_equals(length.value, 2);
45 assert_equals(length.valueInSpecifiedUnits, 2);
46 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
47 }, document.title + ", unitless");
48
49 test(function() {
50 length.valueAsString = "2px";
51 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PERCENTAGE);
52 var referenceValue = Number(2 / svgWidth * 100).toFixed(5);
53 assert_equals(length.valueAsString, referenceValue + "%");
54 assert_equals(length.valueInSpecifiedUnits.toFixed(5), referenceValue);
55 assert_equals(length.value.toFixed(1), "2.0");
56 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_PERCENTAGE);
57 }, document.title + ", percentage");
58
59 test(function() {
60 length.valueAsString = "2px";
61 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_EMS);
62 var referenceValue = Number(2 / fontSize).toFixed(6);
63 assert_equals(length.valueAsString, referenceValue + "em");
64 assert_equals(length.valueInSpecifiedUnits.toFixed(6), referenceValue);
65 assert_equals(length.value.toFixed(1), "2.0");
66 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_EMS);
67 }, document.title + ", ems");
68
69 test(function() {
70 length.valueAsString = "2px";
71 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_EXS);
72 var referenceValue = Number(2 / xHeight).toFixed(1);
73 // Don't check valueAsString here, it's unreliable across browsers.
74 assert_equals(length.valueInSpecifiedUnits.toFixed(1), referenceValue);
75 assert_equals(length.value.toFixed(1), "2.0");
76 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_EXS);
77 }, document.title + " , exs");
78
79 test(function() {
80 length.valueAsString = "2px";
81 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_CM);
82 var referenceValue = Number(2 * 2.54 / cssPixelsPerInch).toFixed(7);
83 assert_equals(length.valueAsString, referenceValue + "cm");
84 assert_equals(length.valueInSpecifiedUnits.toFixed(7), referenceValue);
85 assert_equals(length.value.toFixed(1), "2.0");
86 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_CM);
87 }, document.title + ", cm");
88
89 test(function() {
90 length.valueAsString = "2px";
91 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_MM);
92 var referenceValue = Number(2 * 25.4 / cssPixelsPerInch).toFixed(6);
93 assert_equals(length.valueAsString, referenceValue + "mm");
94 assert_equals(length.valueInSpecifiedUnits.toFixed(6), referenceValue);
95 assert_equals(length.value.toFixed(1), "2.0");
96 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_MM);
97 }, document.title + ", mm");
98
99 test(function() {
100 length.valueAsString = "2px";
101 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_IN);
102 var referenceValue = Number(2 / cssPixelsPerInch).toFixed(7);
103 assert_equals(length.valueAsString, referenceValue + "in");
104 assert_equals(length.valueInSpecifiedUnits.toFixed(7), referenceValue);
105 assert_equals(length.value.toFixed(1), "2.0");
106 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_IN);
107 }, document.title + ", in");
108
109 test(function() {
110 length.valueAsString = "2px";
111 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PT);
112 var referenceValue = Number(2 / cssPixelsPerInch * 72);
113 assert_equals(length.valueAsString, referenceValue + "pt");
114 assert_equals(length.valueInSpecifiedUnits, referenceValue);
115 assert_equals(length.value.toFixed(1), "2.0");
116 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_PT);
117 }, document.title + ", pt");
118
119 test(function() {
120 length.valueAsString = "2px";
121 length.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PC);
122 var referenceValue = Number(2 / cssPixelsPerInch * 6).toFixed(3);
123 // Don't check valueAsString here, it's unreliable across browsers.
124 assert_equals(length.valueInSpecifiedUnits.toFixed(3), referenceValue);
125 assert_equals(length.value.toFixed(1), "2.0");
126 assert_equals(length.unitType, SVGLength.SVG_LENGTHTYPE_PC);
127 }, document.title + ", pc");
128 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698