Update web-platform-tests to revision 06f77f6bfaa86f3643a79f1ec2c49c6b6955cf18

This commit is contained in:
WPT Sync Bot 2018-03-26 21:10:36 -04:00
parent 1981efcc35
commit c6c4fb2f7a
108 changed files with 2090 additions and 138 deletions

View file

@ -112941,6 +112941,18 @@
{}
]
],
"css/css-flexbox/table-as-item-auto-min-width.html": [
[
"/css/css-flexbox/table-as-item-auto-min-width.html",
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"css/css-flexbox/table-as-item-narrow-content.html": [
[
"/css/css-flexbox/table-as-item-narrow-content.html",
@ -117749,6 +117761,42 @@
{}
]
],
"css/css-layout-api/fallback-layout-invalid-child.https.html": [
[
"/css/css-layout-api/fallback-layout-invalid-child.https.html",
[
[
"/css/css-layout-api/fallback-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/fallback-layout-invalid-fragment-request.https.html": [
[
"/css/css-layout-api/fallback-layout-invalid-fragment-request.https.html",
[
[
"/css/css-layout-api/fallback-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
[
"/css/css-layout-api/fallback-layout-invalid-fragment.https.html",
[
[
"/css/css-layout-api/fallback-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/fallback-layout-return.https.html": [
[
"/css/css-layout-api/fallback-layout-return.https.html",
@ -117845,6 +117893,54 @@
{}
]
],
"css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [
[
"/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html",
[
[
"/css/css-layout-api/layout-child-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [
[
"/css/css-layout-api/perform-child-layout-fixed-block-size.https.html",
[
[
"/css/css-layout-api/layout-child-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [
[
"/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html",
[
[
"/css/css-layout-api/layout-child-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [
[
"/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html",
[
[
"/css/css-layout-api/layout-child-ref.html",
"=="
]
],
{}
]
],
"css/css-layout-api/style-map-multi.https.html": [
[
"/css/css-layout-api/style-map-multi.https.html",
@ -126849,6 +126945,30 @@
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-001.html": [
[
"/css/css-sizing/intrinsic-percent-non-replaced-001.html",
[
[
"/css/css-sizing/intrinsic-percent-non-replaced-001-ref.html",
"=="
]
],
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-003.html": [
[
"/css/css-sizing/intrinsic-percent-non-replaced-003.html",
[
[
"/css/css-sizing/intrinsic-percent-non-replaced-002-ref.html",
"=="
]
],
{}
]
],
"css/css-style-attr/style-attr-braces-001.xht": [
[
"/css/css-style-attr/style-attr-braces-001.xht",
@ -248204,6 +248324,11 @@
{}
]
],
"css/css-layout-api/support/layout-child-fixed-sizes-worklet.js": [
[
{}
]
],
"css/css-layout-api/support/layout-child-worklet.js": [
[
{}
@ -251439,6 +251564,16 @@
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-001-ref.html": [
[
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-002-ref.html": [
[
{}
]
],
"css/css-speech/OWNERS": [
[
{}
@ -297829,6 +297964,21 @@
{}
]
],
"workers/modules/resources/dynamic-import-and-then-static-import-worker.js": [
[
{}
]
],
"workers/modules/resources/dynamic-import-worker.js": [
[
{}
]
],
"workers/modules/resources/nested-dynamic-import-worker.js": [
[
{}
]
],
"workers/modules/resources/nested-static-import-worker.js": [
[
{}
@ -297839,6 +297989,11 @@
{}
]
],
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
[
{}
]
],
"workers/modules/resources/static-import-worker.js": [
[
{}
@ -317283,6 +317438,12 @@
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/block-size.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/block-size.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/border-collapse.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/border-collapse.html",
@ -317433,30 +317594,120 @@
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-family.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-language-override.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-palette.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-presentation.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-size.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-style.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-variant.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font-weight.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/font.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/font.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/gap.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/gap.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/height.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/height.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/inline-size.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/inline-size.html",
{}
]
],
"css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/isolation.html",
@ -369919,15 +370170,15 @@
{}
]
],
"workers/modules/dedicated-worker-options-type.html": [
"workers/modules/dedicated-worker-import.html": [
[
"/workers/modules/dedicated-worker-options-type.html",
"/workers/modules/dedicated-worker-import.html",
{}
]
],
"workers/modules/dedicated-worker-static-import.html": [
"workers/modules/dedicated-worker-options-type.html": [
[
"/workers/modules/dedicated-worker-static-import.html",
"/workers/modules/dedicated-worker-options-type.html",
{}
]
],
@ -390349,6 +390600,12 @@
{}
]
],
"css/css-sizing/intrinsic-percent-non-replaced-002.html": [
[
"/css/css-sizing/intrinsic-percent-non-replaced-002.html",
{}
]
],
"css/css-text-decor/text-decoration-visibility-001.xht": [
[
"/css/css-text-decor/text-decoration-visibility-001.xht",
@ -402453,7 +402710,7 @@
"support"
],
"common/worklet-reftest.js": [
"29a9c4f2f6187fc64ecd1c77bcccfa1aef278ed8",
"11ef28419b58983d473606865c0d7a47be5e4056",
"support"
],
"compat/OWNERS": [
@ -492524,6 +492781,10 @@
"078e1dd6dd61d36cec239ed75d02051f61fe60a5",
"support"
],
"css/css-flexbox/table-as-item-auto-min-width.html": [
"d70cb1447c942c9f66f6503b6c769b2db188b5dc",
"reftest"
],
"css/css-flexbox/table-as-item-narrow-content.html": [
"ccee1a24278c3177809a09009c2f15973908fa83",
"reftest"
@ -502380,6 +502641,18 @@
"3d279f42a9b8e8ea0f6dc120d36ca0597372ef9b",
"reftest"
],
"css/css-layout-api/fallback-layout-invalid-child.https.html": [
"f2fa9fefa56073f42a0537fa3140f37ca0c316da",
"reftest"
],
"css/css-layout-api/fallback-layout-invalid-fragment-request.https.html": [
"24aed5d6b0f7ea7095324ce1f59adb0498277bdf",
"reftest"
],
"css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
"991b73a63246ae1d2676df32c3a56028f5a9583b",
"reftest"
],
"css/css-layout-api/fallback-layout-return.https.html": [
"159662be847f8657d33a0607cb0e6561d57ef4e1",
"reftest"
@ -502424,6 +502697,22 @@
"567ff67317cae9906e6d159dc232c41464a4e7c6",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [
"341711737d74fb068bb3a2e348e47820c236fa49",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [
"486fe671afaa9275bc6b32c49ca4c8143290f9be",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [
"3c3b4c800af40a85eb9ddb588a07fc0d8ceec5cf",
"reftest"
],
"css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [
"a25a85095781de557edde6dd02b82ee052642bf1",
"reftest"
],
"css/css-layout-api/style-map-multi-ref.html": [
"d33f700e795484641d3cc7db1c26e09dca952209",
"support"
@ -502440,8 +502729,12 @@
"361b3c82c37c0068d23ae23e96d8e9185d3765b0",
"reftest"
],
"css/css-layout-api/support/layout-child-fixed-sizes-worklet.js": [
"5ddda72e3c9d077508622511e8685249c7803028",
"support"
],
"css/css-layout-api/support/layout-child-worklet.js": [
"bea931d2a111e173494ec3bf2adaa9cc42b73a1e",
"87af0bfedbe9d4ea23e904edc5b22382a5d5d56c",
"support"
],
"css/css-layout-api/supports.https.html": [
@ -509248,6 +509541,26 @@
"5bb192165bcb7d9a619d86dbff61831fc8de71cb",
"support"
],
"css/css-sizing/intrinsic-percent-non-replaced-001-ref.html": [
"67a4540f6b7de22155226b39e948c7a7e2c33f1b",
"support"
],
"css/css-sizing/intrinsic-percent-non-replaced-001.html": [
"58ce478fe083f05e3bdbb3f24988341f3e7095b5",
"reftest"
],
"css/css-sizing/intrinsic-percent-non-replaced-002-ref.html": [
"8c6cde1d06cd3ba83b3049edbb0016033fbb62b4",
"support"
],
"css/css-sizing/intrinsic-percent-non-replaced-002.html": [
"9d9c514c876bb9aa2c577dbd15c14358e7b0d0c4",
"visual"
],
"css/css-sizing/intrinsic-percent-non-replaced-003.html": [
"43d44ad3a75e6abb9d66d06c3cdc71dbcb366651",
"reftest"
],
"css/css-speech/Integer.html": [
"8db91e711b22ead393b1d9a18c224a7f838b85b0",
"manual"
@ -522676,6 +522989,10 @@
"32d684e452a4bafd7b58a0b33d42d32aa51ac091",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/block-size.html": [
"4dc26a97d56a24c053efac27b5988456d750d186",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/border-collapse.html": [
"93e71097d3b28c88f51210a2f2a9fcf433f80cba",
"testharness"
@ -522776,22 +523093,82 @@
"1dfca0045c2b57f36d5165139087301ffe54c63a",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
"72e8dd4dd54081fe9b2278c860f2752e2d17de74",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
"e43730c10c85fc5bbed8e6a32c594f5c643e4786",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
"7183f6fcb2fd4e713d3b2d6cbc7211a8b2a071a6",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
"8ec2ff5bbc9913680fd5fab16949f4aaf4eca740",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
"fe359fc963e95d1ca539bb9f217164292e5a13fb",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
"1a8fa0ace8426d7cfecaaa79e2f4fbd77c5265ab",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
"bb31e5cb88492bece2c54ff106d01e789e3f08a6",
"5b405bd6bb5ea140bf6a3d62b670e2924fcc6378",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
"52438b3be5d9c1037863880834e766dda7d07d5a",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
"c4a42872dca602b71f021799d29e404cfa7ed90e",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
"de9400e7f238dbc1dc47fb5f483b3ba01eefe934",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
"141eab85e1a4bcbc051d61dc502bb90613eae996",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
"737a0494625e9d22c16f791fbb437c47d4a2923b",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
"b538f2ed407c8cfd4718c28082da3de237cd9953",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
"566a8c49d7a7e71e960061fee88c9b17d33f1e45",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
"6429fa7266a227e93cb0a5d3eb19468b0f73fce8",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/font.html": [
"6f3f672ecb0ad0b4391b7c7fbd8bb666b77a1efc",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/gap.html": [
"e113dfd152548c6ba612d40af13ba5877673b043",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/height.html": [
"617ec941ab1cbd02b31b8a9bb7ce6da311109476",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/inline-size.html": [
"531ad3bba92bfdb60377dc755d40f3300d0843e0",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
"883b36434d3e3d8fee25f0ae0fee9884b5ceef44",
"testharness"
@ -546353,7 +546730,7 @@
"testharness"
],
"dom/nodes/Element-classlist.html": [
"e0a3126453af3e138c322ae0074d7ee73d604a8d",
"db5f4b3f723db026b90e299b2c7be5e5e4f081f5",
"testharness"
],
"dom/nodes/Element-closest.html": [
@ -573829,7 +574206,7 @@
"testharness"
],
"mediacapture-streams/MediaDevices-enumerateDevices.https.html": [
"892229b737d157845d9b2e24170f3bc820b10036",
"c44f824ed1836c272125b0b5b10653cb86db2a7e",
"testharness"
],
"mediacapture-streams/MediaDevices-getUserMedia.https.html": [
@ -573893,7 +574270,7 @@
"manual"
],
"mediacapture-streams/MediaStreamTrack-getCapabilities.https.html": [
"77afad651acf85273270f1b75f660e7e800c0ff1",
"23863eb0835fb86d556e6ea95692f52572a38170",
"testharness"
],
"mediacapture-streams/MediaStreamTrack-getSettings.https.html": [
@ -608228,24 +608605,40 @@
"6bffa3be83d81e2faa93119e710e4fee93fb855e",
"testharness"
],
"workers/modules/dedicated-worker-import.html": [
"752698b4f8f7298ca2ecc74d41887117a636118a",
"testharness"
],
"workers/modules/dedicated-worker-options-type.html": [
"9f6f1be759beb885e2baa746e36ace83685f649b",
"testharness"
],
"workers/modules/dedicated-worker-static-import.html": [
"d0d3dc37a8c061a1dc5213f8fe79e7f985c48b81",
"testharness"
"workers/modules/resources/dynamic-import-and-then-static-import-worker.js": [
"f4df69196f64cd81e92705186325004ac94db659",
"support"
],
"workers/modules/resources/dynamic-import-worker.js": [
"444e313fe51923097e3672d88d0afd30aac5ecab",
"support"
],
"workers/modules/resources/nested-dynamic-import-worker.js": [
"4ee05f3be8a1b41a9e2fa3e24d40ec5103f67eac",
"support"
],
"workers/modules/resources/nested-static-import-worker.js": [
"eb76ec7e8a0f9df6de7114e3aa9100f8374fea8f",
"38ca86e8e32df51af7d848474f31a7b8ff9dc3aa",
"support"
],
"workers/modules/resources/post-message-on-load-worker.js": [
"c67a79ade775435a67e5999d17e7cdda450c8e50",
"support"
],
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
"f69987442b6a223a868e6c1a7ca6d9cee2976068",
"support"
],
"workers/modules/resources/static-import-worker.js": [
"f3020118d7e499e0e910abc7a733e0b9c3cf1e5a",
"6d5fb2c553d2f32cdd16722a85bd65e0a172768c",
"support"
],
"workers/name-property.html": [

View file

@ -0,0 +1,2 @@
[background-image-alpha.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[background-image-multiple.https.html]
expected: TIMEOUT

View file

@ -1,3 +1,3 @@
[background-image-tiled.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[geometry-background-image-001.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[geometry-background-image-002.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[geometry-background-image-tiled-001.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[geometry-background-image-tiled-002.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[geometry-background-image-tiled-003.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[geometry-border-image-001.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17861

View file

@ -1,4 +1,4 @@
[geometry-border-image-002.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17860

View file

@ -1,4 +1,4 @@
[geometry-border-image-003.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17860

View file

@ -1,4 +1,4 @@
[geometry-border-image-004.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17860

View file

@ -1,3 +1,3 @@
[geometry-with-float-size.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT

View file

@ -1,3 +1,3 @@
[device-pixel-ratio.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[invalid-image-constructor-error.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[invalid-image-paint-error.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[invalid-image-pending-script.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[overdraw.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint-arguments.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint-function-arguments.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-composite.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-filter.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-gradient.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-image.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[paint2d-paths.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17597

View file

@ -0,0 +1,2 @@
[paint2d-rects.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-shadows.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[paint2d-transform.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-001.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[parse-input-arguments-002.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-003.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -0,0 +1,2 @@
[parse-input-arguments-004.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[parse-input-arguments-005.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-006.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -0,0 +1,2 @@
[parse-input-arguments-007.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[parse-input-arguments-008.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-009.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-010.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-011.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -1,4 +1,4 @@
[parse-input-arguments-012.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -0,0 +1,2 @@
[parse-input-arguments-013.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-014.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-015.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[parse-input-arguments-016.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17852

View file

@ -0,0 +1,2 @@
[parse-input-arguments-017.https.html]
expected: TIMEOUT

View file

@ -1,3 +1,3 @@
[parse-input-arguments-018.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-019.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-020.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-021.https.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[parse-input-arguments-022.https.html]
expected: TIMEOUT

View file

@ -1,4 +1,4 @@
[style-background-image.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17378

View file

@ -1,4 +1,4 @@
[style-before-pseudo.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17854

View file

@ -1,4 +1,4 @@
[style-first-letter-pseudo.https.html]
type: reftest
expected: FAIL
expected: TIMEOUT
bug: https://github.com/servo/servo/issues/17854

View file

@ -1,5 +1,6 @@
[Element-classlist.html]
type: testharness
expected: TIMEOUT
[classList.remove("a") with attribute value null (HTML node)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[010.html]
[Salvagability of document.opened document]
expected: FAIL

View file

@ -0,0 +1,20 @@
[dedicated-worker-import.html]
expected: ERROR
[Test static import on DedicatedWorkerGlobalScope.]
expected: TIMEOUT
[Test nested static import on DedicatedWorkerGlobalScope.]
expected: NOTRUN
[Test static import and then dynamic import on DedicatedWorkerGlobalScope.]
expected: NOTRUN
[Test dynamic import on DedicatedWorkerGlobalScope.]
expected: NOTRUN
[Test nested dynamic import on DedicatedWorkerGlobalScope.]
expected: NOTRUN
[Test dynamic import and then static import on DedicatedWorkerGlobalScope.]
expected: NOTRUN

View file

@ -1,8 +0,0 @@
[dedicated-worker-static-import.html]
expected: ERROR
[Test static import on DedicatedWorkerGlobalScope.]
expected: TIMEOUT
[Test nested static import on DedicatedWorkerGlobalScope.]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[rapid-resizing.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[shader-with-non-reserved-words.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[log_001_to_008.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[log2_001_to_008.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN

View file

@ -1,12 +1,8 @@
// To make sure that we take the snapshot at the right time, we do double
// requestAnimationFrame. In the second frame, we take a screenshot, that makes
// sure that we already have a full frame.
function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
if (typeof worklet === 'undefined') {
takeScreenshot();
return;
}
// Imports code into a worklet. E.g.
//
// importWorklet(CSS.paintWorklet, {url: 'script.js'});
// importWorklet(CSS.paintWorklet, '/* javascript string */');
function importWorklet(worklet, code) {
let url;
if (typeof code === 'object') {
url = code.url;
@ -15,11 +11,23 @@ function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
url = URL.createObjectURL(blob);
}
worklet.addModule(url).then(function() {
return worklet.addModule(url);
}
// To make sure that we take the snapshot at the right time, we do double
// requestAnimationFrame. In the second frame, we take a screenshot, that makes
// sure that we already have a full frame.
async function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
if (typeof worklet === 'undefined') {
takeScreenshot();
return;
}
await importWorklet(worklet, code);
requestAnimationFrame(function() {
requestAnimationFrame(function() {
requestAnimationFrame(function() {
takeScreenshot();
});
takeScreenshot();
});
});
}

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<title>CSS Flexbox Test: Flex item as table, specified width less than minimum intrinsic width</title>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#layout-algorithm" title="9. Flex Layout Algorithm">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="display:flex; width:100px; background:red;">
<div style="display:table; width:10px; max-width:10px; height:100px; background:green;">
<div style="width:100px; height:10px; background:green;"></div>
</div>
</div>

View file

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
<link rel="match" href="fallback-ref.html">
<meta name="assert" content="This test checks that a layout() class performing layout on an invalid child will fallback to block layout." />
<style>
.test {
background: red;
border: solid 2px;
width: 100px;
}
.test > div {
height: 100px;
}
@supports (display: layout(bad-child-layout)) {
.test {
display: layout(bad-child-layout);
background: green;
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div></div>
</div>
<script id="code" type="text/worklet">
registerLayout('bad-child-layout', class {
static get inputProperties() { return ['--fail']; }
*intrinsicSizes() {}
*layout(children, _, __, styleMap) {
if (styleMap.get('--fail').toString() !== 'true') {
this.child = children[0];
}
// Try to perform layout on the child. If its invalid (we skipped the if
// statement above) we should fallback to block layout.
const fragment = yield this.child.layoutNextFragment({});
return {autoBlockSize: 0, childFragments: [fragment]};
}
});
</script>
<script>
function raf() {
return new Promise((resolve) => {
requestAnimationFrame(() => {
resolve();
});
});
}
(async function() {
if (typeof CSS.layoutWorklet === 'undefined') {
takeScreenshot();
return;
}
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
// Ensure that all instances have a child to perform an invalid layout upon.
const test = document.getElementsByClassName('test')[0];
for (let i = 0; i < 100; i++) {
test.innerHTML = '<div><div>';
await raf();
}
// The next layout should mean that we will fallback to block.
test.innerHTML = '<div></div>';
test.style.setProperty('--fail', 'true');
// Finish up the test.
await raf();
await raf();
takeScreenshot();
})();
</script>
</html>

View file

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
<link rel="match" href="fallback-ref.html">
<meta name="assert" content="This test checks that a layout() class performing layout on an invalid fragment request will fallback to block layout." />
<style>
.test {
background: red;
border: solid 2px;
width: 100px;
}
.test > div {
height: 100px;
}
@supports (display: layout(bad-request)) {
.test {
display: layout(bad-request);
background: green;
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div></div>
</div>
<script id="code" type="text/worklet">
registerLayout('bad-request', class {
static get inputProperties() { return ['--fail']; }
*intrinsicSizes() {}
*layout(children, _, __, styleMap) {
if (styleMap.get('--fail').toString() !== 'true') {
this.request = children[0].layoutNextFragment({});
}
// Try to perform layout on the child. If its invalid (we skipped the if
// statement above) we should fallback to block layout.
const childFragments = yield [this.request];
return {autoBlockSize: 0, childFragments};
}
});
</script>
<script>
function raf() {
return new Promise((resolve) => {
requestAnimationFrame(() => {
resolve();
});
});
}
(async function() {
if (typeof CSS.layoutWorklet === 'undefined') {
takeScreenshot();
return;
}
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
// Ensure that all instances have a child to perform an invalid layout upon.
const test = document.getElementsByClassName('test')[0];
for (let i = 0; i < 100; i++) {
test.innerHTML = '<div><div>';
await raf();
}
// The next layout should mean that we will fallback to block.
test.innerHTML = '<div></div>';
test.style.setProperty('--fail', 'true');
// Finish up the test.
await raf();
await raf();
takeScreenshot();
})();
</script>
</html>

View file

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
<link rel="match" href="fallback-ref.html">
<meta name="assert" content="This test checks that a layout() class returning an invalid fragment will fallback to block layout." />
<style>
.test {
background: red;
border: solid 2px;
width: 100px;
}
.test > div {
height: 100px;
}
@supports (display: layout(bad-request)) {
.test {
display: layout(bad-request);
background: green;
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div></div>
</div>
<script id="code" type="text/worklet">
registerLayout('bad-request', class {
static get inputProperties() { return ['--fail']; }
*intrinsicSizes() {}
*layout(children, _, __, styleMap) {
if (styleMap.get('--fail').toString() !== 'true') {
this.fragment = yield children[0].layoutNextFragment({});
}
// Return, if the fragment is invalid (we skipped the if statement above)
// we should fallback to block layout.
return {autoBlockSize: 0, childFragments: [this.fragment]};
}
});
</script>
<script>
function raf() {
return new Promise((resolve) => {
requestAnimationFrame(() => {
resolve();
});
});
}
(async function() {
if (typeof CSS.layoutWorklet === 'undefined') {
takeScreenshot();
return;
}
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
// Ensure that all instances have a child to perform an invalid layout upon.
const test = document.getElementsByClassName('test')[0];
for (let i = 0; i < 100; i++) {
test.innerHTML = '<div><div>';
await raf();
}
// The next layout should mean that we will fallback to block.
test.innerHTML = '<div></div>';
test.style.setProperty('--fail', 'true');
// Finish up the test.
await raf();
await raf();
takeScreenshot();
})();
</script>
</html>

View file

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
<link rel="match" href="layout-child-ref.html">
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
margin: 10px;
height: 100px;
}
.htb {
writing-mode: horizontal-tb;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-block-size: 10;
--inline-size-expected: 2;
--block-size-expected: 10;
}
.vrl {
writing-mode: vertical-rl;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-block-size: 10;
--inline-size-expected: 2;
--block-size-expected: 10;
}
@supports (display: layout(test)) {
.test {
background: green;
display: layout(test);
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div class="htb"></div>
<div class="vrl"></div>
<!-- min/max-width should have no effect, fixedBlockSize wins. -->
<div class="htb" style="max-width: 5px;"></div>
<div class="vrl" style="max-width: 5px;"></div>
<div class="htb" style="min-width: 15px;"></div>
<div class="vrl" style="min-width: 15px;"></div>
</div>
<script>
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
</script>

View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedblocksize">
<link rel="match" href="layout-child-ref.html">
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
<style>
.test {
background: red;
margin: 10px;
width: 100px;
}
.htb {
writing-mode: horizontal-tb;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-block-size: 10;
--inline-size-expected: 3;
--block-size-expected: 10;
}
.vrl {
writing-mode: vertical-rl;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-block-size: 10;
--inline-size-expected: 3;
--block-size-expected: 10;
}
@supports (display: layout(test)) {
.test {
background: green;
display: layout(test);
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div class="htb"></div>
<div class="vrl"></div>
<!-- min/max-height should have no effect, fixedBlockSize wins. -->
<div class="htb" style="max-height: 5px;"></div>
<div class="vrl" style="max-height: 5px;"></div>
<div class="htb" style="min-height: 15px;"></div>
<div class="vrl" style="min-height: 15px;"></div>
</div>
<script>
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
</script>

View file

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
<link rel="match" href="layout-child-ref.html">
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
<style>
.test {
writing-mode: vertical-rl;
background: red;
margin: 10px;
height: 100px;
}
.htb {
writing-mode: horizontal-tb;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-inline-size: 10;
--inline-size-expected: 10;
--block-size-expected: 3;
}
.vrl {
writing-mode: vertical-rl;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-inline-size: 10;
--inline-size-expected: 10;
--block-size-expected: 3;
}
@supports (display: layout(test)) {
.test {
background: green;
display: layout(test);
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div class="htb"></div>
<div class="vrl"></div>
<!-- min/max-height should have no effect, fixedInlineSize wins. -->
<div class="htb" style="max-height: 5px;"></div>
<div class="vrl" style="max-height: 5px;"></div>
<div class="htb" style="min-height: 15px;"></div>
<div class="vrl" style="min-height: 15px;"></div>
</div>
<script>
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
</script>

View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
<link rel="match" href="layout-child-ref.html">
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
<style>
.test {
background: red;
margin: 10px;
width: 100px;
}
.htb {
writing-mode: horizontal-tb;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-inline-size: 10;
--inline-size-expected: 10;
--block-size-expected: 2;
}
.vrl {
writing-mode: vertical-rl;
visibility: hidden;
width: 3px;
height: 2px;
--fixed-inline-size: 10;
--inline-size-expected: 10;
--block-size-expected: 2;
}
@supports (display: layout(test)) {
.test {
background: green;
display: layout(test);
}
}
</style>
<script src="/common/reftest-wait.js"></script>
<script src="/common/worklet-reftest.js"></script>
<div class="test">
<div class="htb"></div>
<div class="vrl"></div>
<!-- min/max-width should have no effect, fixedInlineSize wins. -->
<div class="htb" style="max-width: 5px;"></div>
<div class="vrl" style="max-width: 5px;"></div>
<div class="htb" style="min-width: 15px;"></div>
<div class="vrl" style="min-width: 15px;"></div>
</div>
<script>
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
</script>

View file

@ -0,0 +1,52 @@
import {areArraysEqual} from '/common/arrays.js';
function parseNumber(value) {
const num = parseInt(value.toString());
if (isNaN(num)) return undefined;
return num;
}
registerLayout('test', class {
static get childInputProperties() {
return [
'--fixed-inline-size',
'--fixed-block-size',
'--inline-size-expected',
'--block-size-expected'
];
}
*intrinsicSizes() {}
*layout(children, edges, constraints, styleMap) {
const childFragments = yield children.map((child) => {
const childConstraints = {};
const fixedInlineSize = parseNumber(child.styleMap.get('--fixed-inline-size'));
const fixedBlockSize = parseNumber(child.styleMap.get('--fixed-block-size'));
return child.layoutNextFragment({fixedInlineSize, fixedBlockSize});
});
const actual = childFragments.map((childFragment) => {
return {
inlineSize: childFragment.inlineSize,
blockSize: childFragment.blockSize,
};
});
const expected = children.map((child) => {
return {
inlineSize: parseInt(child.styleMap.get('--inline-size-expected').toString()),
blockSize: parseInt(child.styleMap.get('--block-size-expected').toString()),
};
});
const equalityFunc = (a, b) => {
return a.inlineSize == b.inlineSize && a.blockSize == b.blockSize;
};
if (!areArraysEqual(expected, actual, equalityFunc)) {
return {autoBlockSize: 0, childFragments};
}
return {autoBlockSize: 100, childFragments};
}
});

View file

@ -16,9 +16,11 @@ registerLayout('test', class {
return child.styleMap.get('--child').toString().trim();
});
if (!areArraysEqual(expected, actual))
return {autoBlockSize: 0};
const childFragments = yield children.map((child) => { return child.layoutNextFragment({}); });
return {autoBlockSize: 100};
if (!areArraysEqual(expected, actual))
return {autoBlockSize: 0, childFragments};
return {autoBlockSize: 100, childFragments};
}
});

View file

@ -0,0 +1,71 @@
<!DOCTYPE html>
<title>Reference</title>
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
color: blue;
font: 20px/1 Ahem;
}
.zero {
width: 0;
}
.infinite {
width: 400px; /* close enough */
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
}
/* controls for min-width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are larger than content to see if how they take effect */
.control {
width: 60px;
}
.raw-percent,
.calc-percent {
width: 160px;
margin-right: -100px;
}
.no-percent {
width: 160px;
}
</style>
<!-- calculating min-content widths -->
<div class='zero container'>
<div><div class="control">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="raw-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="calc-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="no-percent">ppp pp</div></div>
</div>
<!-- calculating max-content widths -->
<div class='infinite container'>
<div><div class="control">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="raw-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="calc-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="no-percent">p p</div></div>
</div>

View file

@ -0,0 +1,71 @@
<!DOCTYPE html>
<title>Percentages of min-width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
<link rel="match" href="intrinsic-percent-non-replaced-001-ref.html">
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
color: blue;
font: 20px/1 Ahem;
}
.zero {
width: 0;
}
.infinite {
width: 400px; /* close enough */
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
}
/* test min-width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are larger than content to see if how they take effect */
.raw-percent {
min-width: 200%;
}
.calc-percent {
min-width: calc(160px + 0%);
}
.no-percent {
min-width: 160px;
}
</style>
<!-- calculating min-content widths -->
<div class='zero container'>
<div><div class="control">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="raw-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="calc-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="no-percent">ppp pp</div></div>
</div>
<!-- calculating max-content widths -->
<div class='infinite container'>
<div><div class="control">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="raw-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="calc-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="no-percent">p p</div></div>
</div>

View file

@ -0,0 +1,71 @@
<!DOCTYPE html>
<title>Reference</title>
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
color: blue;
font: 20px/1 Ahem;
}
.zero {
width: 0;
}
.infinite {
width: 400px; /* close enough */
}
/* visualize size contribution */
.container > div {
float: left; /* shrinkwrap */
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
}
/* controls for width, max-width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are larger than content to see if how they take effect */
.control {
width: 60px;
}
.raw-percent,
.calc-percent {
width: 40px;
margin-right: 20px;
}
.no-percent {
width: 40px;
}
</style>
<!-- calculating min-content widths -->
<div class='zero container'>
<div><div class="control">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="raw-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="calc-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="no-percent">ppp pp</div></div>
</div>
<!-- calculating max-content widths -->
<div class='infinite container'>
<div><div class="control">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="raw-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="calc-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="no-percent">p p</div></div>
</div>

View file

@ -0,0 +1,70 @@
<!DOCTYPE html>
<title>Percentages of max-width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
color: blue;
font: 20px/1 Ahem;
}
.zero {
width: 0;
}
.infinite {
width: 400px; /* close enough */
}
/* visualize size contribution */
.container > div {
float: left; /* shrinkwrap */
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
}
/* test max-width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are smaller than content to see if how they take effect */
.raw-percent {
max-width: 50%;
}
.calc-percent {
max-width: calc(40px + 0%);
}
.no-percent {
max-width: 40px;
}
</style>
<!-- calculating min-content widths -->
<div class='zero container'>
<div><div class="control">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="raw-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="calc-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="no-percent">ppp pp</div></div>
</div>
<!-- calculating max-content widths -->
<div class='infinite container'>
<div><div class="control">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="raw-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="calc-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="no-percent">p p</div></div>
</div>

View file

@ -0,0 +1,71 @@
<!DOCTYPE html>
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
<link rel="match" href="intrinsic-percent-non-replaced-002-ref.html">
<style>
/* establish context */
.container {
clear: both;
padding: 10px;
color: blue;
font: 20px/1 Ahem;
}
.zero {
width: 0;
}
.infinite {
width: 400px; /* close enough */
}
/* visualize size contribution */
.container > div {
float: left;
border: solid orange 20px;
border-style: none solid;
}
.container > div > div {
border-right: solid 20px aqua;
}
/* test width */
/* content = 100% = 80px = 4ch + border */
/* choose sizes that are different than content to see if how they take effect */
.raw-percent {
width: 50%;
}
.calc-percent {
width: calc(40px + 0%);
}
.no-percent {
width: 40px;
}
</style>
<!-- calculating min-content widths -->
<div class='zero container'>
<div><div class="control">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="raw-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="calc-percent">ppp pp</div></div>
</div>
<div class='zero container'>
<div><div class="no-percent">ppp pp</div></div>
</div>
<!-- calculating max-content widths -->
<div class='infinite container'>
<div><div class="control">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="raw-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="calc-percent">p p</div></div>
</div>
<div class='infinite container'>
<div><div class="no-percent">p p</div></div>
</div>

View file

@ -0,0 +1,51 @@
<!doctype html>
<meta charset="utf-8">
<title>'block-size' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('block-size', [
{ syntax: 'auto' },
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
runPropertyTests('min-block-size', [
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
runPropertyTests('max-block-size', [
{ syntax: 'none' },
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
</script>

View file

@ -0,0 +1,23 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-family' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
// FIXME: font-family is list-valued. Run list-valued tests here too.
runUnsupportedPropertyTests('font-family', [
'Georgia',
'"Gill Sans"',
'sans-serif',
]);
</script>

View file

@ -0,0 +1,24 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-language-override' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-language-override', [
{ syntax: 'normal' },
]);
runUnsupportedPropertyTests('font-language-override', [
'"SRB"',
]);
</script>

View file

@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-optical-sizing' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-optical-sizing', [
{ syntax: 'auto' },
{ syntax: 'none' },
]);
</script>

View file

@ -0,0 +1,26 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-palette' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-palette', [
{ syntax: 'normal' },
{ syntax: 'light' },
{ syntax: 'dark' },
]);
runUnsupportedPropertyTests('font-palette', [
'Augusta'
]);
</script>

View file

@ -0,0 +1,22 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-presentation' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-presentation', [
{ syntax: 'auto' },
{ syntax: 'text' },
{ syntax: 'emoji' },
]);
</script>

View file

@ -0,0 +1,24 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-size-adjust' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-size-adjust', [
{ syntax: 'none' },
{
syntax: '<number>',
specified: assert_is_equal_with_range_handling
},
]);
</script>

View file

@ -13,53 +13,60 @@
<script>
'use strict';
runPropertyTests('font-size', [
{
syntax: 'xx-small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'x-small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'medium',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'x-large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'xx-large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'larger',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'smaller',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling,
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling,
computed: (_, result) => assert_is_unit('px', result)
},
]);
for (const property of ['font-size', 'font-min-size', 'font-max-size']) {
// font-max-size also supports 'infinity' keyword
const infinity = property === 'font-max-size' ?
[{ syntax: 'infinity'}] : [];
runPropertyTests(property, [
...infinity,
{
syntax: 'xx-small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'x-small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'small',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'medium',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'x-large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'xx-large',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'larger',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: 'smaller',
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling,
computed: (_, result) => assert_is_unit('px', result)
},
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling,
computed: (_, result) => assert_is_unit('px', result)
},
]);
}
</script>

View file

@ -0,0 +1,32 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-stretch' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-stretch', [
{ syntax: 'normal' },
{ syntax: 'ultra-condensed' },
{ syntax: 'extra-condensed' },
{ syntax: 'condensed' },
{ syntax: 'semi-condensed' },
{ syntax: 'semi-expanded' },
{ syntax: 'expanded' },
{ syntax: 'extra-expanded' },
{ syntax: 'ultra-expanded' },
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
]);
</script>

View file

@ -0,0 +1,27 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-synthesis' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-synthesis', [
{ syntax: 'none' },
{ syntax: 'weight' },
{ syntax: 'style' },
{ syntax: 'small-caps' },
]);
runUnsupportedPropertyTests('font-synthesis', [
'weight style', 'style small-caps', 'small-caps weight style'
]);
</script>

View file

@ -0,0 +1,31 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-variant-alternates' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-variant-alternates', [
{ syntax: 'normal' },
{ syntax: 'historical-forms' },
]);
runUnsupportedPropertyTests('font-variant-alternates', [
'stylistic(foo)',
'styleset(foo)',
'character-variant(foo)',
'swash(foo)',
'ornaments(foo)',
'annotation(foo)',
'swash(foo) annotation(foo2)',
]);
</script>

View file

@ -0,0 +1,22 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-variant-emoji' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-variant-emoji', [
{ syntax: 'auto' },
{ syntax: 'text' },
{ syntax: 'emoji' },
]);
</script>

View file

@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-variant' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runUnsupportedPropertyTests('font-variant', [
'normal', 'no-common-ligatures proportional-nums',
'common-ligatures tabular-nums', 'small-caps slashed-zero'
]);
</script>

View file

@ -0,0 +1,24 @@
<!doctype html>
<meta charset="utf-8">
<title>'font-variation-settings' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('font-variation-settings', [
{ syntax: 'normal' },
]);
runUnsupportedPropertyTests('font-variation-settings', [
'"XHGT" 0.7',
]);
</script>

View file

@ -0,0 +1,24 @@
<!doctype html>
<meta charset="utf-8">
<title>'font' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runUnsupportedPropertyTests('font', [
'1.2em "Fira Sans", sans-serif',
'italic 1.2em "Fira Sans", serif',
'italic small-caps bold 16px/2 cursive',
'small-caps bold 24px/1 sans-serif',
'caption',
]);
</script>

View file

@ -0,0 +1,30 @@
<!doctype html>
<meta charset="utf-8">
<title>'*-gap' properties</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#dom-stylepropertymapreadonly-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#reify-stylevalue">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
for (const prefix of ['column', 'row']) {
runPropertyTests(`${prefix}-gap`, [
{ syntax: 'normal' },
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
]);
}
</script>

View file

@ -0,0 +1,51 @@
<!doctype html>
<meta charset="utf-8">
<title>'inline-size' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<script src="resources/testsuite.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
runPropertyTests('inline-size', [
{ syntax: 'auto' },
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
runPropertyTests('min-inline-size', [
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
runPropertyTests('max-inline-size', [
{ syntax: 'none' },
{
syntax: '<percentage>',
specified: assert_is_equal_with_range_handling
},
{
syntax: '<length>',
specified: assert_is_equal_with_range_handling
},
]);
</script>

View file

@ -31,6 +31,13 @@ function checkModification(e, funcName, args, expectedRes, before, after,
}
setClass(e, before);
var obs;
// If we have MutationObservers available, do some checks to make
// sure attribute sets are happening at sane times.
if (self.MutationObserver) {
obs = new MutationObserver(() => {});
obs.observe(e, { attributes: true });
}
if (shouldThrow) {
assert_throws(expectedException, function() {
var list = e.classList;
@ -40,6 +47,21 @@ function checkModification(e, funcName, args, expectedRes, before, after,
var list = e.classList;
var res = list[funcName].apply(list, args);
}
if (obs) {
var mutationRecords = obs.takeRecords();
obs.disconnect();
if (shouldThrow) {
assert_equals(mutationRecords.length, 0,
"There should have been no mutation");
} else if (funcName == "replace") {
assert_equals(mutationRecords.length == 1,
expectedRes,
"Should have a mutation exactly when replace() returns true");
} else {
// For other functions, would need to check when exactly
// mutations are supposed to happen.
}
}
if (!shouldThrow) {
assert_equals(res, expectedRes, "wrong return value");
}

View file

@ -33,6 +33,8 @@ promise_test(function() {
assert_equals(typeof capabilities.groupId, "string", "groupId must be a string.");
if (mediainfo.kind == "audioinput") {
assert_equals(typeof capabilities.echoCancellation, "object", "echoCancellation must be an object.");
assert_equals(typeof capabilities.autoGainControl, "object", "autoGainControl must be an object.");
assert_equals(typeof capabilities.noiseSuppression, "object", "noiseSuppression must be an object.");
}
if (mediainfo.kind == "videoinput") {
assert_equals(typeof capabilities.facingMode, "object", "facingMode must be an object.");

View file

@ -12,6 +12,8 @@
var videoCapabilities = stream.getVideoTracks()[0].getCapabilities();
assert_true(undefined !== audioCapabilities.deviceId, "MediaTrackCapabilities's deviceId should exist for an audio track.");
assert_true(undefined !== audioCapabilities.echoCancellation, "MediaTrackCapabilities's echoCancellation should exist for an audio track.");
assert_true(undefined !== audioCapabilities.autoGainControl, "MediaTrackCapabilities's autoGainControl should exist for an audio track.");
assert_true(undefined !== audioCapabilities.noiseSuppression, "MediaTrackCapabilities's noiseSuppression should exist for an audio track.");
assert_true(undefined !== videoCapabilities.deviceId, "MediaTrackCapabilities's deviceId should exist for a video track.");
});
});

View file

@ -11,17 +11,19 @@ Install the following dependencies:
- [the Mozilla Firefox web browser](https://mozilla.org/firefox)
- [the GeckoDriver server](https://github.com/mozilla/geckodriver)
Once these dependencies are satisfied, the tests may be run from a command line
by executing the following command from this directory:
Make sure `geckodriver` can be found in your `PATH`.
tox
Currently, the tests should be run with Firefox Nightly.
In order to specify the path to Firefox Nightly, use the following command-line option:
Currently, the tests should be run with the latest *Firefox Nightly*. In order to
specify the path to Firefox Nightly, use the following command-line option:
tox -- --binary=/path/to/FirefoxNightly
### Automated Script
Alternatively, you may run `tools/ci/ci_resources_unittest.sh`, which only depends on
Python 2. The script will install other dependencies automatically and start `tox` with
the correct arguments.
## Authoring Tests
Test cases are expressed as `.html` files located within the `tests/`

View file

@ -8,7 +8,7 @@ import urlparse
from abc import ABCMeta, abstractmethod
from ..testrunner import Stop
from protocol import Protocol
from protocol import Protocol, BaseProtocolPart
here = os.path.split(__file__)[0]
@ -411,7 +411,23 @@ class WdspecRun(object):
self.result_flag.set()
class ConnectionlessBaseProtocolPart(BaseProtocolPart):
def execute_script(self, script, async=False):
pass
def set_timeout(self, timeout):
pass
def wait(self):
pass
def set_window(self, handle):
pass
class ConnectionlessProtocol(Protocol):
implements = [ConnectionlessBaseProtocolPart]
def connect(self):
pass

Some files were not shown because too many files have changed in this diff Show more