Update web-platform-tests to revision 60ad712df2130b21908c4a055abf241d68ba9647

This commit is contained in:
WPT Sync Bot 2019-01-20 21:07:09 -05:00
parent ccc4149b30
commit 03d8b09382
46 changed files with 1257 additions and 139 deletions

View file

@ -37,3 +37,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -136969,6 +136969,30 @@
{}
]
],
"css/css-tables/border-collapse-double-border.html": [
[
"/css/css-tables/border-collapse-double-border.html",
[
[
"/css/css-tables/border-collapse-double-border-notref.html",
"!="
]
],
{}
]
],
"css/css-tables/border-conflict-resolution.html": [
[
"/css/css-tables/border-conflict-resolution.html",
[
[
"/css/css-tables/border-conflict-resolution-ref.html",
"=="
]
],
{}
]
],
"css/css-tables/fixup-dynamic-anonymous-inline-table-001.html": [
[
"/css/css-tables/fixup-dynamic-anonymous-inline-table-001.html",
@ -269819,6 +269843,16 @@
{}
]
],
"css/css-tables/border-collapse-double-border-notref.html": [
[
{}
]
],
"css/css-tables/border-conflict-resolution-ref.html": [
[
{}
]
],
"css/css-tables/floats/floats-wrap-bfc-006b-ref.xht": [
[
{}
@ -322214,6 +322248,11 @@
{}
]
],
"webdriver/tests/new_window/__init__.py": [
[
{}
]
],
"webdriver/tests/perform_actions/__init__.py": [
[
{}
@ -345913,6 +345952,12 @@
{}
]
],
"css/css-scroll-anchoring/clamp-negative-overflow.html": [
[
"/css/css-scroll-anchoring/clamp-negative-overflow.html",
{}
]
],
"css/css-scroll-anchoring/clipped-scrollers-skipped.html": [
[
"/css/css-scroll-anchoring/clipped-scrollers-skipped.html",
@ -345943,6 +345988,12 @@
{}
]
],
"css/css-scroll-anchoring/exclude-sticky.html": [
[
"/css/css-scroll-anchoring/exclude-sticky.html",
{}
]
],
"css/css-scroll-anchoring/heuristic-with-offset-update.html": [
[
"/css/css-scroll-anchoring/heuristic-with-offset-update.html",
@ -345961,6 +346012,12 @@
{}
]
],
"css/css-scroll-anchoring/multicol-fragmented-anchor.html": [
[
"/css/css-scroll-anchoring/multicol-fragmented-anchor.html",
{}
]
],
"css/css-scroll-anchoring/negative-layout-overflow.html": [
[
"/css/css-scroll-anchoring/negative-layout-overflow.html",
@ -345979,6 +346036,18 @@
{}
]
],
"css/css-scroll-anchoring/opt-out-inner-table.html": [
[
"/css/css-scroll-anchoring/opt-out-inner-table.html",
{}
]
],
"css/css-scroll-anchoring/opt-out-table.html": [
[
"/css/css-scroll-anchoring/opt-out-table.html",
{}
]
],
"css/css-scroll-anchoring/opt-out.html": [
[
"/css/css-scroll-anchoring/opt-out.html",
@ -347179,6 +347248,96 @@
{}
]
],
"css/css-tables/parsing/border-collapse-computed.html": [
[
"/css/css-tables/parsing/border-collapse-computed.html",
{}
]
],
"css/css-tables/parsing/border-collapse-invalid.html": [
[
"/css/css-tables/parsing/border-collapse-invalid.html",
{}
]
],
"css/css-tables/parsing/border-collapse-valid.html": [
[
"/css/css-tables/parsing/border-collapse-valid.html",
{}
]
],
"css/css-tables/parsing/border-spacing-computed.html": [
[
"/css/css-tables/parsing/border-spacing-computed.html",
{}
]
],
"css/css-tables/parsing/border-spacing-invalid.html": [
[
"/css/css-tables/parsing/border-spacing-invalid.html",
{}
]
],
"css/css-tables/parsing/border-spacing-valid.html": [
[
"/css/css-tables/parsing/border-spacing-valid.html",
{}
]
],
"css/css-tables/parsing/caption-side-computed.html": [
[
"/css/css-tables/parsing/caption-side-computed.html",
{}
]
],
"css/css-tables/parsing/caption-side-invalid.html": [
[
"/css/css-tables/parsing/caption-side-invalid.html",
{}
]
],
"css/css-tables/parsing/caption-side-valid.html": [
[
"/css/css-tables/parsing/caption-side-valid.html",
{}
]
],
"css/css-tables/parsing/empty-cells-computed.html": [
[
"/css/css-tables/parsing/empty-cells-computed.html",
{}
]
],
"css/css-tables/parsing/empty-cells-invalid.html": [
[
"/css/css-tables/parsing/empty-cells-invalid.html",
{}
]
],
"css/css-tables/parsing/empty-cells-valid.html": [
[
"/css/css-tables/parsing/empty-cells-valid.html",
{}
]
],
"css/css-tables/parsing/table-layout-computed.html": [
[
"/css/css-tables/parsing/table-layout-computed.html",
{}
]
],
"css/css-tables/parsing/table-layout-invalid.html": [
[
"/css/css-tables/parsing/table-layout-invalid.html",
{}
]
],
"css/css-tables/parsing/table-layout-valid.html": [
[
"/css/css-tables/parsing/table-layout-valid.html",
{}
]
],
"css/css-tables/percent-width-ignored-001.tentative.html": [
[
"/css/css-tables/percent-width-ignored-001.tentative.html",
@ -445811,6 +445970,32 @@
{}
]
],
"webdriver/tests/new_window/new.py": [
[
"/webdriver/tests/new_window/new.py",
{}
]
],
"webdriver/tests/new_window/new_tab.py": [
[
"/webdriver/tests/new_window/new_tab.py",
{}
]
],
"webdriver/tests/new_window/new_window.py": [
[
"/webdriver/tests/new_window/new_window.py",
{}
]
],
"webdriver/tests/new_window/user_prompts.py": [
[
"/webdriver/tests/new_window/user_prompts.py",
{
"timeout": "long"
}
]
],
"webdriver/tests/perform_actions/key.py": [
[
"/webdriver/tests/perform_actions/key.py",
@ -570236,6 +570421,10 @@
"2c46c28dc2190592d242c3260ea5cc28415c16c0",
"testharness"
],
"css/css-scroll-anchoring/clamp-negative-overflow.html": [
"4f0b5fe9a26766b566672d9b8f9174bcb6857a3d",
"testharness"
],
"css/css-scroll-anchoring/clipped-scrollers-skipped.html": [
"594cd604f4c5e52afa75894d45931150d0b56b0d",
"testharness"
@ -570256,6 +570445,10 @@
"cea6b61dfe8b60754f656c860fe4d6f2dfff0c18",
"testharness"
],
"css/css-scroll-anchoring/exclude-sticky.html": [
"2158d39802969be102ff9a20e256a3ae78acb51d",
"testharness"
],
"css/css-scroll-anchoring/heuristic-with-offset-update.html": [
"7fcbd983ed569025e5f46fe69002ca91e86fd21a",
"testharness"
@ -570268,6 +570461,10 @@
"fa7655bcd8afce189368ac412e094f98ccebbdca",
"testharness"
],
"css/css-scroll-anchoring/multicol-fragmented-anchor.html": [
"931a88ccbfd261487b2233f0b6292f9c1e2e16e6",
"testharness"
],
"css/css-scroll-anchoring/negative-layout-overflow.html": [
"e1ce331f1affaf15e312f2c720a38acaa11b60a5",
"testharness"
@ -570280,6 +570477,14 @@
"ec548dc3d65bf3237039924ccdb0347a765f1c46",
"testharness"
],
"css/css-scroll-anchoring/opt-out-inner-table.html": [
"d5ec0738212f42bd0c01823a115bd73caf8a8cf4",
"testharness"
],
"css/css-scroll-anchoring/opt-out-table.html": [
"83cfef97970b24a8cd03534d0060049769d80e29",
"testharness"
],
"css/css-scroll-anchoring/opt-out.html": [
"12d46c13f9629472d82a9ffd955d1cf40dbbfe6b",
"testharness"
@ -572348,6 +572553,22 @@
"99d2cfc239fb15f26c58bc1da7c258ae3d6d9fbc",
"reftest"
],
"css/css-tables/border-collapse-double-border-notref.html": [
"8f4222211d76fb8f6be9cb61a7b9979a3b7b89a7",
"support"
],
"css/css-tables/border-collapse-double-border.html": [
"f7a00756e8154300ebdf3073f9b2e0945cb07eb0",
"reftest"
],
"css/css-tables/border-conflict-resolution-ref.html": [
"f19032171b8a0d8e33a78c1f53388a19c79b757d",
"support"
],
"css/css-tables/border-conflict-resolution.html": [
"7248befef57932b2d849630637051e02b480a361",
"reftest"
],
"css/css-tables/bounding-box-computation-1.html": [
"4173f399bd7cfec93733552fb85890231d8da9c9",
"testharness"
@ -572516,6 +572737,66 @@
"a8745487b6702b8b8e8ac85bd843014dc296b717",
"reftest"
],
"css/css-tables/parsing/border-collapse-computed.html": [
"1ad0b6d701a7bbc1b49a9f3d3a34270dbd64ed29",
"testharness"
],
"css/css-tables/parsing/border-collapse-invalid.html": [
"9b10062f0f35be958818ef70345e4ab9df56258d",
"testharness"
],
"css/css-tables/parsing/border-collapse-valid.html": [
"2dc8ae45a3862ba465711ab57dd8f8f7c1af9bab",
"testharness"
],
"css/css-tables/parsing/border-spacing-computed.html": [
"384321fa8ed393923a4175a4844d7b624bda2e53",
"testharness"
],
"css/css-tables/parsing/border-spacing-invalid.html": [
"47fd283ccfb4fabdb73ed0853d3f4942bb54a7c2",
"testharness"
],
"css/css-tables/parsing/border-spacing-valid.html": [
"98bf402fc6ccd0266908da2d6270e5e4af71f670",
"testharness"
],
"css/css-tables/parsing/caption-side-computed.html": [
"ea618891878e195b97374fc460bb02d8c88c0f5c",
"testharness"
],
"css/css-tables/parsing/caption-side-invalid.html": [
"1552e4d241f640681862dc76d0e1b0193fc3c889",
"testharness"
],
"css/css-tables/parsing/caption-side-valid.html": [
"a97683a6f428ad9844f99997c2c6da1156f57304",
"testharness"
],
"css/css-tables/parsing/empty-cells-computed.html": [
"f8f6663c6603b35beefe3dffab2719fa6fba8ccf",
"testharness"
],
"css/css-tables/parsing/empty-cells-invalid.html": [
"4b5bf95dcdcbf9bd904510f35e9fc516b782e24a",
"testharness"
],
"css/css-tables/parsing/empty-cells-valid.html": [
"c3483aafe01d1b4da6ded96f8c66dab39c971a93",
"testharness"
],
"css/css-tables/parsing/table-layout-computed.html": [
"53a43151ed576686759a9e87286dc21a9934276d",
"testharness"
],
"css/css-tables/parsing/table-layout-invalid.html": [
"23a60ca56e75af561cae308e2ce33711a2208c1d",
"testharness"
],
"css/css-tables/parsing/table-layout-valid.html": [
"bf94ed83693de1e49c7396579c4fecd6ffe88bee",
"testharness"
],
"css/css-tables/percent-width-ignored-001.tentative.html": [
"214eee7152b66a4198a2e81d7d62da9a295b5d98",
"testharness"
@ -602321,15 +602602,15 @@
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml": [
"f09e2a448da8a5466bffd31d505cd90cbc34fcc2",
"ef2a0685f25d84ed8cc1f9272a3c59b3ccb3470b",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml": [
"56bdd5fe4020ea641aa0c778fc49b500e4de2b6d",
"678b7f5096e94c0c78097407e0cf8ad89a2d893f",
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml": [
"002f20fb3335c7e0cb890dd267f36adeabab4f1b",
"faed08350aaec8e20bcad677b71d71f7ea5d0f9b",
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-002-ref.xhtml": [
@ -603125,15 +603406,15 @@
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001-ref.xhtml": [
"4619337e75bff1824d83ade9e3926ba592560701",
"e3f0276fda17436b653e236b359f5837c9257b40",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001a.xhtml": [
"37c9db7a3165c22d12328c3294d71b45a8580dba",
"494c35bb68703a67ceb6e15817b221ddf488c13a",
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-001b.xhtml": [
"43c5405647d72d71c10b699e6c390f16b6a0f04a",
"468d5150fb33d22e9bf56b23af6b74e87d04dd74",
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-002-ref.xhtml": [
@ -603197,11 +603478,11 @@
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-003-ref.xhtml": [
"a205a6bad6bbb65895e82cf020ad18268e3c8872",
"12064db1a5df2dbe82b214d8bc92ee78dcd0b350",
"support"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-003.xhtml": [
"dd32333e4fb15d51723454af44279db3d7db5896",
"8b99455e71590dc294be187f8ebfde6a43d6ed76",
"reftest"
],
"css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-004-ref.xhtml": [
@ -681972,6 +682253,26 @@
"4f2652bba86ce67eb6f6e0c42ee4d2e2685f113e",
"wdspec"
],
"webdriver/tests/new_window/__init__.py": [
"e16014597cf88f465e910358c27f72381292bd6d",
"support"
],
"webdriver/tests/new_window/new.py": [
"0abdeac614e2d565a4a1c6a4b463a3a08f2721da",
"wdspec"
],
"webdriver/tests/new_window/new_tab.py": [
"fbb249fd78361681fe755f72d14a6879d5725cbf",
"wdspec"
],
"webdriver/tests/new_window/new_window.py": [
"eb4db6729ecaa2c6a8ba92f272c4dee90899e3a2",
"wdspec"
],
"webdriver/tests/new_window/user_prompts.py": [
"0d841468ee48995a4f1b2c71ec7f69adcb37baae",
"wdspec"
],
"webdriver/tests/perform_actions/__init__.py": [
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
"support"

View file

@ -509,3 +509,27 @@
[display display(static to absolute) / values]
expected: FAIL
[border-bottom-left-radius border-radius(px-px) / events]
expected: FAIL
[border-top-right-radius border-radius(px-px) / events]
expected: FAIL
[border-bottom-right-radius border-radius(px-px) / events]
expected: FAIL
[border-top-right-radius border-radius(px) / events]
expected: FAIL
[border-bottom-left-radius border-radius(px) / events]
expected: FAIL
[border-top-left-radius border-radius(px) / events]
expected: FAIL
[border-bottom-right-radius border-radius(px) / events]
expected: FAIL
[border-top-left-radius border-radius(px-px) / events]
expected: FAIL

View file

@ -3,3 +3,6 @@
[scroll-behavior: smooth on DIV element]
expected: FAIL
[Instant scrolling while doing history navigation.]
expected: FAIL

View file

@ -32,7 +32,6 @@
[single-byte-decoder.html?XMLHttpRequest]
expected: CRASH
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -58,100 +57,7 @@
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: x-cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: windows-1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: windows-1254 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: csisolatin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: windows-1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: l5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: x-cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: latin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso-ir-148 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: windows-1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: windows-1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: x-cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso8859-9 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: x-cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: latin1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: x-cp1252 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: windows-1252 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: us-ascii (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: cp1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1257: x-cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: windows-1256 (XMLHttpRequest)]
expected: TIMEOUT
expected: FAIL
[single-byte-decoder.html?TextDecoder]

View file

@ -1,4 +0,0 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,10 @@
[non-active-document.html]
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

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

View file

@ -0,0 +1,4 @@
[paint_timing.html]
[Performance entries observer]
expected: FAIL

View file

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style type="text/css">
#scroller {
overflow: scroll;
width: 500px;
height: 500px;
}
#anchor {
position: relative;
width: 100px;
height: 100px;
margin-top: 100px;
margin-bottom: 1000px;
background-color: blue;
}
#positioned {
position: absolute;
width: 10px;
height: 10px;
top: -200px;
background-color: yellow;
}
</style>
</head>
<body>
<div id="scroller">
<div id="anchor">
<div id="positioned">
</div>
</div>
</div>
<script type="text/javascript">
test(() => {
let scroller = document.querySelector('#scroller');
let positioned = document.querySelector('#positioned');
// Scroll down to select #anchor as an anchor node
scroller.scrollTop = 20;
// Move #positioned downwards, which will move the unclamped scrollable
// overflow rect of #anchor downards as well
positioned.style.top = '-180px';
// To trigger the bug that this regression tests in Gecko, we need
// to not take Gecko's relative positioning fast path. To do
// this, change the 'left' of #positioned from 'auto' to '0px'.
positioned.style.left = '0px';
// The implementation should clamp the scrollable overflow rect
// before the start-edge of the anchor node, and not apply an
// adjustment
assert_equals(scroller.scrollTop, 20);
}, 'scrollable overflow before the start-edge of the anchor node should be clamped');
</script>
</body>
</html>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
body { height: 400vh; margin: 0; }
#sticky, #content { width: 200px; height: 100px; }
#sticky { position: sticky; left: 100px; top: 50px; }
#before { height: 50px; }
#content { margin-top: 100px; }
</style>
<div id="sticky">sticky</div>
<div id="before"></div>
<div id="content">content</div>
<script>
// Tests that the anchor selection algorithm skips sticky-positioned elements.
test(() => {
document.scrollingElement.scrollTop = 150;
document.querySelector("#before").style.height = "100px";
assert_equals(document.scrollingElement.scrollTop, 200);
}, "Sticky-positioned headers shouldn't be chosen as scroll anchors (we should use 'content' instead)");
</script>

