summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html')
-rw-r--r--testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html44
1 files changed, 44 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html b/testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html
new file mode 100644
index 0000000000..33604e3c67
--- /dev/null
+++ b/testing/web-platform/tests/css/geometry/DOMMatrix-newobject.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<title>Geometry Interfaces: DOMMatrix and DOMMatrixReadOnly [NewObject] methods</title>
+<link rel="help" href="https://drafts.fxtf.org/geometry/#DOMMatrix">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+function getReturnType(method) {
+ switch(method) {
+ case "transformPoint": return "DOMPoint"; break;
+ case "toFloat32Array": return "Float32Array"; break;
+ case "toFloat64Array": return "Float64Array"; break;
+ default: return "DOMMatrix"; break;
+ }
+}
+["DOMMatrix", "DOMMatrixReadOnly"].forEach((constr) => {
+ ["translate",
+ "scale",
+ "scale3d",
+ "rotate",
+ "rotateFromVector",
+ "rotateAxisAngle",
+ "skewX",
+ "skewY",
+ "multiply",
+ "flipX",
+ "flipY",
+ "inverse",
+ "transformPoint",
+ "toFloat32Array",
+ "toFloat64Array"].forEach((method) => {
+ test(() => {
+ const matrix = new self[constr]();
+ const a = matrix[method]();
+ const b = matrix[method]();
+ assert_class_string(matrix, constr, 'matrix');
+ assert_class_string(a, getReturnType(method), 'a');
+ assert_class_string(b, getReturnType(method), 'b');
+ assert_not_equals(a, b, 'a !== b');
+ assert_not_equals(a, matrix, 'a !== matrix');
+ assert_not_equals(b, matrix, 'b !== matrix');
+ }, `${constr} ${method}`);
+ });
+});
+</script>