| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>DOMQuad's handling of NaN in getBounds()</title> |
| <link rel=help href="https://drafts.fxtf.org/geometry/#dom-domquad-getbounds"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| "use strict"; |
| |
| const testCases = [ |
| { |
| name: "x coordinate is NaN", |
| idx: 0, |
| exp: { |
| x: NaN, |
| y: 0, |
| width: 0, |
| height: 0, |
| top: 0, |
| bottom: 0, |
| left: NaN, |
| right: NaN |
| } |
| }, |
| { |
| name: "y coordinate is NaN", |
| idx: 1, |
| exp: { |
| x: 0, |
| y: NaN, |
| width: 0, |
| height: 0, |
| top: NaN, |
| bottom: NaN, |
| left: 0, |
| right: 0 |
| } |
| }, |
| { |
| name: "width is NaN", |
| idx: 2, |
| exp: { |
| x: 0, |
| y: 0, |
| width: NaN, |
| height: 0, |
| top: 0, |
| bottom: 0, |
| left: NaN, |
| right: NaN |
| } |
| }, |
| { |
| name: "height is NaN", |
| idx: 3, |
| exp: { |
| x: 0, |
| y: 0, |
| width: 0, |
| height: NaN, |
| top: NaN, |
| bottom: NaN, |
| left: 0, |
| right: 0 |
| } |
| }, |
| ]; |
| |
| for (const Rect of [DOMRect, DOMRectReadOnly]) { |
| for (const testCase of testCases) { |
| test(() => { |
| const args = [0, 0, 0, 0]; |
| args[testCase.idx] = NaN; |
| const rect = new Rect(...args); |
| assert_object_equals(rect.toJSON(), testCase.exp); |
| }, `${Rect.name}'s ${testCase.name}`); |
| } |
| } |
| </script> |