View file

@ -0,0 +1,56 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
body { margin: 0; }
#scroller {
overflow: scroll;
height: 100px;
}
#multicol {
margin-top: 20px;
height: 200px;
columns: 2;
column-fill: auto;
}
#before {
margin-top: 100px;
height: 100px;
}
#content {
height: 10px;
}
</style>
<div id="scroller">
<div id="multicol">
<div id="fragmented">
<div id="before"></div>
<div id="content">content</div>
</div>
</div>
</div>
<script>
// Tests a scroll anchor inside of a div fragmented across multicol
test(() => {
let scroller = document.querySelector("#scroller");
let before = document.querySelector("#before");
let content = document.querySelector("#content");
// Scroll down so that we select a scroll anchor. We should select #content
// and not #before, as #before is positioned offscreen in the first column
scroller.scrollTop = 10;
// Increase the height of #before so that it fragments into the second
// column and pushes #content down.
before.style.height = "110px";
// We should have anchored to #content and have done an adjustment of 10px
assert_equals(scroller.scrollTop, 20);
}, "An element in a fragmented div should be able to be selected as an anchor node.");
</script>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#scroller {
height: 200px;
overflow: scroll;
}
#before { height: 50px; }
#table-row {
display: table-row;
overflow-anchor: none;
width: 100px;
height: 100px;
}
#after { margin-bottom: 500px; }
</style>
<div id="scroller">
<div id="before"></div>
<div id="table-row">content</div>
<div id="after"></div>
</div>
<script>
// Tests that the anchor exclusion API works with table parts that generate
// anonymous table box wrappers
test(() => {
let scroller = document.querySelector('#scroller');
let before = document.querySelector('#before');
// Scroll down so that #table-row is the only element in view
scroller.scrollTop = 50;
// Expand #before so that we might perform a scroll adjustment
before.style.height = "100px";
// We shouldn't have selected #table-row as an anchor as it is
// 'overflow-anchor: none'
assert_equals(scroller.scrollTop, 50);
}, "A table with anonymous wrappers and 'overflow-anchor: none' shouldn't generate any scroll anchor candidates.");
</script>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#scroller {
height: 200px;
overflow: scroll;
}
#before { height: 50px; }
#table {
display: table;
overflow-anchor: none;
width: 100px;
height: 100px;
margin-bottom: 500px;
}
</style>
<div id="scroller">
<div id="before"></div>
<div id="table">content</div>
</div>
<script>
// Tests that the anchor exclusion API works with tables
test(() => {
let scroller = document.querySelector('#scroller');
let before = document.querySelector('#before');
// Scroll down so that #table is the only element in view
scroller.scrollTop = 50;
// Expand #before so that we might perform a scroll adjustment
before.style.height = "100px";
// We shouldn't have selected #table as an anchor as it is
// 'overflow-anchor: none'
assert_equals(scroller.scrollTop, 50);
}, "A table with 'overflow-anchor: none' shouldn't generate any scroll anchor candidates.");
</script>

