mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Update web-platform-tests to revision dcdebb1b8e7d3f9a4650498c1efeae78060294e5
This commit is contained in:
parent
802e16b702
commit
217eb600af
77 changed files with 4531 additions and 274 deletions
|
@ -37,6 +37,3 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -325363,6 +325363,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-writing-modes/bidi-line-break-001.html": [
|
||||
[
|
||||
"css/css-writing-modes/bidi-line-break-001.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-writing-modes/inheritance.html": [
|
||||
[
|
||||
"css/css-writing-modes/inheritance.html",
|
||||
|
@ -398891,6 +398897,308 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-3.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-4.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-4.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-5.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-5.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-6.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-6.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-7.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-7.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-8.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-8.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgenum-animation-9.html": [
|
||||
[
|
||||
"svg/animations/svgenum-animation-9.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svginteger-animation-1.html": [
|
||||
[
|
||||
"svg/animations/svginteger-animation-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svginteger-animation-2.html": [
|
||||
[
|
||||
"svg/animations/svginteger-animation-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-1.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-2.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-3.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-4.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-4.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-6.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-6.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-7.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-7.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-by-8.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-by-8.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-1.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-from-by-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-2.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-from-by-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-3.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-from-by-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-4.html": [
|
||||
[
|
||||
"svg/animations/svglength-additive-from-by-4.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeHeight.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-LengthModeHeight.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeOther.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-LengthModeOther.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeWidth.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-LengthModeWidth.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-1.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-invalid-value-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-2.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-invalid-value-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-3.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-invalid-value-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-number-to-number.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-number-to-number.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-cm.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-cm.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-ems.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-ems.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-in.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-in.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-number.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-number.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-pc.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-pc.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-pt.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-pt.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-px.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-px-to-px.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-unitType.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-unitType.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglength-animation-values.html": [
|
||||
[
|
||||
"svg/animations/svglength-animation-values.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-1.html": [
|
||||
[
|
||||
"svg/animations/svglengthlist-animation-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-2.html": [
|
||||
[
|
||||
"svg/animations/svglengthlist-animation-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-3.html": [
|
||||
[
|
||||
"svg/animations/svglengthlist-animation-3.html",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-4.html": [
|
||||
[
|
||||
"svg/animations/svglengthlist-animation-4.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-5.html": [
|
||||
[
|
||||
"svg/animations/svglengthlist-animation-5.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumber-animation-1.html": [
|
||||
[
|
||||
"svg/animations/svgnumber-animation-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumber-animation-2.html": [
|
||||
[
|
||||
"svg/animations/svgnumber-animation-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumber-animation-3.html": [
|
||||
[
|
||||
"svg/animations/svgnumber-animation-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumber-animation-4.html": [
|
||||
[
|
||||
"svg/animations/svgnumber-animation-4.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberlist-animation-1.html": [
|
||||
[
|
||||
"svg/animations/svgnumberlist-animation-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberlist-animation-2.html": [
|
||||
[
|
||||
"svg/animations/svgnumberlist-animation-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-1.html": [
|
||||
[
|
||||
"svg/animations/svgnumberoptionalnumber-animation-1.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-2.html": [
|
||||
[
|
||||
"svg/animations/svgnumberoptionalnumber-animation-2.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-3.html": [
|
||||
[
|
||||
"svg/animations/svgnumberoptionalnumber-animation-3.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-4.html": [
|
||||
[
|
||||
"svg/animations/svgnumberoptionalnumber-animation-4.html",
|
||||
|
@ -590580,6 +590888,10 @@
|
|||
"2e93f34363748585836a28ac86581dbcd8863d7e",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-writing-modes/bidi-line-break-001.html": [
|
||||
"f46b56b76cc011126055bd7327edb4ec4963f9ad",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-writing-modes/bidi-normal-001.html": [
|
||||
"59479c538ce2114bfdec8bf3a6b91af8be2b8735",
|
||||
"reftest"
|
||||
|
@ -642853,7 +643165,7 @@
|
|||
"support"
|
||||
],
|
||||
"mathml/support/box-comparison.js": [
|
||||
"77d145b36324d1ac4f06b97a49f8609d6202c9bc",
|
||||
"c46808f7fee6f72ec9e7ffd4946239d9dcaad25b",
|
||||
"support"
|
||||
],
|
||||
"mathml/support/feature-detection.js": [
|
||||
|
@ -665429,7 +665741,7 @@
|
|||
"support"
|
||||
],
|
||||
"resources/SVGAnimationTestCase-testharness.js": [
|
||||
"8fabc9a8c110ac6210a298ed08cbb33d8ecd9266",
|
||||
"59febda86d63f3109e74901620d1c1562554c754",
|
||||
"support"
|
||||
],
|
||||
"resources/check-layout-th.js": [
|
||||
|
@ -671584,6 +671896,206 @@
|
|||
"86a0a40fa2de116c5b2076641180b24688d56f9b",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-3.html": [
|
||||
"5ed9f5aa8819510f8a7701e5edb7d00fb716aa70",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-4.html": [
|
||||
"652e49655e1027ce7a6a8c3d6ad29d76eb6fc85b",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-5.html": [
|
||||
"1487918bde23a642fd5a49de844b5e880d662f27",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-6.html": [
|
||||
"e60c93bbbf67cbfbe0bfe7a7f655ac3cb2feb44e",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-7.html": [
|
||||
"4e2d27e581c687106d3056f825ad11b2efaefdd4",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-8.html": [
|
||||
"cd00e46d56d7133b565adebad45aa4efe341313f",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgenum-animation-9.html": [
|
||||
"8aa9d6a761803b726c4de7f8a6eee1df31c2a55c",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svginteger-animation-1.html": [
|
||||
"7803541691858ddf64f63c7486ad369254572220",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svginteger-animation-2.html": [
|
||||
"25ef7ff08effb49c9953981756d482846b590aaf",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-1.html": [
|
||||
"67549890cff56769c3df9973266b76e128f90c6d",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-2.html": [
|
||||
"e08c99cb63eebf462bcd037ad0219145b291aa9f",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-3.html": [
|
||||
"b5ac7a033ec2524e9bd8119227dcc88f63924254",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-4.html": [
|
||||
"10e8bd7b491a9083141dd4d260db951046096fe2",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-6.html": [
|
||||
"43beafe220e4c02d312da9fe4a653054d40d3d0d",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-7.html": [
|
||||
"7c1dde4a7c6262d64130ef84e4fa0b05b360b154",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-by-8.html": [
|
||||
"c61cb65ebd923f82d3c44ae00328e4712d214019",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-1.html": [
|
||||
"ce458e0266c68665a68adab94aa706ed4ccb4a84",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-2.html": [
|
||||
"1ac7eed4e1b3d03b5b44dde6fad6209f21ab0aa4",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-3.html": [
|
||||
"1c22f351da43b6723a360706c23ed6f351844e70",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-additive-from-by-4.html": [
|
||||
"998c37458f98538333395d74e1f89a21ac7f0548",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeHeight.html": [
|
||||
"2bb409e8e10ea7ba72fdf882e8c7a300e822c1ce",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeOther.html": [
|
||||
"1fd9e0a3b9b0f2093f35769dc91a1badea5b4a86",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-LengthModeWidth.html": [
|
||||
"9481d434b9a11f8f2753497924a762a5c1e95662",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-1.html": [
|
||||
"9b45c5a8ca0dd1fec4aad07c02e6bbc7caad0a3a",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-2.html": [
|
||||
"64d5884df44bc1334da2750b0c23ce52e0ad5028",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-invalid-value-3.html": [
|
||||
"0fb1794eaa2c738e17ba42a63c478d877e52de29",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-number-to-number.html": [
|
||||
"0b4fca52ec0f878023ce6ba62fcde0e7426bbc8d",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-cm.html": [
|
||||
"f51beed02b3df9382df78d5ba211c9555bfd5d87",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-ems.html": [
|
||||
"e65125303e10d3572cc53abef54d8cad4a781df2",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-in.html": [
|
||||
"a55b357187aa01dc9eaace04a89eb17cd2ad6557",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-number.html": [
|
||||
"8eab444caa3eda56eda3f5600f5f031d68b8d60e",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-pc.html": [
|
||||
"62d9d9964f1dc9a1952cf45417572fc6a13a99cc",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-pt.html": [
|
||||
"d86e09075788d37c05f418252686fe3d8c56b87a",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-px-to-px.html": [
|
||||
"fdeb773375a290d6f925d42be90dd0401222947f",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-unitType.html": [
|
||||
"4cd6d2d3af5e94e259195cc1d5599132dd8a69b6",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglength-animation-values.html": [
|
||||
"a3e485320b0e76b9e6cc5c176c4e114d939f56bb",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-1.html": [
|
||||
"198fc8a6fef879ea9397f6668b38a10a9b4d755a",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-2.html": [
|
||||
"c1c91b83f0f652d3d04e277c3a13d116af291147",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-3.html": [
|
||||
"d26e67a8a05a049378bda86cc15ff2e5dbedc2fa",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-4.html": [
|
||||
"0e890ab5f5a16e53ce10a3f7c68e99a25e764989",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svglengthlist-animation-5.html": [
|
||||
"5d0bc2b4836fcc934b4676eb1d79e23e15b5e148",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumber-animation-1.html": [
|
||||
"72c2d736771868b615d723958324307a6f96be66",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumber-animation-2.html": [
|
||||
"1654480ffced7d79bf28595664bc6dc8d524ba07",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumber-animation-3.html": [
|
||||
"255eeb0a94c66f6337af8079f6eef8e6416586e4",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumber-animation-4.html": [
|
||||
"758138d6678a2afa778c766b9072e47307e5341d",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberlist-animation-1.html": [
|
||||
"aabb7d7daa159409706ad2ff59e54220218f25a2",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberlist-animation-2.html": [
|
||||
"e62bbf68602dbe439b2659aac3727f8f6c40e2d0",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-1.html": [
|
||||
"b20855140ffcd398778d3375aa9ac395aa221776",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-2.html": [
|
||||
"db2576533ce22a0a4aa68d8113ae858bf1cf17aa",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-3.html": [
|
||||
"974c1d7034a86e585c84cf9576fb231db7601fc3",
|
||||
"testharness"
|
||||
],
|
||||
"svg/animations/svgnumberoptionalnumber-animation-4.html": [
|
||||
"4c734b5373762e9844511f5ac7b550743a50f0b2",
|
||||
"testharness"
|
||||
|
|
|
@ -312,12 +312,6 @@
|
|||
[<iframe>: separate response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -336,6 +330,9 @@
|
|||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-innerwidth-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=-404.5" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404.5" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404e1" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404e1" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-screenx-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=-204" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204.5" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-0" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-0" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-204.5" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-top-left.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for `top`, `left`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=-204" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=-204.5" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-204" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=-0" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-204.5" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-0" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-width-height.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for `width`, `height`]
|
||||
expected: FAIL
|
||||
|
||||
[features "height=-404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=-404e1" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=-404.5" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404e1" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404.5" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,48 +1,32 @@
|
|||
[open-features-non-integer-height.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `height`]
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerwidth.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-left.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `left`]
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screenx.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-top.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `top`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105/5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105*3" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105LLl" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e-1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.32" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105 " should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105^4" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=/104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=_104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=L104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,48 +1,32 @@
|
|||
[open-features-non-integer-width.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `width`]
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[The iframe should have one resource timing entry.]
|
||||
expected: FAIL
|
||||
|
||||
[responseEnd should not be 0 in timing-allow cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -20,6 +20,3 @@
|
|||
[domainLookupStart should be 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
[responseEnd should be greater than 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -164,3 +164,9 @@
|
|||
[X SNR (-664.7665372056329 dB) is not greater than or equal to 65.737. Got -664.7665372056329.]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-138.18041778733868 dB) is not greater than or equal to 65.737. Got -138.18041778733868.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 8.8099737698276448e+8 at index of 39267.\n\t[39267\]\t8.8099737600000000e+8\t-9.8276454210281372e-1\t8.8099737698276448e+8\t8.9644806994939113e+8\t3.8985999999999999e-3\n\tMax RelError of 1.7257971997243075e+9 at index of 20238.\n\t[20238\]\t8.2104729600000000e+8\t-4.7574958205223083e-1\t8.2104729647574961e+8\t1.7257971997243075e+9\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Test implicit bidi controls do not affect line breaking</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#unicode-bidi">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
|
||||
<style>
|
||||
html {
|
||||
font-size: 10px;
|
||||
line-height: 1;
|
||||
}
|
||||
.isolate {
|
||||
unicode-bidi: isolate;
|
||||
}
|
||||
.embed {
|
||||
unicode-bidi: embed;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<body>
|
||||
<div id=log></div>
|
||||
<div id="container">
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<span class="isolate" dir="ltr">00</span> <span class="isolate" dir="ltr">00</span>
|
||||
</div>
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<span class="embed" dir="ltr">00</span> <span class="embed" dir="ltr">00</span>
|
||||
</div>
|
||||
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<span dir="ltr">00</span> <span dir="ltr">00</span>
|
||||
</div>
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<bdi dir="ltr">00</bdi> <bdi dir="ltr">00</bdi>
|
||||
</div>
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<bdo dir="ltr">00</bdo> <bdo dir="ltr">00</bdo>
|
||||
</div>
|
||||
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<span class="isolate" dir="ltr">00 </span><span class="isolate" dir="ltr">00</span>
|
||||
</div>
|
||||
<div style="width: 4ch" data-expected-height="20">
|
||||
<span class="embed" dir="ltr">00 </span><span class="embed" dir="ltr">00</span>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
run();
|
||||
function run() {
|
||||
for (let node of document.getElementById('container').children) {
|
||||
test(() => {
|
||||
assert_approx_equals(node.offsetHeight, 20, 1);
|
||||
}, node.innerHTML);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
|
@ -22,7 +22,7 @@ function compareSpaceWithAndWithoutStyle(tag, style, parentStyle, direction) {
|
|||
|
||||
if (!direction)
|
||||
direction = "ltr";
|
||||
document.body.insertAdjacentHTML("beforeend", `<div>\
|
||||
document.body.insertAdjacentHTML("beforeend", `<div style="position: absolute;">\
|
||||
<math><mrow dir="${direction}">${MathMLFragments[tag]}</mrow></math>\
|
||||
<math><mrow dir="${direction}">${MathMLFragments[tag]}</mrow></math>\
|
||||
</div>`);
|
||||
|
@ -64,7 +64,7 @@ function compareSizeWithAndWithoutStyle(tag, style) {
|
|||
if (!FragmentHelper.isValidChildOfMrow(tag))
|
||||
throw `Invalid argument: ${tag}`;
|
||||
|
||||
document.body.insertAdjacentHTML("beforeend", `<div>\
|
||||
document.body.insertAdjacentHTML("beforeend", `<div style="position: absolute;">\
|
||||
<math>${MathMLFragments[tag]}</math>\
|
||||
<math>${MathMLFragments[tag]}</math>\
|
||||
</div>`);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// NOTE(edvardt):
|
||||
// This file is a slimmed down wrapper for the Chromium SVGAnimationTestCase.js,
|
||||
// This file is a slimmed down wrapper for the old SVGAnimationTestCase.js,
|
||||
// it has some convenience functions and should not be used for new tests.
|
||||
// New tests should not build on this API as it's just meant to keep things
|
||||
// working.
|
||||
|
@ -32,6 +32,7 @@ function createSVGElement(type) {
|
|||
return document.createElementNS("http://www.w3.org/2000/svg", type);
|
||||
}
|
||||
|
||||
// Inspired by Layoutests/animations/animation-test-helpers.js
|
||||
function moveAnimationTimelineAndSample(index) {
|
||||
var animationId = expectedResults[index][0];
|
||||
var time = expectedResults[index][1];
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLengthAdjustType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Initiate the test by clicking at (1, 50) - the 'S'.
|
||||
window.clickX = 1;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("textLength", "200");
|
||||
text.textContent = "Stretched text";
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "lengthAdjust");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "spacing");
|
||||
animate.setAttribute("to", "spacingAndGlyphs");
|
||||
animate.setAttribute("fill", "freeze");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.lengthAdjust.animVal, SVGTextContentElement.LENGTHADJUST_SPACING);
|
||||
assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACING);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.lengthAdjust.animVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS);
|
||||
assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACING);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.999, sample1],
|
||||
["animation", 2.001, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample2]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,182 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test CompositeOperationType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defsElement = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defsElement);
|
||||
|
||||
var off1 = createSVGElement("feOffset");
|
||||
off1.setAttribute("dx", "35");
|
||||
off1.setAttribute("dy", "25");
|
||||
off1.setAttribute("result", "off1");
|
||||
|
||||
var flood1 = createSVGElement("feFlood");
|
||||
flood1.setAttribute("flood-color", "#408067");
|
||||
flood1.setAttribute("flood-opacity", ".8");
|
||||
flood1.setAttribute("result", "F1");
|
||||
|
||||
var overComposite1 = createSVGElement("feComposite");
|
||||
overComposite1.setAttribute("in", "F1");
|
||||
overComposite1.setAttribute("in2", "off1");
|
||||
overComposite1.setAttribute("operator", "over");
|
||||
overComposite1.setAttribute("k1", ".5");
|
||||
overComposite1.setAttribute("k2", ".1");
|
||||
overComposite1.setAttribute("k3", ".5");
|
||||
overComposite1.setAttribute("k4", ".3");
|
||||
|
||||
overComposite1.setAttribute("result", "C1");
|
||||
|
||||
var off2 = createSVGElement("feOffset");
|
||||
off2.setAttribute("in", "SourceGraphic");
|
||||
off2.setAttribute("dx", "60");
|
||||
off2.setAttribute("dy", "50");
|
||||
off2.setAttribute("result", "off2");
|
||||
|
||||
var flood2 = createSVGElement("feFlood");
|
||||
flood2.setAttribute("flood-color", "#408067");
|
||||
flood2.setAttribute("flood-opacity", ".6");
|
||||
flood2.setAttribute("result", "F2");
|
||||
|
||||
var overComposite2 = createSVGElement("feComposite");
|
||||
overComposite2.setAttribute("in", "F2");
|
||||
overComposite2.setAttribute("in2", "off2");
|
||||
overComposite2.setAttribute("operator", "in");
|
||||
overComposite2.setAttribute("result", "C2");
|
||||
|
||||
var off3 = createSVGElement("feOffset");
|
||||
off3.setAttribute("in", "SourceGraphic");
|
||||
off3.setAttribute("dx", "85");
|
||||
off3.setAttribute("dy", "75");
|
||||
off3.setAttribute("result", "off3");
|
||||
|
||||
var flood3 = createSVGElement("feFlood");
|
||||
flood3.setAttribute("flood-color", "#408067");
|
||||
flood3.setAttribute("flood-opacity", ".4");
|
||||
flood3.setAttribute("result", "F3");
|
||||
|
||||
var overComposite3 = createSVGElement("feComposite");
|
||||
overComposite3.setAttribute("in2", "off3");
|
||||
overComposite3.setAttribute("operator", "in");
|
||||
overComposite3.setAttribute("result", "C3");
|
||||
|
||||
var merge = createSVGElement("feMerge");
|
||||
|
||||
var mergeNode1 = createSVGElement("feMergeNode");
|
||||
mergeNode1.setAttribute("in", "C1");
|
||||
|
||||
var mergeNode2 = createSVGElement("feMergeNode");
|
||||
mergeNode2.setAttribute("in", "C2");
|
||||
|
||||
var mergeNode3 = createSVGElement("feMergeNode");
|
||||
mergeNode3.setAttribute("in", "C3");
|
||||
|
||||
var mergeNode4 = createSVGElement("feMergeNode");
|
||||
mergeNode4.setAttribute("in", "SourceGraphic");
|
||||
|
||||
merge.appendChild(mergeNode3);
|
||||
merge.appendChild(mergeNode2);
|
||||
merge.appendChild(mergeNode1);
|
||||
merge.appendChild(mergeNode4);
|
||||
|
||||
var overFilter = createSVGElement("filter");
|
||||
overFilter.setAttribute("id", "overFilter");
|
||||
overFilter.setAttribute("filterUnits", "objectBoundingBox");
|
||||
overFilter.setAttribute("x", "0");
|
||||
overFilter.setAttribute("y", "0");
|
||||
overFilter.setAttribute("width", "3.5");
|
||||
overFilter.setAttribute("height", "4");
|
||||
overFilter.appendChild(off1);
|
||||
overFilter.appendChild(flood1);
|
||||
overFilter.appendChild(overComposite1);
|
||||
overFilter.appendChild(off2);
|
||||
overFilter.appendChild(flood2);
|
||||
overFilter.appendChild(overComposite2);
|
||||
overFilter.appendChild(off3);
|
||||
overFilter.appendChild(flood3);
|
||||
overFilter.appendChild(overComposite3);
|
||||
overFilter.appendChild(merge);
|
||||
|
||||
defsElement.appendChild(overFilter);
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "#408067");
|
||||
rect.setAttribute("filter", "url(#overFilter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "operator");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "5s");
|
||||
animate.setAttribute("values", "in;out;atop;xor;arithmetic");
|
||||
overComposite1.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_equals(overComposite1.operator.animVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC);
|
||||
assert_equals(overComposite1.operator.baseVal, SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 0.001, sample2],
|
||||
["animation", 0.999, sample2],
|
||||
["animation", 1.001, sample3],
|
||||
["animation", 1.999, sample3],
|
||||
["animation", 2.001, sample4],
|
||||
["animation", 2.999, sample4],
|
||||
["animation", 3.001, sample5],
|
||||
["animation", 3.999, sample5],
|
||||
["animation", 4.001, sample6],
|
||||
["animation", 4.999, sample6],
|
||||
["animation", 5.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test MorphologyOperatorType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var morphology = createSVGElement("feMorphology");
|
||||
morphology.setAttribute("in", "SourceAlpha");
|
||||
morphology.setAttribute("operator", "dilate");
|
||||
morphology.setAttribute("radius", "4");
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("filterUnits", "userSpaceOnUse");
|
||||
filter.setAttribute("x", "0");
|
||||
filter.setAttribute("y", "0");
|
||||
filter.setAttribute("width", "700");
|
||||
filter.setAttribute("height", "200");
|
||||
filter.appendChild(morphology);
|
||||
defs.appendChild(filter);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "#408067");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "operator");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "dilate");
|
||||
animate.setAttribute("to", "erode");
|
||||
morphology.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(morphology.operator.animVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
|
||||
assert_equals(morphology.operator.baseVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(morphology.operator.animVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE);
|
||||
assert_equals(morphology.operator.baseVal, SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.999, sample1],
|
||||
["animation", 2.001, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,89 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test ColorMatrixType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var colorMatrix = createSVGElement("feColorMatrix");
|
||||
colorMatrix.setAttribute("in", "SourceGraphic");
|
||||
colorMatrix.setAttribute("type", "matrix");
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("filterUnits", "userSpaceOnUse");
|
||||
filter.setAttribute("x", "0");
|
||||
filter.setAttribute("y", "0");
|
||||
filter.setAttribute("width", "700");
|
||||
filter.setAttribute("height", "200");
|
||||
filter.appendChild(colorMatrix);
|
||||
defs.appendChild(filter);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "#408067");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "type");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("values", "matrix;saturate;hueRotate;luminanceToAlpha");
|
||||
colorMatrix.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(colorMatrix.type.animVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX);
|
||||
assert_equals(colorMatrix.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(colorMatrix.type.animVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE);
|
||||
assert_equals(colorMatrix.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(colorMatrix.type.animVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE);
|
||||
assert_equals(colorMatrix.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_equals(colorMatrix.type.animVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA);
|
||||
assert_equals(colorMatrix.type.baseVal, SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 0.999, sample1],
|
||||
["animation", 1.001, sample2],
|
||||
["animation", 1.999, sample2],
|
||||
["animation", 2.001, sample3],
|
||||
["animation", 2.999, sample3],
|
||||
["animation", 3.001, sample4],
|
||||
["animation", 3.999, sample4],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,94 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGStitchOptions/TurbulenceType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("filterUnits", "userSpaceOnUse");
|
||||
filter.setAttribute("x", "0");
|
||||
filter.setAttribute("y", "0");
|
||||
filter.setAttribute("width", "700");
|
||||
filter.setAttribute("height", "200");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var turbulence = createSVGElement("feTurbulence");
|
||||
turbulence.setAttribute("in", "foo");
|
||||
turbulence.setAttribute("baseFrequency", "0.05");
|
||||
turbulence.setAttribute("numOctaves", "3");
|
||||
turbulence.setAttribute("seed", "5");
|
||||
turbulence.setAttribute("stitchTiles", "stitch");
|
||||
turbulence.setAttribute("type", "fractalNoise");
|
||||
filter.appendChild(turbulence);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "#408067");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate1 = createSVGElement("animate");
|
||||
animate1.setAttribute("id", "animation");
|
||||
animate1.setAttribute("attributeName", "type");
|
||||
animate1.setAttribute("begin", "0s");
|
||||
animate1.setAttribute("dur", "4s");
|
||||
animate1.setAttribute("from", "fractalNoise");
|
||||
animate1.setAttribute("to", "turbulence");
|
||||
turbulence.appendChild(animate1);
|
||||
|
||||
var animate2 = createSVGElement("animate");
|
||||
animate2.setAttribute("attributeName", "stitchTiles");
|
||||
animate2.setAttribute("begin", "0s");
|
||||
animate2.setAttribute("dur", "4s");
|
||||
animate2.setAttribute("from", "stitch");
|
||||
animate2.setAttribute("to", "noStitch");
|
||||
turbulence.appendChild(animate2);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(turbulence.type.animVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE);
|
||||
assert_equals(turbulence.type.baseVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE);
|
||||
|
||||
assert_equals(turbulence.stitchTiles.animVal, SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH);
|
||||
assert_equals(turbulence.stitchTiles.baseVal, SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(turbulence.type.animVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE);
|
||||
assert_equals(turbulence.type.baseVal, SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE);
|
||||
|
||||
assert_equals(turbulence.stitchTiles.animVal, SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH);
|
||||
assert_equals(turbulence.stitchTiles.baseVal, SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.999, sample1],
|
||||
["animation", 2.001, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,114 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test ComponentTransferType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var feRFunc = createSVGElement("feFuncR");
|
||||
feRFunc.setAttribute("type", "identity");
|
||||
feRFunc.setAttribute("amplitude", "10");
|
||||
|
||||
var feGFunc = createSVGElement("feFuncG");
|
||||
feGFunc.setAttribute("type", "identity");
|
||||
feGFunc.setAttribute("amplitude", "10");
|
||||
|
||||
var feBFunc = createSVGElement("feFuncB");
|
||||
feBFunc.setAttribute("type", "identity");
|
||||
feBFunc.setAttribute("amplitude", "110");
|
||||
|
||||
var feAFunc = createSVGElement("feFuncA");
|
||||
feAFunc.setAttribute("type", "identity");
|
||||
feAFunc.setAttribute("amplitude", "110");
|
||||
|
||||
var feComponentTransfer = createSVGElement("feComponentTransfer");
|
||||
feComponentTransfer.appendChild(feRFunc);
|
||||
feComponentTransfer.appendChild(feGFunc);
|
||||
feComponentTransfer.appendChild(feBFunc);
|
||||
feComponentTransfer.appendChild(feAFunc);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("filterUnits", "objectBoundingBox");
|
||||
filter.setAttribute("x", "0%");
|
||||
filter.setAttribute("y", "0%");
|
||||
filter.setAttribute("width", "100%");
|
||||
filter.setAttribute("height", "100%");
|
||||
filter.appendChild(feComponentTransfer);
|
||||
|
||||
var defs = createSVGElement("defs");
|
||||
defs.appendChild(filter);
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "#408067");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "type");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "5s");
|
||||
animate.setAttribute("values", "identity;table;discrete;linear;gamma");
|
||||
feRFunc.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(feRFunc.type.animVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
assert_equals(feRFunc.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(feRFunc.type.animVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE);
|
||||
assert_equals(feRFunc.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(feRFunc.type.animVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE);
|
||||
assert_equals(feRFunc.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_equals(feRFunc.type.animVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR);
|
||||
assert_equals(feRFunc.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_equals(feRFunc.type.animVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA);
|
||||
assert_equals(feRFunc.type.baseVal, SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 0.999, sample1],
|
||||
["animation", 1.001, sample2],
|
||||
["animation", 1.999, sample2],
|
||||
["animation", 2.001, sample3],
|
||||
["animation", 2.999, sample3],
|
||||
["animation", 3.001, sample4],
|
||||
["animation", 3.999, sample4],
|
||||
["animation", 4.001, sample5],
|
||||
["animation", 4.999, sample5],
|
||||
["animation", 5.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,83 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGTextPathSpacingType/SVGTextPathMethodType enumeration animations</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var path = createSVGElement("path");
|
||||
path.setAttribute("id", "path");
|
||||
path.setAttribute("d", "M 50 50 L 200 50");
|
||||
rootSVGElement.appendChild(path);
|
||||
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var textPath = createSVGElement("textPath");
|
||||
textPath.setAttributeNS(xlinkNS, "xlink:href", "#path");
|
||||
textPath.setAttribute("spacing", "auto");
|
||||
textPath.setAttribute("method", "align");
|
||||
textPath.textContent = "test";
|
||||
text.appendChild(textPath);
|
||||
|
||||
var animate1 = createSVGElement("animate");
|
||||
animate1.setAttribute("id", "animation");
|
||||
animate1.setAttribute("attributeName", "spacing");
|
||||
animate1.setAttribute("begin", "0s");
|
||||
animate1.setAttribute("dur", "4s");
|
||||
animate1.setAttribute("from", "auto");
|
||||
animate1.setAttribute("to", "exact");
|
||||
animate1.setAttribute("fill", "freeze");
|
||||
textPath.appendChild(animate1);
|
||||
|
||||
var animate2 = createSVGElement("animate");
|
||||
animate2.setAttribute("attributeName", "method");
|
||||
animate2.setAttribute("begin", "0s");
|
||||
animate2.setAttribute("dur", "4s");
|
||||
animate2.setAttribute("from", "align");
|
||||
animate2.setAttribute("to", "stretch");
|
||||
animate2.setAttribute("fill", "freeze");
|
||||
textPath.appendChild(animate2);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(textPath.method.animVal, SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN);
|
||||
assert_equals(textPath.method.baseVal, SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN);
|
||||
|
||||
assert_equals(textPath.spacing.animVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO);
|
||||
assert_equals(textPath.spacing.baseVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(textPath.method.animVal, SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH);
|
||||
assert_equals(textPath.method.baseVal, SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN);
|
||||
|
||||
assert_equals(textPath.spacing.animVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT);
|
||||
assert_equals(textPath.spacing.baseVal, SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.999, sample1],
|
||||
["animation", 2.001, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample2]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test animation of SVGInteger.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "200");
|
||||
rect.setAttribute("height", "200");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var feConvolveMatrix = createSVGElement("feConvolveMatrix");
|
||||
feConvolveMatrix.setAttribute("id", "feConvlveMatrix");
|
||||
feConvolveMatrix.setAttribute("order", "3");
|
||||
feConvolveMatrix.setAttribute("kernelMatrix", "0 0 0 0 1 0 0 0 0");
|
||||
feConvolveMatrix.setAttribute("targetX", "0");
|
||||
filter.appendChild(feConvolveMatrix);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "targetX");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0");
|
||||
animate.setAttribute("to", "2");
|
||||
feConvlveMatrix.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(feConvolveMatrix.targetX.animVal, 0, epsilon);
|
||||
assert_equals(feConvolveMatrix.targetX.baseVal, 0);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(feConvolveMatrix.targetX.animVal, 1, epsilon);
|
||||
assert_equals(feConvolveMatrix.targetX.baseVal, 0);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(feConvolveMatrix.targetX.animVal, 2, epsilon);
|
||||
assert_equals(feConvolveMatrix.targetX.baseVal, 0);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,82 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test animation of SVGInteger.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("width", "200");
|
||||
rect.setAttribute("height", "200");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var feConvolveMatrix = createSVGElement("feConvolveMatrix");
|
||||
feConvolveMatrix.setAttribute("id", "feConvlveMatrix");
|
||||
feConvolveMatrix.setAttribute("order", "3 1");
|
||||
feConvolveMatrix.setAttribute("kernelMatrix", "0 0 1");
|
||||
filter.appendChild(feConvolveMatrix);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "order");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "3 1");
|
||||
animate.setAttribute("to", "1 3");
|
||||
feConvlveMatrix.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(feConvolveMatrix.orderX.animVal, 3, epsilon);
|
||||
assert_approx_equals(feConvolveMatrix.orderY.animVal, 1, epsilon);
|
||||
assert_equals(feConvolveMatrix.orderX.baseVal, 3);
|
||||
assert_equals(feConvolveMatrix.orderY.baseVal, 1);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(feConvolveMatrix.orderX.animVal, 2, epsilon);
|
||||
assert_approx_equals(feConvolveMatrix.orderY.animVal, 2, epsilon);
|
||||
assert_equals(feConvolveMatrix.orderX.baseVal, 3);
|
||||
assert_equals(feConvolveMatrix.orderY.baseVal, 1);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(feConvolveMatrix.orderX.animVal, 1, epsilon);
|
||||
assert_approx_equals(feConvolveMatrix.orderY.animVal, 3, epsilon);
|
||||
assert_equals(feConvolveMatrix.orderX.baseVal, 3);
|
||||
assert_equals(feConvolveMatrix.orderY.baseVal, 1);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,70 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 50 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="sum" fill="freeze" by="50" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 75, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 7.0, sample4],
|
||||
["an1", 9.0, sample5],
|
||||
["an1", 60.0, sample5]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,70 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 50 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="50" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 75, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 7.0, sample4],
|
||||
["an1", 9.0, sample5],
|
||||
["an1", 60.0, sample5]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s, then reset to 10. -->
|
||||
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="sum" fill="freeze" by="90" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 55, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 3.999, sample3],
|
||||
["an1", 4.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s, then reset to 10. -->
|
||||
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="90" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 55, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 3.999, sample3],
|
||||
["an1", 4.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="90" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 55, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 3.999, sample3],
|
||||
["an1", 4.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(5%)" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(11.25%)" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 55, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 3.999, sample3],
|
||||
["an1", 4.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,76 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 10 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="remove" by="calc(4% + 8)" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" by="calc(10% + 10)" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 55, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 3.999, sample3],
|
||||
["an1", 4.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,70 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests from-by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 50 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" from="10" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="sum" fill="freeze" from="0" by="50" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 75, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 7.0, sample4],
|
||||
["an1", 9.0, sample5],
|
||||
["an1", 60.0, sample5]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests from-by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 0 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" from="10" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" from="0" by="100" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 0, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 4.999, sample3],
|
||||
["an1", 5.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests from-by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 75 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" from="10" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="sum" fill="freeze" from="25" by="25" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 75, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 87.5, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 4.999, sample3],
|
||||
["an1", 5.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>This tests from-by-animations adding to previous underlying values</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<!-- an1: Change width from 10 to 50 in 4s -->
|
||||
<!-- an2: Change width from 75 to 100 in 4s starting at 5s -->
|
||||
<rect width="10" height="100" fill="green">
|
||||
<animate id="an1" attributeType="XML" attributeName="width" fill="freeze" from="10" by="40" begin="0s" dur="4s"/>
|
||||
<animate id="an2" attributeType="XML" attributeName="width" additive="replace" fill="freeze" from="75" by="25" begin="5s" dur="4s"/>
|
||||
</rect>
|
||||
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(rect.width.animVal.value, 10, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 30, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 50, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 75, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 87.5, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample6() {
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0];
|
||||
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["an1", 0.0, sample1],
|
||||
["an1", 2.0, sample2],
|
||||
["an1", 4.0, sample3],
|
||||
["an1", 4.999, sample3],
|
||||
["an1", 5.001, sample4],
|
||||
["an1", 7.0, sample5],
|
||||
["an1", 9.0, sample6],
|
||||
["an1", 60.0, sample6]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.animationStartsImmediately = true;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,69 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation on LengthModeHeight.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
rootSVGElement.setAttribute("width", "600");
|
||||
rootSVGElement.setAttribute("height", "400");
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("font-size", "10px");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "height");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100");
|
||||
animate.setAttribute("to", "50%");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.height.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.height.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.height.animVal.value, 150, epsilon);
|
||||
assert_equals(rect.height.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.height.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.height.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,68 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation on LengthModeOther.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
rootSVGElement.setAttribute("width", "600");
|
||||
rootSVGElement.setAttribute("height", "400");
|
||||
|
||||
// Setup test document
|
||||
var circle = createSVGElement("circle");
|
||||
circle.setAttribute("id", "circle");
|
||||
circle.setAttribute("cx", "50");
|
||||
circle.setAttribute("cy", "50");
|
||||
circle.setAttribute("r", "10");
|
||||
circle.setAttribute("fill", "green");
|
||||
circle.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "r");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "10");
|
||||
animate.setAttribute("to", "50%");
|
||||
circle.appendChild(animate);
|
||||
rootSVGElement.appendChild(circle);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(circle.r.animVal.value, 10, epsilon);
|
||||
assert_equals(circle.r.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(circle.r.animVal.value, 132.5, epsilon);
|
||||
assert_equals(circle.r.baseVal.value, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(circle.r.animVal.value, 254.9, epsilon);
|
||||
assert_equals(circle.r.baseVal.value, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,69 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation on LengthModeWidth.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
rootSVGElement.setAttribute("width", "600");
|
||||
rootSVGElement.setAttribute("height", "400");
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("font-size", "10px");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100");
|
||||
animate.setAttribute("to", "50%");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 300, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,59 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation with invalid value: No spaces between number and unit.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100 px");
|
||||
animate.setAttribute("to", "200 px");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 0, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,59 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation with invalid value: No spaces before value.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", " 100pxERROR");
|
||||
animate.setAttribute("to", " 200pxERROR");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 0, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,59 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation with invalid value: No spaces after number and unit.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px ERROR");
|
||||
animate.setAttribute("to", "200px ERROR");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 0, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample2],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to cm.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100");
|
||||
animate.setAttribute("to", "200");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 150, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to cm.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "5cm");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 144.5, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 189, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,65 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to ems.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("font-size", "10px");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "20em");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 150, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to inch.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "2.5in");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 170, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 240, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to number.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "200");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 150, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to pc.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "15pc");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 170, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 240, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to cm.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100pt");
|
||||
animate.setAttribute("to", "5cm");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 161.2, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 189, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,64 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation from px to cm.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100px");
|
||||
animate.setAttribute("to", "200px");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 150, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 200, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,65 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test change of unit type for SVGLength animation.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "100");
|
||||
animate.setAttribute("to", "200px");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_equals(rect.width.animVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
|
||||
assert_equals(rect.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(rect.width.animVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
|
||||
assert_equals(rect.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(rect.width.animVal.unitType, SVGLength.SVG_LENGTHTYPE_PX);
|
||||
assert_equals(rect.width.baseVal.unitType, SVGLength.SVG_LENGTHTYPE_NUMBER);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.5, sample2],
|
||||
["animation", 2.5, sample3],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,75 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGLength animation set with 'values', different units and different count of spaces.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "width");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("values", "100px; 130 ;4cm ;6in; 200pt");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(rect.width.animVal.value, 100, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(rect.width.animVal.value, 130, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(rect.width.animVal.value, 151.2, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_approx_equals(rect.width.animVal.value, 576, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
function sample5() {
|
||||
assert_approx_equals(rect.width.animVal.value, 267, epsilon);
|
||||
assert_equals(rect.width.baseVal.value, 100);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 1.0, sample2],
|
||||
["animation", 2.0, sample3],
|
||||
["animation", 3.0, sample4],
|
||||
["animation", 3.999, sample5],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,89 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'to' animation of SVGLengthList with LengthType number.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "50 70 90 110");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "x");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "50 70 90 110");
|
||||
animate.setAttribute("to", "60 90 120 150");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 110, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 55, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 105, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 130, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 60, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 120, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 150, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,89 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'to' animation of SVGLengthList with different LengthTypes.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "50 70 90 110");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "x");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "50 70px 5cm 8pt");
|
||||
animate.setAttribute("to", "3cm 80 100px 4in");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 110, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 81.7, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 75, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 144.5, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 197.3, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 113.4, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 100, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 384, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 90);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 110);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,78 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<meta name="timeout" content="long">
|
||||
<title>Test 'to' animation of SVGLengthList with different count of items.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "50");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "x");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "50");
|
||||
animate.setAttribute("to", "70 80 90 110");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 1);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 110, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 110, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,89 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'by' animation of SVGLengthList.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "50 60 70 80");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "x");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "50 60 70 80");
|
||||
animate.setAttribute("by", "20 20 20 20");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 60, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 80, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 60, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 90, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 100, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,90 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test additive='sum' animation of SVGLengthList.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.setAttribute("id", "text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "50 60 70 80");
|
||||
text.setAttribute("y", "50");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "x");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("additive", "sum");
|
||||
animate.setAttribute("from", "0 0 0 0");
|
||||
animate.setAttribute("to", "20 20 20 20");
|
||||
text.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 60, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 80, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 60, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 90, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.x.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.x.animVal.getItem(3).value, 100, epsilon);
|
||||
|
||||
assert_equals(text.x.baseVal.numberOfItems, 4);
|
||||
assert_equals(text.x.baseVal.getItem(0).value, 50);
|
||||
assert_equals(text.x.baseVal.getItem(1).value, 60);
|
||||
assert_equals(text.x.baseVal.getItem(2).value, 70);
|
||||
assert_equals(text.x.baseVal.getItem(3).value, 80);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,62 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for SVGNumber animation.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("opacity", "0");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "opacity");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0");
|
||||
animate.setAttribute("to", "1");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 0, epsilon);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 0.5, epsilon);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 1, epsilon);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,62 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for SVGNumber animation with different exponents.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("opacity", "0");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "opacity");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0e10");
|
||||
animate.setAttribute("to", ".1e1");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
// Check initial/end conditions
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 0, epsilon);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 0.5, epsilon);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(parseFloat(getComputedStyle(rect).opacity), 1, epsilon);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,54 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for SVGNumber animation with invalid units.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("opacity", "0");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "opacity");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0px");
|
||||
animate.setAttribute("to", "1px");
|
||||
rect.appendChild(animate);
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample() {
|
||||
// Check initial/end conditions
|
||||
assert_equals(getComputedStyle(rect).opacity, '0');
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample],
|
||||
["animation", 2.0, sample],
|
||||
["animation", 3.999, sample],
|
||||
["animation", 4.001, sample]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,82 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for SVGNumber animation on SVG DOM properties.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var gradient = createSVGElement("linearGradient");
|
||||
gradient.setAttribute("id", "gradient");
|
||||
|
||||
var stop1 = createSVGElement("stop");
|
||||
stop1.setAttribute("offset", "0");
|
||||
stop1.setAttribute("stop-color", "green");
|
||||
gradient.appendChild(stop1);
|
||||
|
||||
var stop2 = createSVGElement("stop");
|
||||
stop2.setAttribute("offset", "1");
|
||||
stop2.setAttribute("stop-color", "red");
|
||||
gradient.appendChild(stop2);
|
||||
|
||||
var defsElement = createSVGElement("defs");
|
||||
defsElement.appendChild(gradient);
|
||||
rootSVGElement.appendChild(defsElement);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "0");
|
||||
rect.setAttribute("width", "100");
|
||||
rect.setAttribute("height", "100");
|
||||
rect.setAttribute("fill", "url(#gradient)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeType", "XML");
|
||||
animate.setAttribute("attributeName", "offset");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0");
|
||||
animate.setAttribute("to", "1");
|
||||
animate.setAttribute("fill", "freeze");
|
||||
stop1.appendChild(animate);
|
||||
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(stop1.offset.animVal, 0, epsilon);
|
||||
assert_equals(stop1.offset.baseVal, 0);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(stop1.offset.animVal, 0.5, epsilon);
|
||||
assert_equals(stop1.offset.baseVal, 0);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(stop1.offset.animVal, 1, epsilon);
|
||||
assert_equals(stop1.offset.baseVal, 0);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 4.0, sample3]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,90 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test SVGNumberList animation on 'rotate' attribute of text.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "40 60 80 100");
|
||||
text.setAttribute("y", "60");
|
||||
text.setAttribute("rotate", "15");
|
||||
text.setAttribute("fill", "green");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "rotate");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0 0 0 0");
|
||||
animate.setAttribute("to", "45 90 135 180");
|
||||
text.appendChild(animate);
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 1);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 15, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 0, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 0, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 0, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 0, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 22.5, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 45, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 67.5, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 90, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 45, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 90, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 135, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 180, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 0.001, sample2],
|
||||
["animation", 2.0, sample3],
|
||||
["animation", 3.999, sample4],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,90 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'by' animation of SVGNumberList on 'rotate' attribute of text.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var text = createSVGElement("text");
|
||||
text.textContent = "ABCD";
|
||||
text.setAttribute("x", "40 60 80 100");
|
||||
text.setAttribute("y", "60");
|
||||
text.setAttribute("rotate", "15");
|
||||
text.setAttribute("fill", "green");
|
||||
text.setAttribute("onclick", "executeTest()");
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "rotate");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "0 45 90 135");
|
||||
animate.setAttribute("by", "45 45 45 45");
|
||||
text.appendChild(animate);
|
||||
rootSVGElement.appendChild(text);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 1);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 15, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 0, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 45, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 90, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 135, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 22.5, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 67.5, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 112.5, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 157.5, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
function sample4() {
|
||||
assert_equals(text.rotate.animVal.numberOfItems, 4);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(0).value, 45, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(1).value, 90, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(2).value, 135, epsilon);
|
||||
assert_approx_equals(text.rotate.animVal.getItem(3).value, 180, epsilon);
|
||||
|
||||
assert_equals(text.rotate.baseVal.numberOfItems, 1);
|
||||
assert_equals(text.rotate.baseVal.getItem(0).value, 15);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 0.001, sample2],
|
||||
["animation", 2.0, sample3],
|
||||
["animation", 3.999, sample4],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,93 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'to' animation of SVGNumberOptionalNumber with optional number.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("x", "-30%");
|
||||
filter.setAttribute("y", "-30%");
|
||||
filter.setAttribute("width", "160%");
|
||||
filter.setAttribute("height", "160%");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var feGaussianBlur = createSVGElement("feGaussianBlur");
|
||||
feGaussianBlur.setAttribute("id", "blur");
|
||||
feGaussianBlur.setAttribute("stdDeviation", "5");
|
||||
filter.appendChild(feGaussianBlur);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "50");
|
||||
rect.setAttribute("y", "50");
|
||||
rect.setAttribute("width", "200");
|
||||
rect.setAttribute("height", "200");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "stdDeviation");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "5 5");
|
||||
animate.setAttribute("to", "40 10");
|
||||
feGaussianBlur.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 22.5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 7.5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 40, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 10, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.clickX = 100;
|
||||
window.clickY = 100;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,93 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'to' animation of SVGNumberOptionalNumber without optional number.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("x", "-30%");
|
||||
filter.setAttribute("y", "-30%");
|
||||
filter.setAttribute("width", "160%");
|
||||
filter.setAttribute("height", "160%");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var feGaussianBlur = createSVGElement("feGaussianBlur");
|
||||
feGaussianBlur.setAttribute("id", "blur");
|
||||
feGaussianBlur.setAttribute("stdDeviation", "5");
|
||||
filter.appendChild(feGaussianBlur);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "50");
|
||||
rect.setAttribute("y", "50");
|
||||
rect.setAttribute("width", "200");
|
||||
rect.setAttribute("height", "200");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "stdDeviation");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "5");
|
||||
animate.setAttribute("to", "40 10");
|
||||
feGaussianBlur.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 22.5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 7.5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 40, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 10, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 5);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 5);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.clickX = 60;
|
||||
window.clickY = 60;
|
||||
|
||||
</script>
|
|
@ -0,0 +1,93 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test 'to' animation of SVGNumberOptionalNumber without optional number.</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
|
||||
|
||||
<svg>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
var rootSVGElement = document.querySelector("svg");
|
||||
var epsilon = 1.0;
|
||||
|
||||
// Setup test document
|
||||
var defs = createSVGElement("defs");
|
||||
rootSVGElement.appendChild(defs);
|
||||
|
||||
var filter = createSVGElement("filter");
|
||||
filter.setAttribute("id", "filter");
|
||||
filter.setAttribute("x", "-30%");
|
||||
filter.setAttribute("y", "-30%");
|
||||
filter.setAttribute("width", "160%");
|
||||
filter.setAttribute("height", "160%");
|
||||
defs.appendChild(filter);
|
||||
|
||||
var feGaussianBlur = createSVGElement("feGaussianBlur");
|
||||
feGaussianBlur.setAttribute("id", "blur");
|
||||
feGaussianBlur.setAttribute("stdDeviation", "40 10");
|
||||
filter.appendChild(feGaussianBlur);
|
||||
|
||||
var rect = createSVGElement("rect");
|
||||
rect.setAttribute("id", "rect");
|
||||
rect.setAttribute("x", "50");
|
||||
rect.setAttribute("y", "50");
|
||||
rect.setAttribute("width", "200");
|
||||
rect.setAttribute("height", "200");
|
||||
rect.setAttribute("fill", "green");
|
||||
rect.setAttribute("filter", "url(#filter)");
|
||||
rect.setAttribute("onclick", "executeTest()");
|
||||
rootSVGElement.appendChild(rect);
|
||||
|
||||
var animate = createSVGElement("animate");
|
||||
animate.setAttribute("id", "animation");
|
||||
animate.setAttribute("attributeName", "stdDeviation");
|
||||
animate.setAttribute("begin", "0s");
|
||||
animate.setAttribute("dur", "4s");
|
||||
animate.setAttribute("from", "40 10");
|
||||
animate.setAttribute("to", "5");
|
||||
feGaussianBlur.appendChild(animate);
|
||||
|
||||
// Setup animation test
|
||||
function sample1() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 40, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 10, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 40);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 10);
|
||||
}
|
||||
|
||||
function sample2() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 22.5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 7.5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 40);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 10);
|
||||
}
|
||||
|
||||
function sample3() {
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationX.animVal, 5, epsilon);
|
||||
assert_approx_equals(feGaussianBlur.stdDeviationY.animVal, 5, epsilon);
|
||||
|
||||
assert_equals(feGaussianBlur.stdDeviationX.baseVal, 40);
|
||||
assert_equals(feGaussianBlur.stdDeviationY.baseVal, 10);
|
||||
}
|
||||
|
||||
smil_async_test((t) => {
|
||||
const expectedValues = [
|
||||
// [animationId, time, sampleCallback]
|
||||
["animation", 0.0, sample1],
|
||||
["animation", 2.0, sample2],
|
||||
["animation", 3.999, sample3],
|
||||
["animation", 4.001, sample1]
|
||||
];
|
||||
|
||||
runAnimationTest(t, expectedValues);
|
||||
});
|
||||
|
||||
window.clickX = 60;
|
||||
window.clickY = 60;
|
||||
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue