diff options
Diffstat (limited to 'testing/web-platform/tests/css/geometry/DOMPoint-002.html')
-rw-r--r-- | testing/web-platform/tests/css/geometry/DOMPoint-002.html | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/geometry/DOMPoint-002.html b/testing/web-platform/tests/css/geometry/DOMPoint-002.html new file mode 100644 index 0000000000..96276d86f5 --- /dev/null +++ b/testing/web-platform/tests/css/geometry/DOMPoint-002.html @@ -0,0 +1,177 @@ +<!DOCTYPE html> +<html><head> + <title>Geometry Interfaces: DOMPoint and DOMPointReadOnly interface tests</title> + <link href="mailto:hs1217.lee@samsung.com" rel="author" title="Hwanseung Lee"> + <link href="https://drafts.fxtf.org/geometry-1/#DOMPoint" rel="help"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> +<body> + <p>Test DOMPoint and DOMPointReadOnly interfaces</p> + <div id="log"></div> + <script> + function getMatrixTransform(matrix, point) { + var x = point.x * matrix.m11 + point.y * matrix.m21 + point.z * matrix.m31 + point.w * matrix.m41; + var y = point.x * matrix.m12 + point.y * matrix.m22 + point.z * matrix.m32 + point.w * matrix.m42; + var w = point.x * matrix.m13 + point.y * matrix.m23 + point.z * matrix.m33 + point.w * matrix.m43; + var z = point.x * matrix.m14 + point.y * matrix.m24 + point.z * matrix.m34 + point.w * matrix.m44; + return new DOMPoint(x, y, w, z) + } + + test(function() { + checkDOMPoint(new DOMPoint(), {x:0, y:0, z:0, w:1}); + },'test DOMPoint Constructor no args'); + test(function() { + checkDOMPoint(new DOMPoint(1), {x:1, y:0, z:0, w:1}); + },'test DOMPoint Constructor one args'); + test(function() { + checkDOMPoint(new DOMPoint(1, 2), {x:1, y:2, z:0, w:1}); + },'test DOMPoint Constructor two args'); + test(function() { + checkDOMPoint(new DOMPoint(1, 2, 3), {x:1, y:2, z:3, w:1}); + },'test DOMPoint Constructor three args'); + test(function() { + checkDOMPoint(new DOMPoint(1, 2, 3, 4), {x:1, y:2, z:3, w:4}); + },'test DOMPoint Constructor four args'); + test(function() { + checkDOMPoint(new DOMPoint(1, 2, 3, 4, 5), {x:1, y:2, z:3, w:4}); + },'test DOMPoint Constructor more then four args'); + test(function() { + checkDOMPoint(new DOMPoint(1, undefined), {x:1, y:0, z:0, w:1}); + },'test DOMPoint Constructor with undefined'); + test(function() { + checkDOMPoint(new DOMPoint("a", "b"), {x:NaN, y:NaN, z:0, w:1}); + },'test DOMPoint Constructor with string'); + test(function() { + checkDOMPoint(new DOMPoint({}), {x:NaN, y:0, z:0, w:1}); + },'test DOMPoint Constructor with empty object'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({}), {x:0, y:0, z:0, w:1}); + },'test DOMPoint fromPoint with empty object'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1}), {x:1, y:0, z:0, w:1}); + },'test DOMPoint fromPoint with x'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, y:2}), {x:1, y:2, z:0, w:1}); + },'test DOMPoint fromPoint with x, y'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, y:2, z:3}), {x:1, y:2, z:3, w:1}); + },'test DOMPoint fromPoint with x, y, z'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, y:2, z:3, w:4}), {x:1, y:2, z:3, w:4}); + },'test DOMPoint fromPoint with x, y, z, w'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, y:2, z:3, w:4, v:5}), {x:1, y:2, z:3, w:4}); + },'test DOMPoint fromPoint with x, y, z, w, v'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, z:3}), {x:1, y:0, z:3, w:1}); + },'test DOMPoint fromPoint with x, z'); + test(function() { + checkDOMPoint(DOMPoint.fromPoint({x:1, y: undefined, z:3}), {x:1, y:0, z:3, w:1}); + },'test DOMPoint fromPoint with undefined value'); + test(function() { + var point = new DOMPoint(5, 4); + var matrix = new DOMMatrix([2, 0, 0, 2, 10, 10]); + var result = point.matrixTransform(matrix); + var expected = getMatrixTransform(matrix, point); + checkDOMPoint(result, expected); + },'test DOMPoint matrixTransform'); + test(function() { + var point = new DOMPoint(42, 84); + assert_throws_js(TypeError, function() { + point.matrixTransform({ is2D: true, m33: 1.0000001 }); + }); + },'test DOMPoint matrixTransform with inconsistent input'); + test(function() { + var p = new DOMPoint(0, 0, 0, 1); + p.x = undefined; + p.y = undefined; + p.z = undefined; + p.w = undefined; + checkDOMPoint(p, {x:NaN, y:NaN, z:NaN, w:NaN}); + },'test DOMPoint Attributes undefined'); + test(function() { + var p = new DOMPoint(0, 0, 0, 1); + p.x = NaN; + p.y = Number.POSITIVE_INFINITY; + p.z = Number.NEGATIVE_INFINITY; + p.w = Infinity; + checkDOMPoint(p, {x:NaN, y:Infinity, z:-Infinity, w:Infinity}); + },'test DOMPoint Attributes NaN Infinity'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(), {x:0, y:0, z:0, w:1}); + },'test DOMPointReadOnly Constructor no args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1), {x:1, y:0, z:0, w:1}); + },'test DOMPointReadOnly Constructor one args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1, 2), {x:1, y:2, z:0, w:1}); + },'test DOMPointReadOnly Constructor two args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1, 2, 3), {x:1, y:2, z:3, w:1}); + },'test DOMPointReadOnly Constructor three args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1, 2, 3, 4), {x:1, y:2, z:3, w:4}); + },'test DOMPointReadOnly Constructor four args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1, 2, 3, 4, 5), {x:1, y:2, z:3, w:4}); + },'test DOMPointReadOnly Constructor more then four args'); + test(function() { + checkDOMPoint(new DOMPointReadOnly(1, undefined), {x:1, y:0, z:0, w:1}); + },'test DOMPointReadOnly Constructor with undefined'); + test(function() { + checkDOMPoint(new DOMPointReadOnly("a", "b"), {x:NaN, y:NaN, z:0, w:1}); + },'test DOMPointReadOnly Constructor with string'); + test(function() { + checkDOMPoint(new DOMPointReadOnly({}), {x:NaN, y:0, z:0, w:1}); + },'test DOMPointReadOnly Constructor with object'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({}), {x:0, y:0, z:0, w:1}); + },'test DOMPointReadOnly fromPoint with empty object'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1}), {x:1, y:0, z:0, w:1}); + },'test DOMPointReadOnly fromPoint with x'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, y:2}), {x:1, y:2, z:0, w:1}); + },'test DOMPointReadOnly fromPoint with x, y'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, y:2, z:3}), {x:1, y:2, z:3, w:1}); + },'test DOMPointReadOnly fromPoint with x, y, z'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, y:2, z:3, w:4}), {x:1, y:2, z:3, w:4}); + },'test DOMPointReadOnly fromPoint with x, y, z, w'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, y:2, z:3, w:4, v:5}), {x:1, y:2, z:3, w:4}); + },'test DOMPointReadOnly fromPoint with x, y, z, w, v'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, z:3}), {x:1, y:0, z:3, w:1}); + },'test DOMPointReadOnly fromPoint with x, z'); + test(function() { + checkDOMPoint(DOMPointReadOnly.fromPoint({x:1, y: undefined, z:3}), {x:1, y:0, z:3, w:1}); + },'test DOMPointReadOnly fromPoint with undefined value'); + test(function() { + var point = new DOMPointReadOnly(5, 4); + var matrix = new DOMMatrix([1, 2, 3, 4, 5, 6]); + var result = point.matrixTransform(matrix); + var expected = getMatrixTransform(matrix, point); + checkDOMPoint(result, expected); + },'test DOMPointReadOnly matrixTransform'); + test(function() { + var p = new DOMPointReadOnly(0, 0, 0, 1); + p.x = undefined; + p.y = undefined; + p.z = undefined; + p.w = undefined; + checkDOMPoint(p, {x:0, y:0, z:0, w:1}); + },'test DOMPointReadOnly Attributes undefined'); + + function checkDOMPoint(p, exp) { + assert_equals(p.x, exp.x, "x is not matched"); + assert_equals(p.y, exp.y, "y is not matched"); + assert_equals(p.z, exp.z, "z is not matched"); + assert_equals(p.w, exp.w, "w is not matched"); + } + </script> + + +</body></html> |