View file

@ -0,0 +1,7 @@
<!doctype html>
<title>CSS Test Reference</title>
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<table style="border-collapse: collapse; border-style: solid;">
<td>Should see a non-solid border</td>
</table>

View file

@ -0,0 +1,10 @@
<!doctype html>
<title>CSS Test: border-collapsed tables don't unconditionally render double borders as solid</title>
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1521066">
<link rel="help" href="https://drafts.csswg.org/css2/tables.html#collapsing-borders">
<link rel="mismatch" href="border-collapse-double-border-notref.html">
<table style="border-collapse: collapse; border-style: double;">
<td>Should see a non-solid border</td>
</table>

View file

@ -0,0 +1,25 @@
<!doctype html>
<title>CSS Test Reference</title>
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<style>
table {
font-size: 2em;
border-collapse: collapse;
border: 5px solid green;
}
</style>
<p>You should see no non-solid borders and no red.</p>
<table>
<tr>
<td colspan="4" style="border: 5px solid purple;">hello</td>
</tr>
<tr>
<td style="border-right: 5px solid blue; border-bottom: 9px hidden red;">one</td>
<td style="border-right: 5px solid blue;">two</td>
<td>three</td>
<td style="border-left: 5px solid blue">four</td>
</tr>
</table>

View file

@ -0,0 +1,28 @@
<!doctype html>
<title>CSS Test: Table border resolution rules</title>
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1520138">
<link rel="help" href="https://drafts.csswg.org/css2/tables.html#border-conflict-resolution">
<link rel="match" href="border-conflict-resolution-ref.html">
<style>
table {
font-size: 2em;
border-collapse: collapse;
border: 5px solid green;
}
</style>
<p>You should see no non-solid borders and no red.</p>
<table>
<tr>
<td colspan="4" style="border: 5px solid purple;">hello</td>
</tr>
<tr>
<td style="border-top: 5px solid blue; border-right: 5px solid blue; border-bottom: 9px hidden red; border-left: 9px none;">one</td>
<td style="border-top: 5px dashed blue; border-right: 5px solid blue; border-bottom: 5px outset red;">two</td>
<td style="border-top: 5px ridge blue; border-right: 5px ridge red; border-bottom: 5px inset red;">three</td>
<td style="border-left: 5px solid blue; border-bottom: 5px dotted red;">four</td>
</tr>
</table>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module: getComputedValue().borderCollapse</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-collapse">
<meta name="assert" content="border-collapse computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("border-collapse", "separate");
test_computed_value("border-collapse", "collapse");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing border-collapse with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-collapse">
<meta name="assert" content="border-collapse supports only the grammar 'separate | collapse'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("border-collapse", "none");
test_invalid_value("border-collapse", "separate collapse");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing border-collapse with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-collapse">
<meta name="assert" content="border-collapse supports the full grammar 'separate | collapse'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("border-collapse", "separate");
test_valid_value("border-collapse", "collapse");
</script>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module: getComputedValue().borderSpacing</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-spacing">
<meta name="assert" content="border-spacing computed value is two absolute lengths.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<style>
#target {
font-size: 40px;
}
</style>
<script>
test_computed_value("border-spacing", "10px 20px");
test_computed_value("border-spacing", "0", "0px 0px");
test_computed_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)", "30px 0px");
test_computed_value("border-spacing", "calc(10px - 0.5em) calc(10px + 0.5em)", "0px 30px");
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing border-spacing with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-spacing">
<meta name="assert" content="border-spacing supports only the grammar '<length>{1,2}'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("border-spacing", "10%");
test_invalid_value("border-spacing", "-20px");
test_invalid_value("border-spacing", "30");
test_invalid_value("border-spacing", "40px 50px 60px");
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing border-spacing with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-border-spacing">
<meta name="assert" content="border-spacing supports the full grammar '<length>{1,2}'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("border-spacing", "0px");
test_valid_value("border-spacing", "10px 20px");
test_valid_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)");
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module: getComputedValue().captionSide</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-caption-side">
<meta name="assert" content="caption-side computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("caption-side", "top");
test_computed_value("caption-side", "bottom");
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing caption-side with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-caption-side">
<meta name="assert" content="caption-side supports only the grammar 'top | bottom'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("caption-side", "auto");
test_invalid_value("caption-side", "left");
test_invalid_value("caption-side", "right");
test_invalid_value("caption-side", "top bottom");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing caption-side with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-caption-side">
<meta name="assert" content="caption-side supports the full grammar 'top | bottom'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("caption-side", "top");
test_valid_value("caption-side", "bottom");
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module: getComputedValue().emptyCells</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-empty-cells">
<meta name="assert" content="empty-cells computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("empty-cells", "show");
test_computed_value("empty-cells", "hide");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing empty-cells with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-empty-cells">
<meta name="assert" content="empty-cells supports only the grammar 'show | hide'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("empty-cells", "auto");
test_invalid_value("empty-cells", "show hide");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing empty-cells with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-empty-cells">
<meta name="assert" content="empty-cells supports the full grammar 'show | hide'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("empty-cells", "show");
test_valid_value("empty-cells", "hide");
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module: getComputedValue().tableLayout</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-table-layout">
<meta name="assert" content="table-layout computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("table-layout", "auto");
test_computed_value("table-layout", "fixed");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing table-layout with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-table-layout">
<meta name="assert" content="table-layout supports only the grammar 'auto | fixed'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("table-layout", "none");
test_invalid_value("table-layout", "auto fixed");
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Table Module Test: parsing table-layout with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-tables/#propdef-table-layout">
<meta name="assert" content="table-layout supports the full grammar 'auto | fixed'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("table-layout", "auto");
test_valid_value("table-layout", "fixed");
</script>
</body>
</html>

