OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <meta charset="utf-8"> |
3 <head> | 3 |
4 <title>Geometry Interfaces: DOMRect</title> | 4 <title>Geometry Interfaces: DOMRect</title> |
5 <script src="../../resources/js-test.js"></script> | 5 <link rel="help" href="https://drafts.fxtf.org/geometry/#domrect"> |
6 </head> | 6 <script src="../../resources/testharness.js"></script> |
7 <body> | 7 <script src="../../resources/testharnessreport.js"></script> |
| 8 <script src="./resources/geometry-interfaces-test-helpers.js"></script> |
8 <script> | 9 <script> |
| 10 'use strict'; |
9 | 11 |
10 debug("# DOMRect()"); | 12 test(() => { |
11 var rect = new DOMRect(); | 13 var rect = new DOMRect(); |
12 shouldBe("rect.x", "0"); | 14 assert_dom_rect_equals(rect, [0, 0, 0, 0, 0, 0, 0, 0]); |
13 shouldBe("rect.y", "0"); | 15 }, 'DOMRect constructor without parameter'); |
14 shouldBe("rect.width", "0"); | |
15 shouldBe("rect.height", "0"); | |
16 shouldBe("rect.top", "0"); | |
17 shouldBe("rect.right", "0"); | |
18 shouldBe("rect.bottom", "0"); | |
19 shouldBe("rect.left", "0"); | |
20 shouldBe("rect.top", "rect.y"); | |
21 shouldBe("rect.right", "rect.x + rect.width"); | |
22 shouldBe("rect.bottom", "rect.y + rect.height"); | |
23 shouldBe("rect.left", "rect.x"); | |
24 debug(""); | |
25 | 16 |
26 debug("# DOMRect(10)"); | 17 test(() => { |
27 rect = new DOMRect(10); | 18 var rect = new DOMRect(10); |
28 shouldBe("rect.x", "10"); | 19 assert_dom_rect_equals(rect, [10, 0, 0, 0, 0, 10, 0, 10]); |
29 shouldBe("rect.y", "0"); | 20 }, 'DOMRect constructor with x parameter'); |
30 shouldBe("rect.width", "0"); | |
31 shouldBe("rect.height", "0"); | |
32 shouldBe("rect.top", "0"); | |
33 shouldBe("rect.right", "10"); | |
34 shouldBe("rect.bottom", "0"); | |
35 shouldBe("rect.left", "10"); | |
36 shouldBe("rect.top", "rect.y"); | |
37 shouldBe("rect.right", "rect.x + rect.width"); | |
38 shouldBe("rect.bottom", "rect.y + rect.height"); | |
39 shouldBe("rect.left", "rect.x"); | |
40 debug(""); | |
41 | 21 |
42 debug("# DOMRect(10, 20)"); | 22 test(() => { |
43 rect = new DOMRect(10, 20); | 23 var rect = new DOMRect(10, 20); |
44 shouldBe("rect.x", "10"); | 24 assert_dom_rect_equals(rect, [10, 20, 0, 0, 20, 10, 20, 10]); |
45 shouldBe("rect.y", "20"); | 25 }, 'DOMRect constructor with x, y parameters'); |
46 shouldBe("rect.width", "0"); | |
47 shouldBe("rect.height", "0"); | |
48 shouldBe("rect.top", "20"); | |
49 shouldBe("rect.right", "10"); | |
50 shouldBe("rect.bottom", "20"); | |
51 shouldBe("rect.left", "10"); | |
52 shouldBe("rect.top", "rect.y"); | |
53 shouldBe("rect.right", "rect.x + rect.width"); | |
54 shouldBe("rect.bottom", "rect.y + rect.height"); | |
55 shouldBe("rect.left", "rect.x"); | |
56 debug(""); | |
57 | 26 |
58 debug("# DOMRect(10, 20, 80)"); | 27 test(() => { |
59 rect = new DOMRect(10, 20, 80); | 28 var rect = new DOMRect(10, 20, 80); |
60 shouldBe("rect.x", "10"); | 29 assert_dom_rect_equals(rect, [10, 20, 80, 0, 20, 90, 20, 10]); |
61 shouldBe("rect.y", "20"); | 30 }, 'DOMRect constructor with x, y, width parameters'); |
62 shouldBe("rect.width", "80"); | |
63 shouldBe("rect.height", "0"); | |
64 shouldBe("rect.top", "20"); | |
65 shouldBe("rect.right", "90"); | |
66 shouldBe("rect.bottom", "20"); | |
67 shouldBe("rect.left", "10"); | |
68 shouldBe("rect.top", "rect.y"); | |
69 shouldBe("rect.right", "rect.x + rect.width"); | |
70 shouldBe("rect.bottom", "rect.y + rect.height"); | |
71 shouldBe("rect.left", "rect.x"); | |
72 debug(""); | |
73 | 31 |
74 debug("# DOMRect(10, 20, 80, 50)"); | 32 test(() => { |
75 rect = new DOMRect(10, 20, 80, 50); | 33 var rect = new DOMRect(10, 20, 80, 50); |
76 shouldBe("rect.x", "10"); | 34 assert_dom_rect_equals(rect, [10, 20, 80, 50, 20, 90, 70, 10]); |
77 shouldBe("rect.y", "20"); | 35 }, 'DOMRect constructor with x, y, width, height parameters'); |
78 shouldBe("rect.width", "80"); | |
79 shouldBe("rect.height", "50"); | |
80 shouldBe("rect.top", "20"); | |
81 shouldBe("rect.right", "90"); | |
82 shouldBe("rect.bottom", "70"); | |
83 shouldBe("rect.left", "10"); | |
84 shouldBe("rect.top", "rect.y"); | |
85 shouldBe("rect.right", "rect.x + rect.width"); | |
86 shouldBe("rect.bottom", "rect.y + rect.height"); | |
87 shouldBe("rect.left", "rect.x"); | |
88 debug(""); | |
89 | 36 |
90 debug("# DOMRect setter"); | 37 test(() => { |
91 rect.x = 30; | 38 var rect = new DOMRect(10, 20, -80, -50); |
92 shouldBe("rect.x", "30"); | 39 assert_dom_rect_equals(rect, [10, 20, -80, -50, -30, 10, 20, -70]); |
93 shouldBe("rect.left", "30"); | 40 }, 'DOMRect constructor with negative width and height parameters'); |
94 shouldBe("rect.width", "80"); | |
95 shouldBe("rect.right", "110"); | |
96 rect.y = -10; | |
97 shouldBe("rect.y", "-10"); | |
98 shouldBe("rect.top", "-10"); | |
99 shouldBe("rect.height", "50"); | |
100 shouldBe("rect.bottom", "40"); | |
101 rect.width = 20; | |
102 shouldBe("rect.x", "30"); | |
103 shouldBe("rect.left", "30"); | |
104 shouldBe("rect.width", "20"); | |
105 shouldBe("rect.right", "50"); | |
106 rect.height = 40; | |
107 shouldBe("rect.y", "-10"); | |
108 shouldBe("rect.top", "-10"); | |
109 shouldBe("rect.height", "40"); | |
110 shouldBe("rect.bottom", "30"); | |
111 debug(""); | |
112 | 41 |
113 debug("# DOMRect(10, 20, -80, -50) negative width and height"); | 42 test(() => { |
114 rect = new DOMRect(10, 20, -80, -50); | 43 var rect = new DOMRect(10, 20, 80, 50); |
115 shouldBe("rect.x", "10"); | 44 rect.x = 30; |
116 shouldBe("rect.y", "20"); | 45 assert_dom_rect_equals(rect, [30, 20, 80, 50, 20, 110, 70, 30]); |
117 shouldBe("rect.width", "-80"); | 46 rect.y = -10; |
118 shouldBe("rect.height", "-50"); | 47 assert_dom_rect_equals(rect, [30, -10, 80, 50, -10, 110, 40, 30]); |
119 shouldBe("rect.top", "-30"); | 48 rect.width = 20; |
120 shouldBe("rect.right", "10"); | 49 assert_dom_rect_equals(rect, [30, -10, 20, 50, -10, 50, 40, 30]); |
121 shouldBe("rect.bottom", "20"); | 50 rect.height = 40; |
122 shouldBe("rect.left", "-70"); | 51 assert_dom_rect_equals(rect, [30, -10, 20, 40, -10, 50, 30, 30]); |
123 shouldBe("rect.top", "rect.y + rect.height"); | 52 }, 'DOMRect setter'); |
124 shouldBe("rect.right", "rect.x"); | |
125 shouldBe("rect.bottom", "rect.y"); | |
126 shouldBe("rect.left", "rect.x + rect.width"); | |
127 debug(""); | |
128 | 53 |
129 debug("# DOMRectReadOnly(10, 20, 80, 50)"); | 54 test(() => { |
130 rect = new DOMRectReadOnly(10, 20, 80, 50); | 55 var rect = new DOMRectReadOnly(10, 20, 80, 50); |
131 shouldBe("rect.x", "10"); | 56 assert_dom_rect_equals(rect, [10, 20, 80, 50, 20, 90, 70, 10]); |
132 shouldBe("rect.y", "20"); | 57 }, 'DOMRectReadOnly constructor with x, y, width, height parameters'); |
133 shouldBe("rect.width", "80"); | |
134 shouldBe("rect.height", "50"); | |
135 shouldBe("rect.top", "20"); | |
136 shouldBe("rect.right", "90"); | |
137 shouldBe("rect.bottom", "70"); | |
138 shouldBe("rect.left", "10"); | |
139 shouldBe("rect.top", "rect.y"); | |
140 shouldBe("rect.right", "rect.x + rect.width"); | |
141 shouldBe("rect.bottom", "rect.y + rect.height"); | |
142 shouldBe("rect.left", "rect.x"); | |
143 debug(""); | |
144 | 58 |
145 debug("# DOMRectReadOnly readonly test"); | 59 test(() => { |
146 rect.x = 40; | 60 var rect = new DOMRectReadOnly(10, 20, 80, 50); |
147 rect.y = 90; | 61 assert_readonly(rect, 'x'); |
148 rect.width = 200; | 62 assert_readonly(rect, 'y'); |
149 rect.height = 200; | 63 assert_readonly(rect, 'width'); |
150 shouldBe("rect.x", "10"); | 64 assert_readonly(rect, 'height'); |
151 shouldBe("rect.y", "20"); | 65 }, 'DOMRectReadOnly readonly test'); |
152 shouldBe("rect.width", "80"); | |
153 shouldBe("rect.height", "50"); | |
154 shouldBe("rect.top", "20"); | |
155 shouldBe("rect.right", "90"); | |
156 shouldBe("rect.bottom", "70"); | |
157 shouldBe("rect.left", "10"); | |
158 shouldBe("rect.top", "rect.y"); | |
159 shouldBe("rect.right", "rect.x + rect.width"); | |
160 shouldBe("rect.bottom", "rect.y + rect.height"); | |
161 shouldBe("rect.left", "rect.x"); | |
162 debug(""); | |
163 | 66 |
164 </script> | 67 </script> |
165 </body> | |
166 </html> | |
OLD | NEW |