[macOS WK1] ASSERTION FAILED: formData in WebCore::ResourceRequest::doUpdateResourceH...
[WebKit-https.git] / LayoutTests / geometry / DOMRect-001.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4     <title>Geometry Interfaces: DOMRect and DOMRectReadOnly interface tests.</title>
5     <link rel="author" title="Dirk Schulze" href="mailto:simon.fraser@apple.com" />
6     <link rel="help" href="http://www.w3.org/TR/geometry-1/#DOMRect">
7     <link rel="help" href="https://drafts.fxtf.org/geometry/#DOMRect">
8     <script src="../resources/testharness.js"></script>
9     <script src="../resources/testharnessreport.js"></script>
10 </head>
11 <body>
12     <p>Test DOMRect and DOMRectReadOnly interfaces</p>
13     <div id="log"></div>
14     <script>
15         test(function() {
16             checkDOMRect(new DOMRectReadOnly(), { x:0, y:0, width:0, height:0 });
17         },'testDOMRectReadOnlyConstructor0');
18         test(function() {
19             var x = 10;
20             var y = 12;
21             var width = 99;
22             var height = 102;
23             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
24         },'testDOMRectReadOnlyConstructor4Args');
25         test(function() {
26             var x = 10;
27             var y = 12;
28             var width = 99;
29             var height = 102;
30             checkDOMRect(new DOMRectReadOnly(x), { x, y:0, width:0, height:0 });
31         },'testDOMRectReadOnlyConstructor1Arg');
32         test(function() {
33             var x = 10;
34             var y = 12;
35             var width = 99;
36             var height = 102;
37             checkDOMRect(new DOMRectReadOnly(x, y), { x, y, width:0, height:0 });
38         },'testDOMRectReadOnlyConstructor2Args');
39         test(function() {
40             var x = 10;
41             var y = 12;
42             var width = 99;
43             var height = 102;
44             checkDOMRect(new DOMRectReadOnly(x, y, width), { x, y, width, height:0 });
45         },'testDOMRectReadOnlyConstructor3Args');
46         test(function() {
47             x = Math.PI;
48             y = Math.SQRT2;
49             width = Math.E;
50             height = Math.LN10;
51             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
52         },'testDOMRectReadOnlyConstructorDoublePrecision');
53         test(function() {
54             var x = 10;
55             var y = 12;
56             var width = -99;
57             var height = 102;
58             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
59         },'testDOMRectReadOnlyConstructorNegativeWidth');
60         test(function() {
61             var x = 10;
62             var y = 12;
63             var width = 99;
64             var height = -102;
65             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
66         },'testDOMRectReadOnlyConstructorNegativeHeight');
67         test(function() {
68             var x = 1;
69             var y = NaN;
70             var width = NaN;
71             var height = -200;
72             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
73         },'testDOMRectReadOnlyConstructorNaN1');
74         test(function() {
75             var x = NaN;
76             var y = 2;
77             var width = 99;
78             var height = NaN;
79             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
80         },'testDOMRectReadOnlyConstructorNaN2');
81         test(function() {
82             var x = Infinity;
83             var y = -102;
84             var width = 304;
85             var height = -Infinity;
86             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
87         },'testDOMRectReadOnlyConstructorInf1');
88         test(function() {
89             var x = 23;
90             var y = -Infinity;
91             var width = Infinity;
92             var height = -99;
93             checkDOMRect(new DOMRectReadOnly(x, y, width, height), { x, y, width, height });
94         },'testDOMRectReadOnlyConstructorInf2');
95         test(function() {
96             var x = 10;
97             var y = 12;
98             var width = 99;
99             var height = 102;
100             var domRect = new DOMRectReadOnly(x, y, width, height);
101             domRect.x = 1200;
102             domRect.height = 300;
103             checkDOMRect(domRect, { x, y, width, height });
104         },'testDOMRectReadOnlyIsReadOnly');
105         test(function() {
106             var x = 10;
107             var y = 12;
108             var width = 99;
109             var height = 102;
110             checkDOMRect(DOMRectReadOnly.fromRect({ x, y, width, height }), { x, y, width, height });
111         },'testDOMRectReadOnlyFromRect');
112         test(function() {
113             assert_true(DOMRectReadOnly.fromRect({ x:11, y:22, width:33, height:44 }) instanceof DOMRectReadOnly)
114         },'testFromRectReturnsDOMRectReadOnly');
115         test(function() {
116             var x = 10;
117             var width = 99;
118             checkDOMRect(DOMRectReadOnly.fromRect({ x, width }), { x, y:0, width, height:0 });
119         },'testDOMRectReadOnlyFromRectPartial');
120         test(function() {
121             var x = 10;
122             var y = 12;
123             var width = 99;
124             var height = -102;
125             checkDOMRect(DOMRectReadOnly.fromRect({ x, y, width, height }).toJSON(), { x, y, width, height });
126         },'testDOMRectReadOnlySerialization');
127
128         test(function() {
129             var x = 10;
130             var y = 12;
131             var width = 99;
132             var height = 102;
133             checkDOMRect(new DOMRect(x, y, width, height), { x, y, width, height });
134         },'testDOMRectConstructor0');
135         test(function() {
136             var x = 10;
137             var y = 12;
138             var width = 99;
139             var height = 102;
140             var domRect = new DOMRect(x, y, width, height);
141             domRect.x = 1200;
142             domRect.height = 300;
143             checkDOMRect(domRect, { x:1200, y, width, height:300 });
144         },'testDOMRectIsWritable');
145         test(function() {
146             var x = 10;
147             var y = 12;
148             var width = 99;
149             var height = 102;
150             var domRect = new DOMRect(x, y, width, height);
151             domRect.x = NaN;
152             domRect.height = NaN;
153             checkDOMRect(domRect, { x:NaN, y:12, width:99, height:NaN });
154         },'testDOMRectIsWritableWithNaN');
155         test(function() {
156             assert_true(DOMRect.fromRect({ x:11, y:22, width:33, height:44 }) instanceof DOMRect)
157         },'testFromRectReturnsDOMRect');
158         test(function() {
159             var x = 10;
160             var y = 12;
161             var width = 99;
162             var height = 102;
163             checkDOMRect(DOMRect.fromRect({ x, y, width, height }), { x, y, width, height });
164         },'testDOMRectFromRect');
165         test(function() {
166             var x = 10;
167             var y = 12;
168             var width = 99;
169             var height = -102;
170             checkDOMRect(DOMRect.fromRect({ x, y, width, height }).toJSON(), { x, y, width, height });
171         },'testDOMRectSerialization');
172
173         function checkDOMRect(r, exp) {
174             assert_equals(r.x, exp.x, "Expected value for x is " + exp.x);
175             assert_equals(r.y, exp.y, "Expected value for y is " + exp.y);
176             assert_equals(r.width, exp.width, "Expected value for width is " + exp.width);
177             assert_equals(r.height, exp.height, "Expected value for height is " + exp.height);
178
179             assert_equals(r.left, Math.min(exp.x, exp.x + exp.width), "Expected value for left is " + Math.min(exp.x, exp.x + exp.width));
180             assert_equals(r.right, Math.max(exp.x, exp.x + exp.width), "Expected value for right is " + Math.max(exp.x, exp.x + exp.width));
181             assert_equals(r.top, Math.min(exp.y, exp.y + exp.height), "Expected value for top is " + Math.min(exp.y, exp.y + exp.height));
182             assert_equals(r.bottom, Math.max(exp.y, exp.y + exp.height), "Expected value for bottom is " + Math.max(exp.y, exp.y + exp.height));
183         }
184     </script>
185 </body>
186 </html>