View file

@ -12,24 +12,24 @@
width: 200px;
margin-bottom: 2px;
background: lightgray;
height: 20px;
height: 10px;
clear: all;
}
div.a {
width: 10px;
height: 20px;
height: 10px;
background: lightgreen;
float: left;
}
div.b {
width: 30px;
height: 20px;
height: 10px;
background: pink;
float: left;
}
div.c {
width: 40px;
height: 20px;
height: 10px;
background: orange;
float: left;
}
@ -37,7 +37,7 @@
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 10px;
height: 5px;
background: purple;
}
</style>

View file

@ -14,7 +14,7 @@
<style>
div.flexbox {
width: 200px;
height: 20px; /* Short, to force us to wrap */
height: 10px; /* Short, to force us to wrap */
display: flex;
flex-direction: column;
flex-wrap: wrap;
@ -23,19 +23,19 @@
}
div.a {
width: 10px;
height: 20px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: auto; /* width comes from contents */
height: 20px;
height: 10px;
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 20px;
height: 10px;
flex: none;
background: orange;
}
@ -43,7 +43,7 @@
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 10px;
height: 5px;
background: purple;
}
</style>

View file

@ -15,7 +15,7 @@
<style>
div.flexbox {
width: 200px;
max-height: 20px; /* Short, to force us to wrap */
max-height: 10px; /* Short, to force us to wrap */
display: flex;
flex-direction: column;
flex-wrap: wrap;
@ -24,19 +24,19 @@
}
div.a {
width: 10px;
height: 20px;
height: 10px;
flex: none;
background: lightgreen;
}
div.b {
width: auto; /* width comes from contents */
height: 20px;
height: 10px;
flex: none;
background: pink;
}
div.c {
width: 40px;
height: 20px;
height: 10px;
flex: none;
background: orange;
}
@ -44,7 +44,7 @@
/* Inside of 'b': */
div.fixedSizeChild {
width: 30px;
height: 10px;
height: 5px;
background: purple;
}
</style>

