-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LibWeb/Geometry: Implement "other than none" keyword check
- Loading branch information
1 parent
5ba847b
commit fe25f77
Showing
4 changed files
with
431 additions
and
1 deletion.
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
132 changes: 132 additions & 0 deletions
132
Tests/LibWeb/Text/expected/wpt-import/css/geometry/DOMMatrix-001.txt
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,132 @@ | ||
Harness status: OK | ||
|
||
Found 126 tests | ||
|
||
122 Pass | ||
4 Fail | ||
Pass new DOMMatrix() | ||
Pass new DOMMatrix(undefined) | ||
Pass new DOMMatrix(new DOMMatrix()) | ||
Pass new DOMMatrix("none") | ||
Pass new DOMMatrix(" none") | ||
Pass new DOMMatrix("none ") | ||
Pass new DOMMatrix("NONE") | ||
Pass new DOMMatrix("none/**/") | ||
Pass new DOMMatrix("/**/none") | ||
Pass new DOMMatrix("") | ||
Pass new DOMMatrix(float32Array) 16 elements | ||
Pass new DOMMatrix(float32Array) 6 elements | ||
Pass new DOMMatrix(float64Array) 16 elements | ||
Pass new DOMMatrix((float64Array) 6 elements | ||
Pass new DOMMatrix(sequence) 16 elements | ||
Pass new DOMMatrix(sequence) 6 elements | ||
Pass new DOMMatrix("scale(2) translateX(5px) translateY(5px)") | ||
Pass new DOMMatrix("scale(2, 2) translateX(5px) translateY(5px)") | ||
Pass new DOMMatrix("scale(2)translateX(5px)translateY(5px)") | ||
Fail new DOMMatrix("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") | ||
Pass new DOMMatrix("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") | ||
Pass new DOMMatrix("translateX (5px)") | ||
Pass new DOMMatrix("scale(2 2) translateX(5) translateY(5)") | ||
Pass new DOMMatrix("scale(2, 2), translateX(5) ,translateY(5)") | ||
Pass new DOMMatrix("translateX(5em)") | ||
Pass new DOMMatrix("translateX(5ex)") | ||
Pass new DOMMatrix("translateX(5ch)") | ||
Pass new DOMMatrix("translateX(5rem)") | ||
Pass new DOMMatrix("translateX(5cqw)") | ||
Pass new DOMMatrix("translateX(5cqh)") | ||
Pass new DOMMatrix("translateX(5cqb)") | ||
Pass new DOMMatrix("translateX(5cqi)") | ||
Pass new DOMMatrix("translateX(5cqmin)") | ||
Pass new DOMMatrix("translateX(5cqmax)") | ||
Pass new DOMMatrix("translateX(5vw)") | ||
Pass new DOMMatrix("translateX(5vh)") | ||
Pass new DOMMatrix("translateX(5vb)") | ||
Pass new DOMMatrix("translateX(5vi)") | ||
Pass new DOMMatrix("translateX(5vmin)") | ||
Pass new DOMMatrix("translateX(5vmax)") | ||
Pass new DOMMatrix("translateX(5%)") | ||
Pass new DOMMatrix("rotate(5)") | ||
Pass new DOMMatrix("rotate(5, 5, 5)") | ||
Pass new DOMMatrix("rotate(5, 5px, 5px)") | ||
Pass new DOMMatrix("rotate(5deg, 5px, 5px)") | ||
Pass new DOMMatrix(" ") | ||
Pass new DOMMatrix("/**/") | ||
Pass new DOMMatrix("\0") | ||
Pass new DOMMatrix(";") | ||
Fail new DOMMatrix("none;") | ||
Pass new DOMMatrix("null") | ||
Pass new DOMMatrix(null) | ||
Pass new DOMMatrix("undefined") | ||
Pass new DOMMatrix("inherit") | ||
Pass new DOMMatrix("initial") | ||
Pass new DOMMatrix("unset") | ||
Pass new DOMMatrix(sequence) | ||
Pass new DOMMatrix(matrix) | ||
Pass new DOMMatrix("scale(2, 2), translateX(5px) translateY(5px)") | ||
Pass new DOMMatrix(sequence) 17 elements | ||
Pass new DOMMatrix(sequence) 15 elements | ||
Pass new DOMMatrix(sequence) 5 elements | ||
Pass new DOMMatrix(sequence) 0 elements | ||
Pass new DOMMatrixReadOnly() | ||
Pass new DOMMatrixReadOnly(undefined) | ||
Pass new DOMMatrixReadOnly(new DOMMatrixReadOnly()) | ||
Pass new DOMMatrixReadOnly("none") | ||
Pass new DOMMatrixReadOnly(" none") | ||
Pass new DOMMatrixReadOnly("none ") | ||
Pass new DOMMatrixReadOnly("NONE") | ||
Pass new DOMMatrixReadOnly("none/**/") | ||
Pass new DOMMatrixReadOnly("/**/none") | ||
Pass new DOMMatrixReadOnly("") | ||
Pass new DOMMatrixReadOnly(float32Array) 16 elements | ||
Pass new DOMMatrixReadOnly(float32Array) 6 elements | ||
Pass new DOMMatrixReadOnly(float64Array) 16 elements | ||
Pass new DOMMatrixReadOnly((float64Array) 6 elements | ||
Pass new DOMMatrixReadOnly(sequence) 16 elements | ||
Pass new DOMMatrixReadOnly(sequence) 6 elements | ||
Pass new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px)") | ||
Pass new DOMMatrixReadOnly("scale(2, 2) translateX(5px) translateY(5px)") | ||
Pass new DOMMatrixReadOnly("scale(2)translateX(5px)translateY(5px)") | ||
Fail new DOMMatrixReadOnly("scale(2) translateX(calc(2 * 2.5px)) translateY(5px)") | ||
Pass new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)") | ||
Pass new DOMMatrixReadOnly("translateX (5px)") | ||
Pass new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)") | ||
Pass new DOMMatrixReadOnly("scale(2, 2), translateX(5) ,translateY(5)") | ||
Pass new DOMMatrixReadOnly("translateX(5em)") | ||
Pass new DOMMatrixReadOnly("translateX(5ex)") | ||
Pass new DOMMatrixReadOnly("translateX(5ch)") | ||
Pass new DOMMatrixReadOnly("translateX(5rem)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqw)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqh)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqb)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqi)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqmin)") | ||
Pass new DOMMatrixReadOnly("translateX(5cqmax)") | ||
Pass new DOMMatrixReadOnly("translateX(5vw)") | ||
Pass new DOMMatrixReadOnly("translateX(5vh)") | ||
Pass new DOMMatrixReadOnly("translateX(5vb)") | ||
Pass new DOMMatrixReadOnly("translateX(5vi)") | ||
Pass new DOMMatrixReadOnly("translateX(5vmin)") | ||
Pass new DOMMatrixReadOnly("translateX(5vmax)") | ||
Pass new DOMMatrixReadOnly("translateX(5%)") | ||
Pass new DOMMatrixReadOnly("rotate(5)") | ||
Pass new DOMMatrixReadOnly("rotate(5, 5, 5)") | ||
Pass new DOMMatrixReadOnly("rotate(5, 5px, 5px)") | ||
Pass new DOMMatrixReadOnly("rotate(5deg, 5px, 5px)") | ||
Pass new DOMMatrixReadOnly(" ") | ||
Pass new DOMMatrixReadOnly("/**/") | ||
Pass new DOMMatrixReadOnly("\0") | ||
Pass new DOMMatrixReadOnly(";") | ||
Fail new DOMMatrixReadOnly("none;") | ||
Pass new DOMMatrixReadOnly("null") | ||
Pass new DOMMatrixReadOnly(null) | ||
Pass new DOMMatrixReadOnly("undefined") | ||
Pass new DOMMatrixReadOnly("inherit") | ||
Pass new DOMMatrixReadOnly("initial") | ||
Pass new DOMMatrixReadOnly("unset") | ||
Pass new DOMMatrixReadOnly(sequence) | ||
Pass new DOMMatrixReadOnly(matrix) | ||
Pass new DOMMatrixReadOnly("scale(2, 2), translateX(5px) translateY(5px)") | ||
Pass new DOMMatrixReadOnly(sequence) 17 elements | ||
Pass new DOMMatrixReadOnly(sequence) 15 elements | ||
Pass new DOMMatrixReadOnly(sequence) 5 elements | ||
Pass new DOMMatrixReadOnly(sequence) 0 elements |
212 changes: 212 additions & 0 deletions
212
Tests/LibWeb/Text/input/wpt-import/css/geometry/DOMMatrix-001.html
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,212 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>Geometry Interfaces: DOMMatrix and DOMMatrixReadOnly constructors</title> | ||
<link rel="author" title="Dirk Schulze" href="mailto:dschulze@adobe.com" /> | ||
<link rel="help" href="https://drafts.fxtf.org/geometry/#DOMMatrix"> | ||
<link rel="help" href="https://drafts.fxtf.org/geometry/#dommatrix-constructors"> | ||
<link rel="help" href="https://drafts.fxtf.org/geometry/#dom-dommatrix-dommatrix"> | ||
<script src="support/dommatrix-test-util.js"></script> | ||
<script src="../../resources/testharness.js"></script> | ||
<script src="../../resources/testharnessreport.js"></script> | ||
</head> | ||
<body> | ||
<div id="log"></div> | ||
<script> | ||
var initial = { | ||
m11: 1, m21: 0, m31: 0, m41: 0, | ||
m12: 0, m22: 1, m32: 0, m42: 0, | ||
m13: 0, m23: 0, m33: 1, m43: 0, | ||
m14: 0, m24: 0, m34: 0, m44: 1, | ||
is2D: true, | ||
isIdentity: true | ||
}; | ||
var scaleTranslate2D = { | ||
m11: 2, m21: 0, m31: 0, m41: 10, | ||
m12: 0, m22: 2, m32: 0, m42: 10, | ||
m13: 0, m23: 0, m33: 1, m43: 0, | ||
m14: 0, m24: 0, m34: 0, m44: 1, | ||
is2D: true, | ||
isIdentity: false | ||
}; | ||
["DOMMatrix", "DOMMatrixReadOnly"].forEach(function(constr) { | ||
test(function() { | ||
checkDOMMatrix(new self[constr](), initial); | ||
}, `new ${constr}()`); | ||
|
||
test(function() { | ||
checkDOMMatrix(new self[constr](undefined), initial); | ||
}, `new ${constr}(undefined)`); | ||
|
||
test(function() { | ||
checkDOMMatrix(new self[constr](new self[constr]()), initial); | ||
}, `new ${constr}(new ${constr}())`); | ||
|
||
['none', | ||
' none', | ||
'none ', | ||
'NONE', | ||
'none/**/', | ||
'/**/none', | ||
'', | ||
].forEach(function(string) { | ||
test(function() { | ||
checkDOMMatrix(new self[constr](string), initial); | ||
}, `new ${constr}(${format_value(string)})`); | ||
}); | ||
|
||
test(function() { | ||
var float32Array = new Float32Array([ | ||
2.0, 0.0, 0.0, 0.0, | ||
0.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 1.0]); | ||
checkDOMMatrix(new self[constr](float32Array), scaleTranslate2D, false); | ||
}, `new ${constr}(float32Array) 16 elements`); | ||
|
||
test(function() { | ||
var float32Array = new Float32Array([2.0, 0.0, 0.0, 2.0, 10.0, 10.0]); | ||
checkDOMMatrix(new self[constr](float32Array), scaleTranslate2D); | ||
}, `new ${constr}(float32Array) 6 elements`); | ||
|
||
test(function() { | ||
var float64Array = new Float64Array([ | ||
2.0, 0.0, 0.0, 0.0, | ||
0.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 1.0]); | ||
checkDOMMatrix(new self[constr](float64Array), scaleTranslate2D, false); | ||
}, `new ${constr}(float64Array) 16 elements`); | ||
|
||
test(function() { | ||
var float64Array = new Float64Array([2.0, 0.0, 0.0, 2.0, 10.0, 10.0]); | ||
checkDOMMatrix(new self[constr](float64Array), scaleTranslate2D); | ||
}, `new ${constr}((float64Array) 6 elements`); | ||
|
||
[ | ||
[2.0, 0.0, 0.0, 0.0, | ||
0.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 1.0], | ||
[2.0, 0.0, 0.0, 2.0, 10.0, 10.0], | ||
].forEach(function(sequence) { | ||
test(function() { | ||
checkDOMMatrix(new self[constr](sequence), scaleTranslate2D, | ||
sequence.length == 6); | ||
}, `new ${constr}(sequence) ${sequence.length} elements`); | ||
}); | ||
|
||
{ | ||
const epsilon = 0.0000000005; | ||
['scale(2) translateX(5px) translateY(5px)', | ||
'scale(2, 2) translateX(5px) translateY(5px)', | ||
'scale(2)translateX(5px)translateY(5px)', | ||
'scale(2) translateX(calc(2 * 2.5px)) translateY(5px)', | ||
'scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate(-5deg)', | ||
].forEach(function(string) { | ||
test(function() { | ||
checkMatrix(new self[constr](string), scaleTranslate2D, { epsilon }); | ||
}, `new ${constr}(${format_value(string)})`); | ||
}); | ||
} | ||
|
||
['translateX (5px)', | ||
'scale(2 2) translateX(5) translateY(5)', | ||
'scale(2, 2), translateX(5) ,translateY(5)', | ||
'translateX(5em)', | ||
'translateX(5ex)', | ||
'translateX(5ch)', | ||
'translateX(5rem)', | ||
'translateX(5cqw)', | ||
'translateX(5cqh)', | ||
'translateX(5cqb)', | ||
'translateX(5cqi)', | ||
'translateX(5cqmin)', | ||
'translateX(5cqmax)', | ||
'translateX(5vw)', | ||
'translateX(5vh)', | ||
'translateX(5vb)', | ||
'translateX(5vi)', | ||
'translateX(5vmin)', | ||
'translateX(5vmax)', | ||
'translateX(5%)', | ||
'rotate(5)', | ||
'rotate(5, 5, 5)', | ||
'rotate(5, 5px, 5px)', | ||
'rotate(5deg, 5px, 5px)', | ||
' ', | ||
'/**/', | ||
'\0', | ||
';', | ||
'none;', | ||
'null', | ||
null, // is converted to 'null' by IDL | ||
'undefined', | ||
'inherit', | ||
'initial', | ||
'unset', | ||
].forEach(function(string) { | ||
test(function() { | ||
assert_throws_dom('SyntaxError', function() { new self[constr](string); }); | ||
}, `new ${constr}(${format_value(string)})`); | ||
}); | ||
|
||
test(function() { | ||
var sequence = [ | ||
2.0, 1.0, 0.0, 0.0, | ||
1.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 1.0]; | ||
checkDOMMatrix(new self[constr](sequence), { | ||
m11: 2, m21: 1, m31: 0, m41: 10, | ||
m12: 1, m22: 2, m32: 0, m42: 10, | ||
m13: 0, m23: 0, m33: 1, m43: 0, | ||
m14: 0, m24: 0, m34: 0, m44: 1, | ||
is2D: false, | ||
isIdentity: false | ||
}); | ||
}, `new ${constr}(sequence)`); | ||
|
||
test(function() { | ||
var matrix = new self[constr]([ | ||
2.0, 1.0, 0.0, 0.0, | ||
1.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 1.0]); | ||
checkDOMMatrix(new self[constr](matrix), { | ||
m11: 2, m21: 1, m31: 0, m41: 10, | ||
m12: 1, m22: 2, m32: 0, m42: 10, | ||
m13: 0, m23: 0, m33: 1, m43: 0, | ||
m14: 0, m24: 0, m34: 0, m44: 1, | ||
is2D: false, | ||
isIdentity: false | ||
}); | ||
}, `new ${constr}(matrix)`); | ||
|
||
['scale(2, 2), translateX(5px) translateY(5px)', | ||
].forEach(function(string) { | ||
test(function() { | ||
assert_throws_dom("SyntaxError", function() { new self[constr](string); }); | ||
}, `new ${constr}(${format_value(string)})`); | ||
}); | ||
|
||
[ | ||
[2.0, 0.0, 0.0, 0.0, | ||
0.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0, 2.0, 0.0], // 17 elements | ||
[2.0, 0.0, 0.0, 0.0, | ||
0.0, 2.0, 0.0, 0.0, | ||
0.0, 0.0, 1.0, 0.0, | ||
10.0, 10.0, 0.0], // 15 elements | ||
[2.0, 0.0, 0.0, 2.0, 10.0], // 5 elements | ||
[], // 0 elements | ||
].forEach(function(sequence) { | ||
test(function() { | ||
assert_throws_js(TypeError, function() { new self[constr](sequence); }); | ||
}, `new ${constr}(sequence) ${sequence.length} elements`); | ||
}); | ||
}); | ||
</script> | ||
</body> | ||
</html> |
Oops, something went wrong.