-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[geometry] Add IDL tests for Geometry APIs
This is on top of #5966. Follows w3c/fxtf-drafts#167
- Loading branch information
Showing
4 changed files
with
299 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<!doctype html> | ||
<meta charset=utf-8> | ||
<title>Geometry APIs interface IDL tests</title> | ||
<script src=/resources/testharness.js></script> | ||
<script src=/resources/testharnessreport.js></script> | ||
<script src=/resources/WebIDLParser.js></script> | ||
<script src=/resources/idlharness.js></script> | ||
<script src=interfaces.js></script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
"use strict"; | ||
|
||
var idlArray = new IdlArray(); | ||
|
||
function doTest(idl) { | ||
idlArray.add_idls(idl); | ||
idlArray.add_objects({ | ||
DOMPoint: ["new DOMPoint()"], | ||
DOMRect: ["new DOMRect()"], | ||
DOMMatrix: ["new DOMMatrix()"], | ||
}); | ||
idlArray.test(); | ||
done(); | ||
} | ||
|
||
promise_test(function() { | ||
return fetch("/interfaces/geometry.idl").then(response => response.text()) | ||
.then(doTest); | ||
}, "Test driver"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
"use strict"; | ||
|
||
importScripts("/resources/testharness.js"); | ||
importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js"); | ||
importScripts("interfaces.js"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,267 @@ | ||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, | ||
optional unrestricted double z = 0, optional unrestricted double w = 1), | ||
Exposed=(Window,Worker), | ||
Serializable] | ||
interface DOMPointReadOnly { | ||
[NewObject] static DOMPointReadOnly fromPoint(optional DOMPointInit other); | ||
|
||
readonly attribute unrestricted double x; | ||
readonly attribute unrestricted double y; | ||
readonly attribute unrestricted double z; | ||
readonly attribute unrestricted double w; | ||
|
||
DOMPoint matrixTransform(optional DOMMatrixInit matrix); | ||
|
||
serializer = { attribute }; | ||
}; | ||
|
||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, | ||
optional unrestricted double z = 0, optional unrestricted double w = 1), | ||
Exposed=(Window,Worker), | ||
Serializable, | ||
LegacyWindowAlias=SVGPoint] | ||
interface DOMPoint : DOMPointReadOnly { | ||
[NewObject] static DOMPoint fromPoint(optional DOMPointInit other); | ||
|
||
inherit attribute unrestricted double x; | ||
inherit attribute unrestricted double y; | ||
inherit attribute unrestricted double z; | ||
inherit attribute unrestricted double w; | ||
}; | ||
|
||
dictionary DOMPointInit { | ||
unrestricted double x = 0; | ||
unrestricted double y = 0; | ||
unrestricted double z = 0; | ||
unrestricted double w = 1; | ||
}; | ||
|
||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, | ||
optional unrestricted double width = 0, optional unrestricted double height = 0), | ||
Exposed=(Window,Worker), | ||
Serializable] | ||
interface DOMRectReadOnly { | ||
[NewObject] static DOMRectReadOnly fromRect(optional DOMRectInit other); | ||
|
||
readonly attribute unrestricted double x; | ||
readonly attribute unrestricted double y; | ||
readonly attribute unrestricted double width; | ||
readonly attribute unrestricted double height; | ||
readonly attribute unrestricted double top; | ||
readonly attribute unrestricted double right; | ||
readonly attribute unrestricted double bottom; | ||
readonly attribute unrestricted double left; | ||
|
||
serializer = { attribute }; | ||
}; | ||
|
||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, | ||
optional unrestricted double width = 0, optional unrestricted double height = 0), | ||
Exposed=(Window,Worker), | ||
Serializable, | ||
LegacyWindowAlias=SVGRect] | ||
interface DOMRect : DOMRectReadOnly { | ||
[NewObject] static DOMRect fromRect(optional DOMRectInit other); | ||
|
||
inherit attribute unrestricted double x; | ||
inherit attribute unrestricted double y; | ||
inherit attribute unrestricted double width; | ||
inherit attribute unrestricted double height; | ||
}; | ||
|
||
dictionary DOMRectInit { | ||
unrestricted double x = 0; | ||
unrestricted double y = 0; | ||
unrestricted double width = 0; | ||
unrestricted double height = 0; | ||
}; | ||
|
||
[Constructor(optional DOMPointInit p1, optional DOMPointInit p2, | ||
optional DOMPointInit p3, optional DOMPointInit p4), | ||
Exposed=(Window,Worker), | ||
Serializable] | ||
interface DOMQuad { | ||
[NewObject] static DOMQuad fromRect(optional DOMRectInit other); | ||
[NewObject] static DOMQuad fromQuad(optional DOMQuadInit other); | ||
|
||
[SameObject] readonly attribute DOMPoint p1; | ||
[SameObject] readonly attribute DOMPoint p2; | ||
[SameObject] readonly attribute DOMPoint p3; | ||
[SameObject] readonly attribute DOMPoint p4; | ||
[NewObject] DOMRect getBounds(); | ||
|
||
serializer = { attribute }; | ||
}; | ||
|
||
dictionary DOMQuadInit { | ||
DOMPointInit p1; | ||
DOMPointInit p2; | ||
DOMPointInit p3; | ||
DOMPointInit p4; | ||
}; | ||
|
||
[Constructor(optional (DOMString or sequence<unrestricted double>) init), | ||
Exposed=(Window,Worker), | ||
Serializable] | ||
interface DOMMatrixReadOnly { | ||
[NewObject] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other); | ||
[NewObject] static DOMMatrixReadOnly fromFloat32Array(Float32Array array32); | ||
[NewObject] static DOMMatrixReadOnly fromFloat64Array(Float64Array array64); | ||
|
||
// These attributes are simple aliases for certain elements of the 4x4 matrix | ||
readonly attribute unrestricted double a; | ||
readonly attribute unrestricted double b; | ||
readonly attribute unrestricted double c; | ||
readonly attribute unrestricted double d; | ||
readonly attribute unrestricted double e; | ||
readonly attribute unrestricted double f; | ||
|
||
readonly attribute unrestricted double m11; | ||
readonly attribute unrestricted double m12; | ||
readonly attribute unrestricted double m13; | ||
readonly attribute unrestricted double m14; | ||
readonly attribute unrestricted double m21; | ||
readonly attribute unrestricted double m22; | ||
readonly attribute unrestricted double m23; | ||
readonly attribute unrestricted double m24; | ||
readonly attribute unrestricted double m31; | ||
readonly attribute unrestricted double m32; | ||
readonly attribute unrestricted double m33; | ||
readonly attribute unrestricted double m34; | ||
readonly attribute unrestricted double m41; | ||
readonly attribute unrestricted double m42; | ||
readonly attribute unrestricted double m43; | ||
readonly attribute unrestricted double m44; | ||
|
||
readonly attribute boolean is2D; | ||
readonly attribute boolean isIdentity; | ||
|
||
// Immutable transform methods | ||
[NewObject] DOMMatrix translate(optional unrestricted double tx = 0, | ||
optional unrestricted double ty = 0, | ||
optional unrestricted double tz = 0); | ||
[NewObject] DOMMatrix scale(optional unrestricted double scaleX = 1, | ||
optional unrestricted double scaleY, | ||
optional unrestricted double scaleZ = 1, | ||
optional unrestricted double originX = 0, | ||
optional unrestricted double originY = 0, | ||
optional unrestricted double originZ = 0); | ||
[NewObject] DOMMatrix scale3d(optional unrestricted double scale = 1, | ||
optional unrestricted double originX = 0, | ||
optional unrestricted double originY = 0, | ||
optional unrestricted double originZ = 0); | ||
[NewObject] DOMMatrix rotate(optional unrestricted double rotX = 0, | ||
optional unrestricted double rotY, | ||
optional unrestricted double rotZ); | ||
[NewObject] DOMMatrix rotateFromVector(optional unrestricted double x = 0, | ||
optional unrestricted double y = 0); | ||
[NewObject] DOMMatrix rotateAxisAngle(optional unrestricted double x = 0, | ||
optional unrestricted double y = 0, | ||
optional unrestricted double z = 0, | ||
optional unrestricted double angle = 0); | ||
[NewObject] DOMMatrix skewX(optional unrestricted double sx = 0); | ||
[NewObject] DOMMatrix skewY(optional unrestricted double sy = 0); | ||
[NewObject] DOMMatrix multiply(optional DOMMatrixInit other); | ||
[NewObject] DOMMatrix flipX(); | ||
[NewObject] DOMMatrix flipY(); | ||
[NewObject] DOMMatrix inverse(); | ||
|
||
[NewObject] DOMPoint transformPoint(optional DOMPointInit point); | ||
[NewObject] Float32Array toFloat32Array(); | ||
[NewObject] Float64Array toFloat64Array(); | ||
|
||
[Exposed=Window] stringifier; | ||
serializer = { attribute }; | ||
}; | ||
|
||
[Constructor(optional (DOMString or sequence<unrestricted double>) init), | ||
Exposed=(Window,Worker), | ||
Serializable, | ||
LegacyWindowAlias=(SVGMatrix,WebKitCSSMatrix)] | ||
interface DOMMatrix : DOMMatrixReadOnly { | ||
[NewObject] static DOMMatrix fromMatrix(optional DOMMatrixInit other); | ||
[NewObject] static DOMMatrix fromFloat32Array(Float32Array array32); | ||
[NewObject] static DOMMatrix fromFloat64Array(Float64Array array64); | ||
|
||
// These attributes are simple aliases for certain elements of the 4x4 matrix | ||
inherit attribute unrestricted double a; | ||
inherit attribute unrestricted double b; | ||
inherit attribute unrestricted double c; | ||
inherit attribute unrestricted double d; | ||
inherit attribute unrestricted double e; | ||
inherit attribute unrestricted double f; | ||
|
||
inherit attribute unrestricted double m11; | ||
inherit attribute unrestricted double m12; | ||
inherit attribute unrestricted double m13; | ||
inherit attribute unrestricted double m14; | ||
inherit attribute unrestricted double m21; | ||
inherit attribute unrestricted double m22; | ||
inherit attribute unrestricted double m23; | ||
inherit attribute unrestricted double m24; | ||
inherit attribute unrestricted double m31; | ||
inherit attribute unrestricted double m32; | ||
inherit attribute unrestricted double m33; | ||
inherit attribute unrestricted double m34; | ||
inherit attribute unrestricted double m41; | ||
inherit attribute unrestricted double m42; | ||
inherit attribute unrestricted double m43; | ||
inherit attribute unrestricted double m44; | ||
|
||
// Mutable transform methods | ||
DOMMatrix multiplySelf(optional DOMMatrixInit other); | ||
DOMMatrix preMultiplySelf(optional DOMMatrixInit other); | ||
DOMMatrix translateSelf(optional unrestricted double tx = 0, | ||
optional unrestricted double ty = 0, | ||
optional unrestricted double tz = 0); | ||
DOMMatrix scaleSelf(optional unrestricted double scaleX = 1, | ||
optional unrestricted double scaleY, | ||
optional unrestricted double scaleZ = 1, | ||
optional unrestricted double originX = 0, | ||
optional unrestricted double originY = 0, | ||
optional unrestricted double originZ = 0); | ||
DOMMatrix scale3dSelf(optional unrestricted double scale = 1, | ||
optional unrestricted double originX = 0, | ||
optional unrestricted double originY = 0, | ||
optional unrestricted double originZ = 0); | ||
DOMMatrix rotateSelf(optional unrestricted double rotX = 0, | ||
optional unrestricted double rotY, | ||
optional unrestricted double rotZ); | ||
DOMMatrix rotateFromVectorSelf(optional unrestricted double x = 0, | ||
optional unrestricted double y = 0); | ||
DOMMatrix rotateAxisAngleSelf(optional unrestricted double x = 0, | ||
optional unrestricted double y = 0, | ||
optional unrestricted double z = 0, | ||
optional unrestricted double angle = 0); | ||
DOMMatrix skewXSelf(optional unrestricted double sx = 0); | ||
DOMMatrix skewYSelf(optional unrestricted double sy = 0); | ||
DOMMatrix invertSelf(); | ||
|
||
[Exposed=Window] DOMMatrix setMatrixValue(DOMString transformList); | ||
}; | ||
|
||
dictionary DOMMatrixInit { | ||
unrestricted double a; | ||
unrestricted double b; | ||
unrestricted double c; | ||
unrestricted double d; | ||
unrestricted double e; | ||
unrestricted double f; | ||
unrestricted double m11; | ||
unrestricted double m12; | ||
unrestricted double m13 = 0; | ||
unrestricted double m14 = 0; | ||
unrestricted double m21; | ||
unrestricted double m22; | ||
unrestricted double m23 = 0; | ||
unrestricted double m24 = 0; | ||
unrestricted double m31 = 0; | ||
unrestricted double m32 = 0; | ||
unrestricted double m33 = 1; | ||
unrestricted double m34 = 0; | ||
unrestricted double m41; | ||
unrestricted double m42; | ||
unrestricted double m43 = 0; | ||
unrestricted double m44 = 1; | ||
boolean is2D; | ||
}; |