View file

@ -16,17 +16,17 @@
display: inline-block;
}
div.a {
height: 20px;
height: 10px;
width: 10px;
background: lightgreen;
}
div.b {
height: 20px;
height: 10px;
width: 50px;
background: pink;
}
div.c {
height: 20px;
height: 10px;
width: 100px;
background: orange;
}

View file

@ -18,17 +18,17 @@
margin-bottom: 2px;
}
div.a {
height: 20px;
height: 10px;
flex: 0 10px;
background: lightgreen;
}
div.b {
height: 20px;
height: 10px;
flex: 0 50px;
background: pink;
}
div.c {
height: 20px;
height: 10px;
flex: 0 100px;
background: orange;
}

View file

@ -24,17 +24,17 @@
clear: both;
}
div.a {
height: 20px;
height: 10px;
flex: 0 10px;
background: lightgreen;
}
div.b {
height: 20px;
height: 10px;
flex: 0 50px;
background: pink;
}
div.c {
height: 20px;
height: 10px;
flex: 0 100px;
background: orange;
}

View file

@ -15,17 +15,17 @@
float: left;
}
div.a {
width: 20px;
width: 10px;
height: 35px;
background: lightgreen;
}
div.b {
width: 20px;
width: 10px;
height: 40px;
background: pink;
}
div.c {
width: 20px;
width: 10px;
height: 45px;
background: orange;
}

