gecko-dev/testing/web-platform/tests/css/geometry/DOMMatrix-002.html
Hwanseung Lee a8d3b3b452 Bug 1510815 [wpt PR 14281] - [GeometryInterface] add scaleNonUniform method in DOMMatrixReadOnly, a=testonly
Automatic update from web-platform-tests
[GeometryInterface] add scaleNonUniform method in DOMMatrixReadOnly

DOMMatrix should be alias to SVGMatrix. (It was not implement in blink yet)
SVGMatrix have scaleNonUniform() function. but DOMMatrix was not.
there are some website which is used SVGMatrix.scaleNonUniform().
it would be possible brake some website when DOMMatrix be alias
to SVGMatrix.

Intent to implement and ship:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/BJJKDby5p7w

Bug: 905921
Change-Id: Ic09b8d6e46d0aa822b766bd6cfbc5ce7c2164849
Reviewed-on: https://chromium-review.googlesource.com/c/1341279
Commit-Queue: Hwanseung Lee <hs1217.lee@samsung.com>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: Jinho Bang <jinho.bang@samsung.com>
Cr-Commit-Position: refs/heads/master@{#612473}

--

wpt-commits: 3035063af73d90ecedce301411152855cd66e59d
wpt-pr: 14281
2018-12-14 13:53:54 +00:00

113 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Geometry Interfaces: DOMMatrixReadOnly methods do not mutate the object</title>
<link href="mailto:peter.hall@algomi.com" rel="author" title="Peter Hall">
<link rel="help" href="https://drafts.fxtf.org/geometry-1/#dom-dommatrixreadonly">
<script src="support/dommatrix-test-util.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<p>Test DOMMatrixReadOnly methods do not mutate the object</p>
<div id="log"></div>
<script>
function initialMatrix(){
return DOMMatrixReadOnly.fromMatrix(
{
m11:1, m12:-0.5, m13: 0.5, m14:0,
m21:0.5, m22:2, m23: -0.5, m24:0,
m31:0, m32:0, m33: 1, m34:0,
m41:0, m42:0, m43: 0, m44:1,
is2D: false
}
);
}
test(function() {
var matrix = initialMatrix();
matrix.translate(1,5,3);
checkDOMMatrix(matrix, initialMatrix());
},"test translate() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.scale(1,5,3,0,1,3);
checkDOMMatrix(matrix, initialMatrix());
},"test scale() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.scaleNonUniform(1,5);
checkDOMMatrix(matrix, initialMatrix());
},"test scaleNonUniform() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.scale3d(3,2,1,1);
checkDOMMatrix(matrix, initialMatrix());
},"test scale3d() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.rotate(Math.PI, Math.PI/2, Math.PI/6);
checkDOMMatrix(matrix, initialMatrix());
},"test rotate() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.rotateFromVector(10,-4);
checkDOMMatrix(matrix, initialMatrix());
},"test rotateFromVector() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.rotateAxisAngle(3,4,5, Math.PI/6);
checkDOMMatrix(matrix, initialMatrix());
},"test rotateAxisAngle() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.skewX(20);
checkDOMMatrix(matrix, initialMatrix());
},"test skewX() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.skewY(20);
checkDOMMatrix(matrix, initialMatrix());
},"test skewY() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.multiply({ m11:1, m12:2, m13: 0, m14:0,
m21:-1, m22:2, m23: -1, m24:0,
m31:0, m32:0, m33: 1, m34:0,
m41:5, m42:0, m43: 2, m44:1,
is2D: false,
isIdentity:false });
checkDOMMatrix(matrix, initialMatrix());
},"test multiply() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.flipX();
checkDOMMatrix(matrix, initialMatrix());
},"test flipX() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.flipY();
checkDOMMatrix(matrix, initialMatrix());
},"test flipY() doesn't mutate");
test(function() {
var matrix = initialMatrix();
matrix.inverse();
checkDOMMatrix(matrix, initialMatrix());
},"test inverse() doesn't mutate");
</script>
</body>
</html>