SVG CSS property types with <number> don't support exponents
[WebKit-https.git] / LayoutTests / svg / css / script-tests / scientific-numbers.js
1 description("Test scientific numbers on <length> values for SVG presentation attributes.")
2 createSVGTestCase();
3
4 var text = createSVGElement("text");
5 text.setAttribute("id", "text");
6 text.setAttribute("x", "100px");
7 text.setAttribute("y", "100px");
8 rootSVGElement.appendChild(text);
9
10 function test(valueString, expectedValue) {
11         // Reset baseline-shift to baseline.
12         text.setAttribute("baseline-shift", "baseline");
13         shouldBeEqualToString("getComputedStyle(text).baselineShift", "baseline");
14
15         // Run test
16         text.setAttribute("baseline-shift", valueString);
17         shouldBeEqualToString("getComputedStyle(text).baselineShift", expectedValue);
18 }
19
20 debug("");
21 debug("Test positive exponent values with 'e'");
22 test(".5e2", "50px");
23 test("5e1", "50px");
24 test("0.5e2", "50px");
25 test("+.5e2", "50px");
26 test("+5e1", "50px");
27 test("+0.5e2", "50px");
28 test(".5e+2", "50px");
29 test("5e+1", "50px");
30 test("0.5e+2", "50px");
31
32 debug("");
33 debug("Test positive exponent values with 'E'");
34 test(".5E2", "50px");
35 test("5E1", "50px");
36 test("0.5E2", "50px");
37 test("+.5E2", "50px");
38 test("+5E1", "50px");
39 test("+0.5E2", "50px");
40 test(".5E+2", "50px");
41 test("5E+1", "50px");
42 test("0.5E+2", "50px");
43
44 debug("");
45 debug("Test negative exponent values with 'e'");
46 test("5000e-2", "50px");
47 test("500e-1", "50px");
48 test("+5000e-2", "50px");
49 test("+500e-1", "50px");
50 test("+5000e-2px", "50px");
51 test("+500e-1px", "50px");
52
53 debug("");
54 debug("Test negative exponent values with 'E'");
55 test("5000E-2", "50px");
56 test("500E-1", "50px");
57 test("+5000E-2", "50px");
58 test("+500E-1", "50px");
59 test("+5000.00E-2px", "50px");
60 test("+500E-1px", "50px");
61
62 debug("");
63 debug("Test negative numbers with exponents");
64 test("-.5e2px", "-50px");
65 test("-0.5e2px", "-50px");
66 test("-500e-1px", "-50px");
67
68 debug("");
69 debug("Test if value and 'em' still works");
70 test("50em", "50em");
71
72 debug("");
73 debug("Test if value and 'ex' still works");
74 test("50ex", "50ex");
75
76 debug("");
77 debug("Trailing and leading whitespaces");
78 test("       5e1", "50px");
79 test("5e1      ", "50px");
80
81 debug("");
82 debug("Test behavior on overflow");
83 test("2E+500", "baseline");
84 test("-2E+500", "baseline");
85
86 debug("");
87 debug("Invalid values");
88 test("50e0.0", "baseline");
89 test("50 e0", "baseline");
90 test("50e 0", "baseline");
91 test("50.e0", "baseline");
92
93 var successfullyParsed = true;
94
95 completeTest();