View file

@ -29,17 +29,17 @@
float: left;
}
div.a {
width: 20px;
width: 10px;
flex: 0 0 35px;
background: lightgreen;
}
div.b {
width: 20px;
width: 10px;
flex: 0 0 40px;
background: pink;
}
div.c {
width: 20px;
width: 10px;
flex: 0 0 45px;
background: orange;
}

View file

@ -0,0 +1,10 @@
def opener(session):
return session.execute_script("""
return window.opener;
""")
def window_name(session):
return session.execute_script("""
return window.name;
""")

View file

@ -0,0 +1,52 @@
import pytest
from webdriver.transport import Response
from tests.support.asserts import assert_error, assert_success
def new_window(session, type_hint=None):
return session.transport.send(
"POST", "session/{session_id}/window/new".format(**vars(session)),
{"type": type_hint})
def test_null_parameter_value(session, http):
path = "/session/{session_id}/window/new".format(**vars(session))
with http.post(path, None) as response:
assert_error(Response.from_http(response), "invalid argument")
def test_no_browsing_context(session, closed_window):
response = new_window(session)
assert_error(response, "no such window")
@pytest.mark.parametrize("type_hint", [True, 42, 4.2, [], {}])
def test_type_with_invalid_type(session, type_hint):
response = new_window(session, type_hint)
assert_error(response, "invalid argument")
def test_type_with_null_value(session):
original_handles = session.handles
response = new_window(session, type_hint=None)
value = assert_success(response)
handles = session.handles
assert len(handles) == len(original_handles) + 1
assert value["handle"] in handles
assert value["handle"] not in original_handles
assert value["type"] in ["tab", "window"]
def test_type_with_unknown_value(session):
original_handles = session.handles
response = new_window(session, type_hint="foo")
value = assert_success(response)
handles = session.handles
assert len(handles) == len(original_handles) + 1
assert value["handle"] in handles
assert value["handle"] not in original_handles
assert value["type"] in ["tab", "window"]

