mirror of
https://github.com/servo/servo.git
synced 2025-08-25 07:08:21 +01:00
Update web-platform-tests to revision 04bc9c5667911cce7361ee33244dfc8d7ed61212
This commit is contained in:
parent
156b1cc891
commit
0d3d7c36ab
51 changed files with 843 additions and 298 deletions
|
@ -4,7 +4,7 @@
|
|||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/"/>
|
||||
<style><![CDATA[
|
||||
body {
|
||||
margin: 0;
|
||||
margin: 1em;
|
||||
}
|
||||
body>div {
|
||||
font-family: Ahem;
|
||||
|
@ -12,7 +12,7 @@ body>div {
|
|||
line-height: 1em;
|
||||
color: black;
|
||||
background: yellow;
|
||||
margin: 1em;
|
||||
margin: 1em 0;
|
||||
border: 1em solid gray;
|
||||
width: 15em;
|
||||
height: 2em;
|
||||
|
@ -34,7 +34,7 @@ div+div+div {
|
|||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<p>Pass if there is no red visible.</p>
|
||||
<div>
|
||||
<div>xx xx</div>
|
||||
<div class="a">x x</div>
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>multicolumn | column-rule</title>
|
||||
<title>CSS Multi-column Layout Test: 'column-rule' shorthand</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/"/>
|
||||
<link rel="help" href=""/>
|
||||
<link rel="match" href="multicol-rule-shorthand-2-ref.xht"/>
|
||||
<meta name="flags" content=""/>
|
||||
<meta name="assert" content="Tests that column rules are not displayed for invalid properties and values."/>
|
||||
<meta name="flags" content="invalid"/>
|
||||
<style type="text/css"><![CDATA[
|
||||
body {
|
||||
margin: 0;
|
||||
margin: 1em;
|
||||
}
|
||||
body>div {
|
||||
font-family: Ahem;
|
||||
|
@ -17,36 +18,22 @@ body>div {
|
|||
line-height: 1em;
|
||||
color: black;
|
||||
background: yellow;
|
||||
margin: 1em;
|
||||
margin: 1em 0;
|
||||
border: 1em solid gray;
|
||||
width: 15em;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
|
||||
column-count: 4;
|
||||
column-gap: 1em;
|
||||
column-rule: solid blue 1em;
|
||||
column-rule: normal red 1em;
|
||||
column: normal red 1em;
|
||||
}
|
||||
span {
|
||||
background: blue;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 3em;
|
||||
height: 2em;
|
||||
width: 1em;
|
||||
}
|
||||
span+span {
|
||||
left: 7em;
|
||||
}
|
||||
span+span+span {
|
||||
left: 11em;
|
||||
column-rule: normal red 1em; /* invalid: 'normal' is not a 'border-style' */
|
||||
column: normal red 1em; /* invalid: 'column' is not a valid property name; 'normal' can only apply to 'column-gap' */
|
||||
}
|
||||
|
||||
]]></style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p>Pass if there is no red visible.</p>
|
||||
|
||||
<div>
|
||||
xx xx
|
||||
|
|
|
@ -6,23 +6,17 @@
|
|||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
body
|
||||
div
|
||||
{
|
||||
font: 1.25em/1 Ahem;
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
div
|
||||
{
|
||||
background-color: yellow;
|
||||
color: black;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Test passes if it is identical to the reference.</p>
|
||||
<div>d da d da d da d da d da <br />
|
||||
|
||||
dam dam dam dam dam <br />
|
||||
|
|
|
@ -4,22 +4,17 @@
|
|||
<title>CSS Multi-column Layout Test: column-width (basic)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#the-number-and-width-of-columns" title="The number and width of columns" />
|
||||
<link rel="match" href="multicol-width-001-ref.xht" />
|
||||
<meta name="assert" content="Tests that column-width is calculated correctly."/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
body
|
||||
div
|
||||
{
|
||||
font: 1.25em/1 Ahem;
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
div
|
||||
{
|
||||
background-color: yellow;
|
||||
color: black;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
|
||||
column-gap: 0;
|
||||
column-width: 6em;
|
||||
|
@ -27,6 +22,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if it is identical to the reference.</p>
|
||||
<div>
|
||||
d da dam dame damer
|
||||
d da dam dame damer
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if there are two black bars and two blue bars with a yellow stripe to the right of each bar, matching reference.</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="support/black20x20.png" width="40" height="40" alt="Image download support must be enabled" /></td>
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
<title>CSS Multi-column Layout Test: column-width (basic)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#the-number-and-width-of-columns" title="The number and width of columns" />
|
||||
<link rel="match" href="multicol-width-002-ref.xht" />
|
||||
<meta name="assert" content="Tests that column-width is calculated correctly."/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
|
@ -14,8 +15,6 @@
|
|||
border: gray solid 1em;
|
||||
color: black;
|
||||
font: 1.25em/1 Ahem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
width: 12em;
|
||||
|
||||
column-gap: 0;
|
||||
|
@ -26,6 +25,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if there are two black bars and two blue bars with a yellow stripe to the right of each bar, matching reference.</p>
|
||||
<div>
|
||||
bl ac bl ac
|
||||
<span>
|
||||
|
|
|
@ -4,9 +4,10 @@
|
|||
<title>CSS Multi-column Layout Test: column-width (basic)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#the-multi-column-model" title="The Multi-column Model" />
|
||||
<link rel="match" href="multicol-width-002-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="Test to check that the multicol container and not the column box becomes the containing box"/>
|
||||
<style type="text/css"><![CDATA[
|
||||
div#multi-column
|
||||
{
|
||||
|
@ -15,11 +16,8 @@
|
|||
color: black;
|
||||
font: 1.25em/1 Ahem;
|
||||
height: 2em;
|
||||
orphans: 1;
|
||||
position: relative;
|
||||
widows: 1;
|
||||
width: 12em;
|
||||
|
||||
column-width: 6em;
|
||||
column-gap: 0;
|
||||
}
|
||||
|
@ -33,23 +31,23 @@
|
|||
width: 2em;
|
||||
}
|
||||
|
||||
div#s2 {left: 3em;}
|
||||
div#s2 {right: 7em;}
|
||||
|
||||
div#s3
|
||||
{
|
||||
background-color: blue;
|
||||
left: 6em;
|
||||
right: 4em;
|
||||
}
|
||||
|
||||
div#s4
|
||||
{
|
||||
background-color: blue;
|
||||
left: 9em;
|
||||
right: 1em;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Test passes if there are two black bars and two blue bars with a yellow stripe to the right of each bar, matching reference.</p>
|
||||
<div id="multi-column">
|
||||
<div></div>
|
||||
<div id="s2"></div>
|
||||
|
|
|
@ -2,25 +2,25 @@
|
|||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>multicolumn | column-width</title>
|
||||
<title>CSS Multi-column Layout Test: column-width (ch units)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/"/>
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns"/>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#the-number-and-width-of-columns"/>
|
||||
<link rel="match" href="multicol-width-ch-ref.xht"/>
|
||||
<meta name="flags" content=""/>
|
||||
<meta name="assert" value="Test that the ch unit can be used as a value for column-width."/>
|
||||
<style type="text/css"><![CDATA[
|
||||
.multicol {
|
||||
font: 1em monospace;
|
||||
width: 69ch;
|
||||
column-width: 13ch;
|
||||
column-gap: 1ch;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
background: yellow;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p>Test passes if we have five columns with four lines in each. The final column should contain the words: million, billion, trillion.</p>
|
||||
<div class="multicol">
|
||||
one two three four
|
||||
five six seven eight
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<p>Test passes if we have five columns with four lines in each. The final column should contain the words: million, billion, trillion.</p>
|
||||
<div class="multicol-ref">
|
||||
<span>
|
||||
one two three four
|
||||
|
|
|
@ -4,30 +4,25 @@
|
|||
<title>CSS Multi-column Layout Test: column-count and column-width (basic)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#the-number-and-width-of-columns" title="3. The number and width of columns" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#the-number-and-width-of-columns" title="3. The number and width of columns" />
|
||||
<link rel="match" href="multicol-width-001-ref.xht" />
|
||||
<meta name="asset" content="Test that column-count and column-width are valid in combination"/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
body
|
||||
div
|
||||
{
|
||||
font: 1.25em/1 Ahem;
|
||||
width: 30em;
|
||||
}
|
||||
|
||||
div
|
||||
{
|
||||
background-color: yellow;
|
||||
color: black;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
|
||||
column-count: 5;
|
||||
column-gap: 0;
|
||||
column-width: 6em;
|
||||
column-width: 5em;
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if it is identical to the reference.</p>
|
||||
<div>
|
||||
d da dam dame damer
|
||||
d da dam dame damer
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
<title>CSS Multi-column Layout Test: column-count and column-width (basic)</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cc" title="3.2 'column-count'" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#cc" title="3.2 'column-count'" />
|
||||
<link rel="match" href="multicol-count-002-ref.xht" />
|
||||
<meta name="asset" content="Test that column-count acts as a max when combined with column-width."/>
|
||||
<meta name="flags" content="ahem" />
|
||||
<style type="text/css"><![CDATA[
|
||||
html {background-color: white;}
|
||||
|
@ -22,10 +23,9 @@
|
|||
{
|
||||
background-color: yellow;
|
||||
color: black;
|
||||
|
||||
column-count: 4;
|
||||
column-gap: 0;
|
||||
column-width: 5em;
|
||||
column-width: 4em; /* would create 5 columns if column-count was not acting as a max */
|
||||
}
|
||||
]]></style>
|
||||
</head>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="support/black20x20.png" width="40" height="20" alt="Image download support must be enabled" /></td>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: invalid column-width</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="match" href="multicol-width-invalid-001-ref.xht" />
|
||||
<meta name="flags" content="ahem invalid" />
|
||||
<meta name="assert" content="This test checks that 'column-width: bzzt' is invalid (generating a parsing error) and therefore will be ignored." />
|
||||
|
@ -15,18 +15,17 @@
|
|||
border: gray solid 1em;
|
||||
color: black;
|
||||
font: 1.25em/1 Ahem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
width: 12em;
|
||||
|
||||
column-gap: 0;
|
||||
column-width: bzzt;
|
||||
column-width: bzzt; /* this value is invalid */
|
||||
}
|
||||
|
||||
span {color: blue;}
|
||||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<div>
|
||||
bl ac
|
||||
<span>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: large column-width</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-23 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="match" href="multicol-width-invalid-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="This test checks that a set 'column-width' may be wider (to fill the available space). In this test, the actual column-width will be increased to 12em." />
|
||||
|
@ -15,8 +15,6 @@
|
|||
border: gray solid 1em;
|
||||
color: black;
|
||||
font: 1.25em/1 Ahem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
width: 12em;
|
||||
|
||||
column-gap: 0;
|
||||
|
@ -27,6 +25,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<div>
|
||||
bl ac
|
||||
<span>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: large column-width</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-24 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="match" href="multicol-width-invalid-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
<meta name="assert" content="This test checks that a set 'column-width' equal in width to the whole available space of the multi-column will use it all for its column box." />
|
||||
|
@ -15,8 +15,6 @@
|
|||
border: gray solid 1em;
|
||||
color: black;
|
||||
font: 1.25em/1 Ahem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
width: 12em;
|
||||
|
||||
column-gap: 0;
|
||||
|
@ -27,6 +25,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<div>
|
||||
bl ac
|
||||
<span>
|
||||
|
@ -38,4 +37,4 @@
|
|||
bl ac
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: negative column-width</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-24 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="match" href="multicol-count-002-ref.xht" />
|
||||
<meta name="flags" content="ahem invalid" />
|
||||
<meta name="assert" content="This test checks that a set 'column-width' can not be negative." />
|
||||
|
@ -15,8 +15,6 @@
|
|||
border: black solid 1em;
|
||||
color: yellow;
|
||||
font: 1.25em/1 Ahem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
width: 19em;
|
||||
|
||||
column-width: -100px;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="support/black20x20.png" width="40" height="20" alt="Image download support must be enabled" /><img src="support/swatch-blue.png" width="80" height="20" alt="Image download support must be enabled" /><img src="support/black20x20.png" width="40" height="20" alt="Image download support must be enabled" /></td>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<title>CSS Multi-column Layout Test: narrow column-width</title>
|
||||
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
|
||||
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-24 -->
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#overflow-inside-multicol-elements" title="8.1. Overflow inside multicol elements" />
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#overflow-inside-multicol-elements" title="8.1. Overflow inside multicol elements" />
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-multicol/#cw" title="3.1. 'column-width'" />
|
||||
<link rel="match" href="multicol-width-small-001-ref.xht" />
|
||||
<meta name="flags" content="ahem" />
|
||||
|
@ -29,6 +29,7 @@
|
|||
]]></style>
|
||||
</head>
|
||||
<body>
|
||||
<p>This test passes is it is idential to the reference.</p>
|
||||
<div>
|
||||
<div>
|
||||
Bl ac
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
|
||||
<title> CSS Transitions: Animatable CSS properties </title>
|
||||
<meta name="assert" content="Check that all animatable CSS properties are animatable and then accepted by the 'transition-property' property">
|
||||
<meta name="timeout" content="long">
|
||||
<link rel="author" title="Daniel Glazman" href="mailto:daniel.glazman@disruptive-innovations.com">
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-transitions/#transitions">
|
||||
<link rel="help" href="http://www.w3.org/TR/css3-transitions/#animatable-properties">
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<title>SVG writing modes values parsed as aliases</title>
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#svg-writing-mode">
|
||||
<link rel="match" href="reference/svg-aliasing-001-ref.html"
|
||||
<link rel="match" href="reference/svg-aliasing-001-ref.html">
|
||||
<meta name="assert" content="The legacy SVG writing mode values are parsed as simple aliases of the newer ones, and do not have side effects on bidi.">
|
||||
<meta name="flags" content="may"> <!-- "may" because the support for these values is optional-->
|
||||
|
||||
|
|
|
@ -44,23 +44,26 @@ function runTest(config,qualifier) {
|
|||
|
||||
assert_in_array(event.messageType, ['license-request', 'individualization-request']);
|
||||
|
||||
// Generate a license that expires 1 second from now.
|
||||
var expiration = Date.now().valueOf() + 1000;
|
||||
config.messagehandler(event.messageType, event.message, { expiration: expiration }).then(function(response) {
|
||||
return event.target.update(response);
|
||||
}).then(test.step_func(function() {
|
||||
// License server may only have second granularity, so check
|
||||
// that session expiration time is close to the desired value.
|
||||
assert_approx_equals(event.target.expiration, expiration, 2000, "expiration attribute should equal provided expiration time");
|
||||
|
||||
// Since the expiration time is in the future, wait 5 seconds
|
||||
// so that the license has expired before calling play().
|
||||
// Wait 2 seconds before calling update() to ensure that the
|
||||
// license has really expired. This is to avoid problems
|
||||
// where the browser starts buffering frames as soon as a
|
||||
// valid license is received.
|
||||
test.step_timeout(function() {
|
||||
assert_greater_than(Date.now().valueOf(), expiration, "Starting play before license expired");
|
||||
_video.play();
|
||||
// Wait 2 seconds to ensure that the video does not play.
|
||||
test.step_timeout(function() { test.done(); }, 2000);
|
||||
}, 5000);
|
||||
})).catch(onFailure);
|
||||
event.target.update(response).then(function() {
|
||||
// License server may only have second granularity, so check
|
||||
// that session expiration time is close to the desired value.
|
||||
assert_approx_equals(event.target.expiration, expiration, 3000,
|
||||
"expiration attribute should equal provided expiration time");
|
||||
assert_greater_than(Date.now().valueOf(), expiration, "Starting play before license expired");
|
||||
_video.play();
|
||||
// Wait 2 seconds to ensure that the video does not play.
|
||||
test.step_timeout(function() { test.done(); }, 2000);
|
||||
}).catch(onFailure);
|
||||
}, 2000);
|
||||
}).catch(onFailure);
|
||||
}
|
||||
|
||||
function onPlaying(event) {
|
||||
|
|
13
tests/wpt/web-platform-tests/hr-time/resources/unload-a.html
Normal file
13
tests/wpt/web-platform-tests/hr-time/resources/unload-a.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helper page for ../unload-manual.html</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="./unload.js"></script>
|
||||
<script>
|
||||
setupListeners("a", "./unload-b.html");
|
||||
</script>
|
||||
<button id="proceed">Click me!</button>
|
||||
</body>
|
||||
</html>
|
13
tests/wpt/web-platform-tests/hr-time/resources/unload-b.html
Normal file
13
tests/wpt/web-platform-tests/hr-time/resources/unload-b.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helper page for ../unload-manual.html</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="./unload.js"></script>
|
||||
<script>
|
||||
setupListeners("b", "./unload-c.html");
|
||||
</script>
|
||||
<button id="proceed">Click me again!</button>
|
||||
</body>
|
||||
</html>
|
13
tests/wpt/web-platform-tests/hr-time/resources/unload-c.html
Normal file
13
tests/wpt/web-platform-tests/hr-time/resources/unload-c.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Helper page for ../unload-manual.html</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="./unload.js"></script>
|
||||
<script>
|
||||
setupListeners("c", null);
|
||||
</script>
|
||||
<button id="proceed">Click me, one last time!</button>
|
||||
</body>
|
||||
</html>
|
51
tests/wpt/web-platform-tests/hr-time/resources/unload.js
Normal file
51
tests/wpt/web-platform-tests/hr-time/resources/unload.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
const syncDelay = ms => {
|
||||
const start = performance.now();
|
||||
let elapsedTime;
|
||||
do {
|
||||
elapsedTime = performance.now() - start;
|
||||
} while (elapsedTime < ms);
|
||||
};
|
||||
|
||||
const markTime = (docName, lifecycleEventName) => {
|
||||
// Calculating these values before the below `mark` invocation ensures that delays in
|
||||
// reaching across to the other window object doesn't interfere with the correctness
|
||||
// of the test.
|
||||
const dateNow = Date.now();
|
||||
const performanceNow = performance.now();
|
||||
|
||||
window.opener.mark({
|
||||
docName,
|
||||
lifecycleEventName,
|
||||
performanceNow: performanceNow,
|
||||
dateNow: dateNow
|
||||
});
|
||||
};
|
||||
|
||||
const setupUnloadPrompt = (docName, msg) => {
|
||||
window.addEventListener("beforeunload", ev => {
|
||||
markTime(docName, "beforeunload");
|
||||
return ev.returnValue = msg || "Click OK to continue test."
|
||||
});
|
||||
};
|
||||
|
||||
const setupListeners = (docName, nextDocument) => {
|
||||
window.addEventListener("load", () => {
|
||||
markTime(docName, "load");
|
||||
document.getElementById("proceed").addEventListener("click", ev => {
|
||||
ev.preventDefault();
|
||||
if (nextDocument) {
|
||||
document.location = nextDocument;
|
||||
} else {
|
||||
window.close();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
setupUnloadPrompt(docName);
|
||||
|
||||
window.addEventListener("unload", () => {
|
||||
markTime(docName, "unload");
|
||||
if (docName !== "c") { syncDelay(1000); }
|
||||
});
|
||||
};
|
||||
|
73
tests/wpt/web-platform-tests/hr-time/unload-manual.html
Normal file
73
tests/wpt/web-platform-tests/hr-time/unload-manual.html
Normal file
|
@ -0,0 +1,73 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>time origin value manual test</title>
|
||||
<link rel="help" href="https://w3c.github.io/hr-time/#time-origin-1">
|
||||
<link rel="prefetch" href="./resources/unload-a.html">
|
||||
<link rel="prefetch" href="./resources/unload-b.html">
|
||||
<link rel="prefetch" href="./resources/unload-c.html">
|
||||
</head>
|
||||
<body>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
setup({ explicit_timeout: true });
|
||||
|
||||
const ACCEPTABLE_VARIANCE = 400; // ms
|
||||
|
||||
const isRoughlyEqual = (a, b) => Math.abs(a - b) < ACCEPTABLE_VARIANCE;
|
||||
|
||||
const timings = { a: {}, b: {}, c: {} };
|
||||
const t = async_test("hr-time time origin");
|
||||
|
||||
window.mark = msg => {
|
||||
timings[msg.docName][msg.lifecycleEventName] = {
|
||||
performanceNow: msg.performanceNow,
|
||||
dateNow: msg.dateNow
|
||||
};
|
||||
|
||||
if (msg.docName === "c" && msg.lifecycleEventName === "unload") {
|
||||
setTimeout(makeAssertions, 0);
|
||||
}
|
||||
};
|
||||
|
||||
function makeAssertions () {
|
||||
t.step(() => {
|
||||
const loadTimeBetweenAandB = timings.b.load.dateNow - timings.a.unload.dateNow;
|
||||
const loadTimeBetweenBandC = timings.c.load.dateNow - timings.b.unload.dateNow;
|
||||
|
||||
assert_true(
|
||||
isRoughlyEqual(loadTimeBetweenAandB, timings.b.load.performanceNow),
|
||||
"Document in reused window's time origin should be time of close of pop-up box."
|
||||
);
|
||||
assert_true(
|
||||
isRoughlyEqual(loadTimeBetweenBandC, timings.c.load.performanceNow),
|
||||
"Document in reused window's time origin should be time of close of pop-up box."
|
||||
);
|
||||
assert_true(
|
||||
!isRoughlyEqual(timings.a.unload.performanceNow, 0),
|
||||
"Time origin during unload event should match that of rest of document."
|
||||
);
|
||||
assert_true(
|
||||
!isRoughlyEqual(timings.b.unload.performanceNow, 0),
|
||||
"Time origin during unload event should match that of rest of document."
|
||||
);
|
||||
assert_true(
|
||||
!isRoughlyEqual(timings.c.unload.performanceNow, 0),
|
||||
"Time origin during unload event should match that of rest of document."
|
||||
);
|
||||
});
|
||||
t.done();
|
||||
}
|
||||
</script>
|
||||
|
||||
<h2>Description</h2>
|
||||
<p>This test validates the behavior of <code>performance.now()</code> with respect to its time origin.</p>
|
||||
<div id="log">
|
||||
<h2>Manual Test Steps</h2>
|
||||
<ol>
|
||||
<li><a href="resources/unload-a.html" target="_blank">Click here</a>
|
||||
</ol>
|
||||
</div>
|
||||
</body>
|
||||
<html>
|
|
@ -0,0 +1,20 @@
|
|||
<!doctype html>
|
||||
<title>fieldset content before legend</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<fieldset id=test>
|
||||
X
|
||||
<legend>legend</legend>
|
||||
Y
|
||||
</fieldset>
|
||||
<fieldset id=ref>
|
||||
<legend>legend</legend>
|
||||
X Y
|
||||
</fieldset>
|
||||
<script>
|
||||
test(() => {
|
||||
const testElm = document.getElementById('test');
|
||||
const refElm = document.getElementById('ref');
|
||||
assert_equals(testElm.clientHeight, refElm.clientHeight);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE HTML>
|
||||
<title>Reference for fieldset overflow</title>
|
||||
<style>
|
||||
.fieldset, .legend {
|
||||
border: 1em solid;
|
||||
background: lime;
|
||||
}
|
||||
.fieldset {
|
||||
height: 1em;
|
||||
margin-top: 2em;
|
||||
}
|
||||
.legend {
|
||||
height: 1em;
|
||||
width: 5em;
|
||||
line-height: 1;
|
||||
margin-top: -4em;
|
||||
margin-left: 1em;
|
||||
}
|
||||
</style>
|
||||
<p>There should be no red.</p>
|
||||
<div class=fieldset>
|
||||
</div>
|
||||
<div class=legend></div>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE HTML>
|
||||
<title>fieldset overflow</title>
|
||||
<link rel=match href=fieldset-overflow-ref.html>
|
||||
<style>
|
||||
fieldset, legend {
|
||||
border: 1em solid;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: lime
|
||||
}
|
||||
fieldset {
|
||||
overflow: auto;
|
||||
height: 2em;
|
||||
}
|
||||
legend {
|
||||
height: 1em;
|
||||
width: 5em;
|
||||
}
|
||||
div {
|
||||
background: red;
|
||||
height: 2em;
|
||||
}
|
||||
|
||||
</style>
|
||||
<p>There should be no red.</p>
|
||||
<fieldset>
|
||||
<legend></legend>
|
||||
<div></div>
|
||||
<div id=last></div>
|
||||
</fieldset>
|
||||
<script>
|
||||
document.getElementById('last').scrollIntoView();
|
||||
</script>
|
|
@ -0,0 +1,138 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Goal Parameter on JavaScript MIME</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<meta description="This test checks the Async property on a dynamically-created script element. By default it should be true." />
|
||||
<link rel="author" title="" href="http://www.microsoft.com/" />
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-script-async"/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script type="module">
|
||||
|
||||
function makeTest({
|
||||
fileName,
|
||||
scriptType,
|
||||
contentType,
|
||||
shouldLoad
|
||||
}) {
|
||||
const elem = Object.assign(document.createElement("script"), {
|
||||
type: scriptType,
|
||||
src: `./serve-with-content-type.py?fn=${scriptType === "module" ? "is-module-goal.mjs" : "is-script-goal.js"}&ct=${contentType}`
|
||||
});
|
||||
const name = `${shouldLoad ? "Loads" : "Errors on"} type=${scriptType} when given content-type=${decodeURIComponent(contentType)}`;
|
||||
const t = async_test(name);
|
||||
if (!shouldLoad) {
|
||||
elem.onload = t.unreached_func("Script should not load.");
|
||||
elem.onerror = t.step_func_done();
|
||||
} else {
|
||||
elem.onload = t.step_func_done();
|
||||
elem.onerror = t.unreached_func("Script should load.");
|
||||
}
|
||||
document.body.appendChild(elem);
|
||||
}
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fhtml%3Bgoal=script',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%20script',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=script%20',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fhtml%3Bgoal=module',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%20module',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=module%20',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%22%20module%22',
|
||||
shouldLoad: false
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=script',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=SCRIPT',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3BGOAL=script',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3BGoal=Script',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3BgOal=script',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=scrIpt',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%22script%22',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'text/javascript',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%22%5Cs%5Cc%5Cr%5Ci%5Cp%5Ct%22',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%22%5Cm%5Co%5Cd%5Cu%5Cl%5Ce%22',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=module',
|
||||
shouldLoad: true
|
||||
});
|
||||
makeTest({
|
||||
scriptType: 'module',
|
||||
contentType: 'text%2Fjavascript%3Bgoal=%22module%22',
|
||||
shouldLoad: true
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
import "./serve-with-content-type.py?fn=is-module-goal.mjs&ct=text%2Fjavascript%3Bgoal=module";
|
|
@ -0,0 +1,3 @@
|
|||
with ({}) {
|
||||
;
|
||||
};
|
|
@ -3,7 +3,7 @@
|
|||
// (https://github.com/tidoust/reffy-reports)
|
||||
// Source: CSSOM View Module (https://drafts.csswg.org/cssom-view/)
|
||||
|
||||
enum ScrollBehavior { "auto", "instant", "smooth" };
|
||||
enum ScrollBehavior { "auto", "smooth" };
|
||||
|
||||
dictionary ScrollOptions {
|
||||
ScrollBehavior behavior = "auto";
|
||||
|
|
|
@ -216,7 +216,8 @@ def check_css_globally_unique(repo_root, paths):
|
|||
elif source_file.name_is_reference:
|
||||
ref_files[source_file.name].add(path)
|
||||
else:
|
||||
test_files[source_file.name].add(path)
|
||||
name = source_file.name.replace('-manual', '')
|
||||
test_files[name].add(path)
|
||||
|
||||
errors = []
|
||||
|
||||
|
|
|
@ -133,6 +133,7 @@ class SauceConnect():
|
|||
self.sauce_key = kwargs["sauce_key"]
|
||||
self.sauce_tunnel_id = kwargs["sauce_tunnel_id"]
|
||||
self.sauce_connect_binary = kwargs.get("sauce_connect_binary")
|
||||
self.sauce_init_timeout = kwargs.get("sauce_init_timeout")
|
||||
self.sc_process = None
|
||||
self.temp_dir = None
|
||||
self.env_config = None
|
||||
|
@ -172,12 +173,9 @@ class SauceConnect():
|
|||
",".join(self.env_config.domains_set)
|
||||
])
|
||||
|
||||
# Timeout config vars
|
||||
max_wait = 30
|
||||
|
||||
tot_wait = 0
|
||||
while not os.path.exists('./sauce_is_ready') and self.sc_process.poll() is None:
|
||||
if tot_wait >= max_wait:
|
||||
if tot_wait >= self.sauce_init_timeout:
|
||||
self.quit()
|
||||
|
||||
raise SauceException("Sauce Connect Proxy was not ready after %d seconds" % tot_wait)
|
||||
|
|
|
@ -287,6 +287,11 @@ scheme host and port.""")
|
|||
sauce_group.add_argument("--sauce-connect-binary",
|
||||
dest="sauce_connect_binary",
|
||||
help="Path to Sauce Connect binary")
|
||||
sauce_group.add_argument("--sauce-init-timeout", action="store",
|
||||
type=int, default=30,
|
||||
help="Number of seconds to wait for Sauce "
|
||||
"Connect tunnel to be available before "
|
||||
"aborting")
|
||||
|
||||
webkit_group = parser.add_argument_group("WebKit-specific")
|
||||
webkit_group.add_argument("--webkit-port", dest="webkit_port",
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
// META: global=!window,worker
|
||||
//
|
||||
// Tentative test for https://github.com/whatwg/html/issues/3255
|
||||
|
||||
let test_cases = [
|
||||
// Supported mimetypes:
|
||||
["text/javascript", true],
|
||||
["application/javascript", true],
|
||||
["text/ecmascript", true],
|
||||
|
||||
// Blocked mimetpyes:
|
||||
["image/png", false],
|
||||
["text/csv", false],
|
||||
["video/mpeg", false],
|
||||
|
||||
// Legacy mimetypes:
|
||||
["text/html", false],
|
||||
["text/plain", false],
|
||||
["application/xml", false],
|
||||
["application/octet-stream", false],
|
||||
|
||||
// Potato mimetypes:
|
||||
["text/potato", false],
|
||||
["potato/text", false],
|
||||
["aaa/aaa", false],
|
||||
["zzz/zzz", false],
|
||||
|
||||
// Parameterized mime types:
|
||||
["text/javascript; charset=utf-8", true],
|
||||
["text/javascript;charset=utf-8", true],
|
||||
["text/javascript;bla;bla", true],
|
||||
["text/csv; charset=utf-8", false],
|
||||
["text/csv;charset=utf-8", false],
|
||||
["text/csv;bla;bla", false],
|
||||
|
||||
// Funky capitalization:
|
||||
["Text/html", false],
|
||||
["text/Html", false],
|
||||
["TeXt/HtMl", false],
|
||||
["TEXT/HTML", false],
|
||||
];
|
||||
|
||||
for (var test_case of test_cases) {
|
||||
test(t => {
|
||||
let import_url = "/workers/support/imported_script.py?mime=" + test_case[0];
|
||||
if (test_case[1]) {
|
||||
assert_equals(undefined, importScripts(import_url));
|
||||
} else {
|
||||
assert_throws("NetworkError", _ => { importScripts(import_url) })
|
||||
}
|
||||
}, "importScripts() requires scripty MIME types: " + test_case[0] + " is " + (test_case[1] ? "allowed" : "blocked") + ".");
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
def main(request, response):
|
||||
return [('Content-Type', request.GET['mime'])], ""
|
Loading…
Add table
Add a link
Reference in a new issue