View file

@ -0,0 +1,48 @@
from tests.support.asserts import assert_success
from . import opener, window_name
def new_window(session, type_hint=None):
return session.transport.send(
"POST", "session/{session_id}/window/new".format(**vars(session)),
{"type": type_hint})
def test_new_tab(session):
original_handles = session.handles
response = new_window(session, type_hint="tab")
value = assert_success(response)
handles = session.handles
assert len(handles) == len(original_handles) + 1
assert value["handle"] in handles
assert value["handle"] not in original_handles
assert value["type"] == "tab"
def test_new_tab_opens_about_blank(session):
response = new_window(session, type_hint="tab")
value = assert_success(response)
assert value["type"] == "tab"
session.handle = value["handle"]
assert session.url == "about:blank"
def test_new_tab_sets_no_window_name(session):
response = new_window(session, type_hint="tab")
value = assert_success(response)
assert value["type"] == "tab"
session.handle = value["handle"]
assert window_name(session) == ""
def test_new_tab_sets_no_opener(session):
response = new_window(session, type_hint="tab")
value = assert_success(response)
assert value["type"] == "tab"
session.handle = value["handle"]
assert opener(session) is None

View file

@ -0,0 +1,48 @@
from tests.support.asserts import assert_success
from . import opener, window_name
def new_window(session, type_hint=None):
return session.transport.send(
"POST", "session/{session_id}/window/new".format(**vars(session)),
{"type": type_hint})
def test_type_with_window(session):
original_handles = session.handles
response = new_window(session, type_hint="window")
value = assert_success(response)
handles = session.handles
assert len(handles) == len(original_handles) + 1
assert value["handle"] in handles
assert value["handle"] not in original_handles
assert value["type"] == "window"
def test_new_window_opens_about_blank(session):
response = new_window(session, type_hint="window")
value = assert_success(response)
assert value["type"] == "window"
session.handle = value["handle"]
assert session.url == "about:blank"
def test_new_window_sets_no_window_name(session):
response = new_window(session, type_hint="window")
value = assert_success(response)
assert value["type"] == "window"
session.handle = value["handle"]
assert window_name(session) == ""
def test_new_window_sets_no_opener(session):
response = new_window(session, type_hint="window")
value = assert_success(response)
assert value["type"] == "window"
session.handle = value["handle"]
assert opener(session) is None

View file

@ -0,0 +1,121 @@
# META: timeout=long
import pytest
from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
def new_window(session, type_hint=None):
return session.transport.send(
"POST", "session/{session_id}/window/new".format(**vars(session)),
{"type": type_hint})
@pytest.fixture
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
original_handles = session.handles
create_dialog(dialog_type, text=dialog_type)
response = new_window(session)
value = assert_success(response)
handles = session.handles
assert len(handles) == len(original_handles) + 1
assert value["handle"] in handles
assert value["handle"] not in original_handles
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
return check_user_prompt_closed_without_exception
@pytest.fixture
def check_user_prompt_closed_with_exception(session, create_dialog):
def check_user_prompt_closed_with_exception(dialog_type, retval):
original_handles = session.handles
create_dialog(dialog_type, text=dialog_type)
response = new_window(session)
assert_error(response, "unexpected alert open")
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
assert len(session.handles) == len(original_handles)
return check_user_prompt_closed_with_exception
@pytest.fixture
def check_user_prompt_not_closed_but_exception(session, create_dialog):
def check_user_prompt_not_closed_but_exception(dialog_type):
original_handles = session.handles
create_dialog(dialog_type, text=dialog_type)
response = new_window(session)
assert_error(response, "unexpected alert open")
assert session.alert.text == dialog_type
session.alert.dismiss()
assert len(session.handles) == len(original_handles)
return check_user_prompt_not_closed_but_exception
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_ignore(check_user_prompt_not_closed_but_exception, dialog_type):
check_user_prompt_not_closed_but_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_default(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)