Auto merge of #20094 - servo-wpt-sync:wpt_update_20-02-2018, r=jdm

Sync WPT with upstream (20-02-2018)

Automated downstream sync of changes from upstream as of 20-02-2018.
[no-wpt-sync]

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20094)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-02-21 01:06:32 -05:00 committed by GitHub
commit a0fff37de3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
111 changed files with 3544 additions and 611 deletions

View file

@ -1,4 +1,8 @@
[url-in-tags-revoke.window.html]
expected: TIMEOUT
[Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL
[Fetching a blob URL immediately before revoking it works in <script> tags.]
expected: TIMEOUT

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,145 @@
[format-specifiers-variations.html]
[Load Ahem with format woff]
expected: FAIL
[Load Ahem with format truetype]
expected: FAIL
[Load Ahem with format opentype]
expected: FAIL
[Load Ahem with format woff2]
expected: FAIL
[Load Ahem with format woff-variations]
expected: FAIL
[Load Ahem with format truetype-variations]
expected: FAIL
[Load Ahem with format opentype-variations]
expected: FAIL
[Load Ahem with format woff2-variations]
expected: FAIL
[Do not load Ahem with format xyzwoff]
expected: FAIL
[Do not load Ahem with format xyztruetype]
expected: FAIL
[Do not load Ahem with format xyzopentype]
expected: FAIL
[Do not load Ahem with format xyzwoff2]
expected: FAIL
[Do not load Ahem with format xyzwoff-variations]
expected: FAIL
[Do not load Ahem with format xyztruetype-variations]
expected: FAIL
[Do not load Ahem with format xyzopentype-variations]
expected: FAIL
[Do not load Ahem with format xyzwoff2-variations]
expected: FAIL
[Do not load Ahem with format woffxyz]
expected: FAIL
[Do not load Ahem with format truetypexyz]
expected: FAIL
[Do not load Ahem with format opentypexyz]
expected: FAIL
[Do not load Ahem with format woff2xyz]
expected: FAIL
[Do not load Ahem with format woff-variationsxyz]
expected: FAIL
[Do not load Ahem with format truetype-variationsxyz]
expected: FAIL
[Do not load Ahem with format opentype-variationsxyz]
expected: FAIL
[Do not load Ahem with format woff2-variationsxyz]
expected: FAIL
[Do not load Ahem with format wo]
expected: FAIL
[Do not load Ahem with format truety]
expected: FAIL
[Do not load Ahem with format openty]
expected: FAIL
[Do not load Ahem with format wof]
expected: FAIL
[Do not load Ahem with format woff-variatio]
expected: FAIL
[Do not load Ahem with format truetype-variatio]
expected: FAIL
[Do not load Ahem with format opentype-variatio]
expected: FAIL
[Do not load Ahem with format woff2-variatio]
expected: FAIL
[Do not load Ahem with format ff]
expected: FAIL
[Do not load Ahem with format uetype]
expected: FAIL
[Do not load Ahem with format entype]
expected: FAIL
[Do not load Ahem with format ff2]
expected: FAIL
[Do not load Ahem with format ff-variations]
expected: FAIL
[Do not load Ahem with format uetype-variations]
expected: FAIL
[Do not load Ahem with format entype-variations]
expected: FAIL
[Do not load Ahem with format ff2-variations]
expected: FAIL
[Do not load Ahem with format wff]
expected: FAIL
[Do not load Ahem with format tretype]
expected: FAIL
[Do not load Ahem with format opntype]
expected: FAIL
[Do not load Ahem with format wff2]
expected: FAIL
[Do not load Ahem with format woff-ariations]
expected: FAIL
[Do not load Ahem with format truetye-variations]
expected: FAIL
[Do not load Ahem with format opentye-variations]
expected: FAIL
[Do not load Ahem with format woff2variations]
expected: FAIL

View file

@ -0,0 +1,4 @@
[Document-importNode.html]
[Import an Attr node with namespace/prefix correctly.]
expected: FAIL

View file

@ -979,8 +979,8 @@
"html/elements/img/usemap-bad-value-novalid.html": "Bad value \u201c#\u201d for attribute \u201cusemap\u201d on element \u201cimg\u201d: Bad hash-name reference: A hash-name reference must have at least one character after \u201c#\u201d.",
"html/elements/img/width-height-negative-novalid.html": "Bad value \u201c-1\u201d for attribute \u201cwidth\u201d on element \u201cimg\u201d: Bad non-negative integer: Expected a digit but saw \u201c-\u201d instead.",
"html/elements/input/list-novalid.html": "The \u201clist\u201d attribute of the \u201cinput\u201d element must refer to a \u201cdatalist\u201d element.",
"html/elements/input/pattern-asterisk-novalid.html": "Bad value \u201c*\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Invalid quantifier *",
"html/elements/input/pattern-paren-novalid.html": "Bad value \u201c(\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Unterminated parenthetical ",
"html/elements/input/pattern-asterisk-novalid.html": "Bad value \u201c*\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Invalid quantifier \u201c*\u201d",
"html/elements/input/pattern-paren-novalid.html": "Bad value \u201c(\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Unterminated parenthetical \u201c\u201d",
"html/elements/input/type-image-formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
"html/elements/input/type-image-formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
"html/elements/input/type-image-formaction/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<style>body { overflow:scroll; }</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="width:100px; height:100px; background:green;"></div>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<title>Auto-positioned absolutely positioned in static RTL parent, scrollbars on viewport</title>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-width" title="10.3.7 Absolutely positioned, non-replaced elements">
<link rel="match" href="auto-position-rtl-child-viewport-scrollbar-ref.html">
<style>body { overflow:scroll; }</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="direction:rtl; width:80px; height:80px; border:10px solid green; background:red;">
<div style="position:absolute; width:80px; height:80px; background:green;"></div>
</div>

View file

@ -0,0 +1,57 @@
<!DOCTYPE HTML>
<html>
<head>
<title>CSS Test: Supported format specifiers should load</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#src-desc"/>
<meta name="assert" content="Supported format specifiers should load"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
setup({
explicit_done: true
});
var formatSpecifiers = [
"woff",
"truetype",
"opentype",
"woff2",
"woff-variations",
"truetype-variations",
"opentype-variations",
"woff2-variations"
];
var defaultAhemSrc = 'url("../../fonts/Ahem.ttf") format("INSERT_FORMAT")';
function runTestOnFormatSpecifiers(formats, expectFail) {
for (var i = 0; i < formats.length; ++i) {
promise_test((testDetails) => {
var familyName = "load_ahem_" + i;
var ahemSrcFormat = defaultAhemSrc.replace("INSERT_FORMAT", testDetails.properties.format);
var fontFace = new FontFace(familyName, ahemSrcFormat);
if (!expectFail) {
return fontFace.load();
} else {
return promise_rejects(testDetails, "NetworkError", fontFace.load());
}
}, (expectFail ? "Do not load" : "Load") + " Ahem with format " + formats[i], {
"format": formats[i]
});
}
}
runTestOnFormatSpecifiers(formatSpecifiers, false);
runTestOnFormatSpecifiers(formatSpecifiers.map(x => "xyz" + x), true);
runTestOnFormatSpecifiers(formatSpecifiers.map(x => x + "xyz"), true);
runTestOnFormatSpecifiers(formatSpecifiers.map(x => x.slice(0, -2)), true);
runTestOnFormatSpecifiers(formatSpecifiers.map(x => x.slice(2)), true);
runTestOnFormatSpecifiers(formatSpecifiers.map(x => x.slice(0, x.length / 3) + x.slice(x.length / 3 + 1)), true);
done();
</script>
</body>
</html>

View file

@ -1,17 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>styleMap objects provide an 'update' function</title>
<meta name="author" title="Shane Stephens">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id='element'></div>
<div id="log"></div>
<script>
test(function() {
element.attributeStyleMap.set('width', new CSSUnitValue(42, 'px'));
element.attributeStyleMap.update('width', length => new CSSUnitValue(length.value + 20, length.unit))
assert_equals(element.attributeStyleMap.get('width').value, 62, 'update expected to apply callback to old value in map');
});
</script>

View file

@ -25,6 +25,39 @@ test(() => {
assert_style_value_array_equals(transform, values);
}, 'CSSTransformValue can be constructed with multiple transforms');
test(() => {
const values = [
new CSSScale(1, 1),
new CSSTranslate(CSS.px(1), CSS.px(1)),
new CSSRotate(CSS.deg(90))
];
const transform = new CSSTransformValue(values);
assert_style_value_array_equals(transform, values);
values.pop();
var new_value = new CSSRotate(CSS.deg(45));
values[2] = new_value;
transform[2] = new_value;
assert_style_value_array_equals(transform, values);
}, 'CSSTransformValue.set correctly sets the CSSTransformComponent at the given index');
test(() => {
const values = [
new CSSScale(1, 1),
new CSSTranslate(CSS.px(1), CSS.px(1)),
new CSSRotate(CSS.deg(90))
];
const transform = new CSSTransformValue(values);
assert_style_value_array_equals(transform, values);
var new_value = new CSSRotate(CSS.deg(45));
values[3] = new_value;
transform[3] = new_value;
assert_style_value_array_equals(transform, values);
}, 'Setting a component in CSSTransformValue correctly appends the CSSTransformComponent if index specified is greater than length');
test(() => {
const transform = new CSSTransformValue([
new CSSScale(1, 1),

View file

@ -0,0 +1,40 @@
<!doctype html>
<meta charset="utf-8">
<title>Declared StylePropertyMap.clear</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-clear">
<meta name="assert" content="Test declared StylePropertyMap.clear" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.clear();
assert_array_equals([...styleMap], []);
}, 'Clearing an empty CSS rule is a no-op');
test(t => {
let styleMap = createInlineStyleMap(t, '--foo: auto; width: 10px; transition-duration: 1s, 2s');
styleMap.clear();
assert_equals(styleMap.get('--foo'), null,
'Custom properties should be cleared');
assert_equals(styleMap.get('width'), null,
'CSS properties should be cleared');
assert_equals(styleMap.get('transition-duration'), null,
'List-valued properties should be cleared');
assert_array_equals([...styleMap], []);
}, 'Can clear a CSS rule containing properties');
test(t => {
let [rule, styleMap] = createRuleWithDeclaredStyleMap(t, 'width: 10px;');
styleMap.clear();
assert_equals(rule.style.width, '', 'CSS rule style should be cleared');
}, 'Declared StylePropertyMap.clear updates the CSS rule');
</script>

View file

@ -1,88 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>StylePropertyMap.update tests</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#update-a-value-in-a-stylepropertymap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<body>
<script>
'use strict';
const gInvalidTestCases = [
{ property: 'lemon', value: 'ade', desc: 'an unsupported property name' },
{ property: null, value: 'foo', desc: 'an null property name' },
{ property: 'width', value: CSS.deg(0), desc: 'an invalid CSSStyleValue' },
{ property: 'width', value: '10px', desc: 'a String' },
];
for (const {property, value, desc} of gInvalidTestCases) {
test(t => {
let styleMap = createDeclaredStyleMap(t, '');
assert_throws(new TypeError(), () => styleMap.update(property, () => value));
}, 'Updating a StylePropertyMap with ' + desc + ' throws TypeError');
}
test(t => {
let styleMap = createDeclaredStyleMap(t, '');
styleMap.update('width', () => CSS.px(10));
assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
styleMap.update('width', () => CSS.px(20));
assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
}, 'Updating a property with CSSStyleValue updates its value');
test(t => {
let styleMap = createDeclaredStyleMap(t, '');
styleMap.update('transition-duration', () => CSS.s(1));
assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1)]);
styleMap.update('transition-duration', () => CSS.s(2));
assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(2)]);
}, 'Updating a list-valued property with CSSStyleValue updates its value');
test(t => {
let styleMap = createDeclaredStyleMap(t, '');
styleMap.update('--foo', () => new CSSUnparsedValue(['auto']));
assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue(['auto']));
styleMap.update('--foo', () => new CSSUnparsedValue(['20px']));
assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue(['20px']));
}, 'Updating a custom property with CSSStyleValue updates its value');
test(t => {
let styleMap = createDeclaredStyleMap(t, '');
styleMap.update('width', oldValue => {
assert_equals(oldValue, null);
return CSS.px(10);
});
}, 'Calling StylePropertyMap.update on an empty property model calls update function with null');
test(t => {
let styleMap = createDeclaredStyleMap(t, 'width: 10px');
styleMap.update('width', oldValue => {
assert_style_value_equals(oldValue, CSS.px(10));
return CSS.px(20);
});
}, 'Calling StylePropertyMap.update on an existing property calls update function with old value');
test(t => {
let styleMap = createDeclaredStyleMap(t, 'transition-duration: 1s, 2s');
styleMap.update('transition-duration', oldValue => {
assert_style_value_equals(oldValue, CSS.s(1));
return CSS.s(2);
});
}, 'Calling StylePropertyMap.update on an existing list-valued property calls update function with first value');
test(t => {
let styleMap = createDeclaredStyleMap(t, 'width: 10px');
styleMap.update('wIdTh', () => CSS.px(20));
const result = styleMap.get('width');
assert_style_value_equals(result, CSS.px(20));
}, 'StylePropertyMap.update is case-insensitive');
</script>

View file

@ -0,0 +1,40 @@
<!doctype html>
<meta charset="utf-8">
<title>Inline StylePropertyMap.clear</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-clear">
<meta name="assert" content="Test inline StylePropertyMap.clear" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.clear();
assert_array_equals([...styleMap], []);
}, 'Clearing an empty inline style is a no-op');
test(t => {
let styleMap = createInlineStyleMap(t, '--foo: auto; width: 10px; transition-duration: 1s, 2s');
styleMap.clear();
assert_equals(styleMap.get('--foo'), null,
'Custom properties should be cleared');
assert_equals(styleMap.get('width'), null,
'CSS properties should be cleared');
assert_equals(styleMap.get('transition-duration'), null,
'List-valued properties should be cleared');
assert_array_equals([...styleMap], []);
}, 'Can clear an inline style containing properties');
test(t => {
let [elem, styleMap] = createElementWithInlineStyleMap(t, 'width: 10px;');
styleMap.clear();
assert_equals(elem.style.width, '', 'Element inline style should be cleared');
}, 'Inline StylePropertyMap.clear updates the element inline style');
</script>

View file

@ -1,88 +0,0 @@
<!doctype html>
<meta charset="utf-8">
<title>StylePropertyMap.update tests</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#update-a-value-in-a-stylepropertymap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/testhelper.js"></script>
<body>
<script>
'use strict';
const gInvalidTestCases = [
{ property: 'lemon', value: 'ade', desc: 'an unsupported property name' },
{ property: null, value: 'foo', desc: 'an null property name' },
{ property: 'width', value: CSS.deg(0), desc: 'an invalid CSSStyleValue' },
{ property: 'width', value: '10px', desc: 'a String' },
];
for (const {property, value, desc} of gInvalidTestCases) {
test(t => {
let styleMap = createInlineStyleMap(t, '');
assert_throws(new TypeError(), () => styleMap.update(property, () => value));
}, 'Updating a StylePropertyMap with ' + desc + ' throws TypeError');
}
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.update('width', () => CSS.px(10));
assert_style_value_array_equals(styleMap.get('width'), CSS.px(10));
styleMap.update('width', () => CSS.px(20));
assert_style_value_array_equals(styleMap.get('width'), CSS.px(20));
}, 'Updating a property with CSSStyleValue updates its value');
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.update('transition-duration', () => CSS.s(1));
assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(1)]);
styleMap.update('transition-duration', () => CSS.s(2));
assert_style_value_array_equals(styleMap.getAll('transition-duration'), [CSS.s(2)]);
}, 'Updating a list-valued property with CSSStyleValue updates its value');
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.update('--foo', () => new CSSUnparsedValue(['auto']));
assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue(['auto']));
styleMap.update('--foo', () => new CSSUnparsedValue(['20px']));
assert_style_value_array_equals(styleMap.get('--foo'), new CSSUnparsedValue(['20px']));
}, 'Updating a custom property with CSSStyleValue updates its value');
test(t => {
let styleMap = createInlineStyleMap(t, '');
styleMap.update('width', oldValue => {
assert_equals(oldValue, null);
return CSS.px(10);
});
}, 'Calling StylePropertyMap.update on an empty property model calls update function with null');
test(t => {
let styleMap = createInlineStyleMap(t, 'width: 10px');
styleMap.update('width', oldValue => {
assert_style_value_equals(oldValue, CSS.px(10));
return CSS.px(20);
});
}, 'Calling StylePropertyMap.update on an existing property calls update function with old value');
test(t => {
let styleMap = createInlineStyleMap(t, 'transition-duration: 1s, 2s');
styleMap.update('transition-duration', oldValue => {
assert_style_value_equals(oldValue, CSS.s(1));
return CSS.s(2);
});
}, 'Calling StylePropertyMap.update on an existing list-valued property calls update function with first value');
test(t => {
let styleMap = createInlineStyleMap(t, 'width: 10px');
styleMap.update('wIdTh', () => CSS.px(20));
const result = styleMap.get('width');
assert_style_value_equals(result, CSS.px(20));
}, 'StylePropertyMap.update is case-insensitive');
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>&#x4e00;&#x5343;&#x3001;</div>
<div>&#x4e00;&#x5343;&#x96f6;&#x4e00;&#x3001;</div>
<div>&#x4e00;&#x5343;&#x96f6;&#x4e8c;&#x3001;</div>
<div>&#x4e00;&#x5343;&#x96f6;&#x4e09;&#x3001;</div>
<div>&#x4e00;&#x5343;&#x96f6;&#x56db;&#x3001;</div>
<div>&#x4e00;&#x3007;&#x3007;&#x4e94;&#x3001;</div>
<div>&#x4e00;&#x3007;&#x3007;&#x516d;&#x3001;</div>
<div>&#x4e00;&#x3007;&#x3007;&#x4e03;&#x3001;</div>
<div>&#x4e00;&#x3007;&#x3007;&#x516b;&#x3001;</div>
<div>&#x4e00;&#x3007;&#x3007;&#x4e5d;&#x3001;</div>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: dependent builtin</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#extends-system">
<link rel="match" href="dependent-builtin-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends simp-chinese-informal;
range: 1000 1004;
}
</style>
<ol start="1000" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>00.&nbsp;</div>
<div>A.&nbsp;</div>
<div>B.&nbsp;</div>
<div>C.&nbsp;</div>
<div>D.&nbsp;</div>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor fallback, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-fallback">
<link rel="match" href="descriptor-fallback-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends upper-alpha;
fallback: decimal-leading-zero;
fallback: decimal cjk-decimal;
fallback: "*";
}
</style>
<ol start="0" style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>d.&nbsp;</div>
<div>e.&nbsp;</div>
<div>f.&nbsp;</div>
<div>7.&nbsp;</div>
<div>8.&nbsp;</div>
<div>9.&nbsp;</div>
<!-- list-style-type: b -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>d.&nbsp;</div>
<div>e.&nbsp;</div>
<div>f.&nbsp;</div>
<div>7.&nbsp;</div>
<div>8.&nbsp;</div>
<div>9.&nbsp;</div>
<!-- list-style-type: c -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>d.&nbsp;</div>
<div>e.&nbsp;</div>
<div>f.&nbsp;</div>
<div>g.&nbsp;</div>
<div>h.&nbsp;</div>
<div>i.&nbsp;</div>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor fallback</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-fallback">
<link rel="match" href="descriptor-fallback-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: fixed;
symbols: a b c;
fallback: b;
}
@counter-style b {
system: fixed 4;
symbols: d e f;
fallback: a;
}
@counter-style c {
system: fixed 7;
symbols: g h i;
fallback: a;
}
</style>
<ol style="list-style-type: a">
<li><li><li>
<li><li><li>
<li><li><li>
</ol>
<ol style="list-style-type: b">
<li><li><li>
<li><li><li>
<li><li><li>
</ol>
<ol style="list-style-type: c">
<li><li><li>
<li><li><li>
<li><li><li>
</ol>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>!2.&nbsp;</div>
<div>!1.&nbsp;</div>
<div>0.&nbsp;</div>
<div>1.&nbsp;</div>
<div>2.&nbsp;</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor negative, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-negative">
<link rel="match" href="descriptor-negative-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends decimal;
negative: '!';
negative: 0;
negative: ~;
negative: '(' 'x' ')';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>&#x207B;2.&nbsp;</div>
<div>&#x207B;1.&nbsp;</div>
<div>0.&nbsp;</div>
<div>1.&nbsp;</div>
<div>2.&nbsp;</div>
<!-- list-style-type: b -->
<div>(2).&nbsp;</div>
<div>(1).&nbsp;</div>
<div>0.&nbsp;</div>
<div>1.&nbsp;</div>
<div>2.&nbsp;</div>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor negative</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-negative">
<link rel="match" href="descriptor-negative-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends decimal;
negative: \207B;
}
@counter-style b {
system: extends decimal;
negative: '(' ')';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>001.&nbsp;</div>
<div>002.&nbsp;</div>
<div>003.&nbsp;</div>
<div>004.&nbsp;</div>
<div>005.&nbsp;</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor pad, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-pad">
<link rel="match" href="descriptor-pad-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends decimal;
pad: 3 "0";
pad: -1 "X";
pad: "#";
pad: 2 0;
}
</style>
<ol style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,31 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>-III.&nbsp;</div>
<div>-*II.&nbsp;</div>
<div>-**I.&nbsp;</div>
<div>0.&nbsp;</div>
<div>**I.&nbsp;</div>
<div>*II.&nbsp;</div>
<div>III.&nbsp;</div>
<div>*IV.&nbsp;</div>
<div>**V.&nbsp;</div>
<div>6.&nbsp;</div>
<!-- list-style-type: b -->
<div>(002).&nbsp;</div>
<div>(001).&nbsp;</div>
<div>000.&nbsp;</div>
<div>001.&nbsp;</div>
<div>002.&nbsp;</div>
<!-- list-style-type: c -->
<div>ooa&#x0304;</div>
<div>ooa&#x0301;</div>
<div>oa&#x0304;a&#x0301;</div>
<div>oa&#x030c;a&#x0300;</div>
<div>a&#x0304;a&#x0301;a&#x030c;</div>
<div>a&#x0300;a&#x0304;a&#x0301;</div>
<!-- list-style-type: d -->
<div>001.&nbsp;</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor pad</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-pad">
<link rel="match" href="descriptor-pad-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends upper-roman;
range: infinite 5;
pad: 3 '*';
}
@counter-style b {
system: extends decimal;
negative: '(' ')';
pad: 3 '0';
}
@counter-style c {
system: alphabetic;
symbols: a\0304 a\0301 a\030c a\0300;
pad: 3 o;
suffix: '';
}
@counter-style d {
system: extends decimal;
pad: '0' 3;
}
</style>
<ol start="-3" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
</ol>
<ol style="list-style-type: c">
<li><li>
<li value="6"><li value="16">
<li value="27"><li value="70">
</ol>
<ol style="list-style-type: d">
<li>
</ol>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>#-2.&nbsp;</div>
<div>#-1.&nbsp;</div>
<div>#0.&nbsp;</div>
<div>#1.&nbsp;</div>
<div>#2.&nbsp;</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor prefix, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-prefix">
<link rel="match" href="descriptor-prefix-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends decimal;
prefix: "#";
prefix: *;
prefix: 0;
prefix: '$' '$';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- ol -->
<div>Appendix -2.&nbsp;</div>
<div>Appendix -1.&nbsp;</div>
<div>Appendix 0.&nbsp;</div>
<div>Appendix I.&nbsp;</div>
<div>Appendix II.&nbsp;</div>
<!-- section -->
<p>-2</p>
<p>-1</p>
<p>0</p>
<p>I</p>
<p>II</p>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor prefix</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-prefix">
<link rel="match" href="descriptor-prefix-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends upper-roman;
prefix: "Appendix ";
}
section {
counter-reset: p -3;
}
p {
counter-increment: p;
}
p::before {
content: counter(p, a);
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>
<section>
<p><p><p><p><p>
</section>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>3.&nbsp;</div>
<div>4.&nbsp;</div>
<div>5.&nbsp;</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor range, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-range">
<link rel="match" href="descriptor-range-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends lower-alpha;
range: 1 2;
range: 1;
range: 3 1;
range: xx yy;
}
</style>
<ol style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>-III.&nbsp;</div>
<div>-2.&nbsp;</div>
<div>-I.&nbsp;</div>
<div>0.&nbsp;</div>
<div>I.&nbsp;</div>
<div>II.&nbsp;</div>
<div>3.&nbsp;</div>
<div>IV.&nbsp;</div>
<div>5.&nbsp;</div>
<div>6.&nbsp;</div>
<div>VII.&nbsp;</div>
<div>VIII.&nbsp;</div>
<div>IX.&nbsp;</div>
<div>10.&nbsp;</div>
<div>XI.&nbsp;</div>
<div>MMMCMXCIX.&nbsp;</div>
<div>MMMM.&nbsp;</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor range</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-range">
<link rel="match" href="descriptor-range-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends upper-roman;
range: infinite -3, -1 2, 4 4, 7 9, 11 infinite;
}
</style>
<ol start="-3" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
<li><li><li><li><li>
<li value="3999"><li>
</ol>

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>-2,</div>
<div>-1,</div>
<div>0,</div>
<div>1,</div>
<div>2,</div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor suffix, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-suffix">
<link rel="match" href="descriptor-suffix-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends decimal;
suffix: ',';
suffix: *;
suffix: 0;
suffix: '$' '$';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<style type="text/css">
div {
padding: 0; margin: 0;
line-height: 150%;
}
</style>
<!-- list-style-type: a -->
<div>-2,-2</div>
<div>-1,-1</div>
<div>0,0</div>
<div>1,1</div>
<div>2,2</div>
<!-- list-style-type: b -->
<div>-2&#x3001;-2</div>
<div>-1&#x3001;-1</div>
<div>0&#x3001;0</div>
<div>1&#x3001;1</div>
<div>2&#x3001;2</div>
<!-- section -->
<div>-2</div>
<div>-1</div>
<div>0</div>
<div>1</div>
<div>2</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor suffix</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-suffix">
<link rel="match" href="descriptor-suffix-ref.html">
<style type="text/css">
@counter-style a {
system: extends decimal;
suffix: ",";
}
@counter-style b {
system: extends decimal;
suffix: \3001;
}
ol {
list-style-position: inside;
}
ol, section, p {
padding: 0; margin: 0;
line-height: 150%;
}
section {
counter-reset: p -3;
}
p {
counter-increment: p;
}
p::before {
content: counter(p, a);
}
</style>
<ol start="-2" style="list-style-type: a">
<li>-2<li>-1<li>0<li>1<li>2
</ol>
<ol start="-2" style="list-style-type: b">
<li>-2<li>-1<li>0<li>1<li>2
</ol>
<section>
<p><p><p><p><p>
</section>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>4.&nbsp;</div>
<div>5.&nbsp;</div>
<!-- list-style-type: b -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>ca.&nbsp;</div>
<div>cb.&nbsp;</div>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor symbols, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-symbols">
<link rel="match" href="descriptor-symbols-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: fixed;
symbols: a b c;
symbols: 0 1 2;
}
@counter-style b {
system: additive;
additive-symbols: 3 c, 2 b, 1 a;
additive-symbols: 1 x, 2 y, 3 z;
additive-symbols: x, y, z;
additive-symbols: 1, 2, 3;
}
</style>
<ol style="list-style-type: a">
<li><li><li><li><li>
</ol>
<ol style="list-style-type: b">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<!-- list-style-type: b -->
<div>a.&nbsp;</div>
<div>b.&nbsp;</div>
<div>c.&nbsp;</div>
<div>d.&nbsp;</div>
<div>e.&nbsp;</div>
<div>f.&nbsp;</div>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: descriptor symbols</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#counter-style-symbols">
<link rel="match" href="descriptor-symbols-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: fixed;
symbols: a "b" \63;
}
@counter-style b {
system: additive;
additive-symbols: \66 6, 'e' 5, d 4, 3 \63, 2 "b", 1 a;
}
</style>
<ol style="list-style-type: a">
<li><li><li>
</ol>
<ol style="list-style-type: b">
<li><li><li><li><li><li>
</ol>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<style type="text/css">
@counter-style disclosure-closed2-ltr {
system: cyclic;
symbols: \25b8;
suffix: ' ';
}
@counter-style disclosure-closed2-rtl {
system: cyclic;
symbols: \25c2;
suffix: ' ';
}
@counter-style disclosure-open2 {
system: cyclic;
symbols: \25be;
suffix: ' ';
}
.open { list-style-type: disclosure-open2; }
.closed:dir(ltr) { list-style-type: disclosure-closed2-ltr; }
.closed:dir(rtl) { list-style-type: disclosure-closed2-rtl; }
ul {
padding: 0;
list-style-position: inside;
}
</style>
<ul dir="ltr">
<li class="closed">closed ltr
<li class="open">open ltr
</ul>
<ul dir="rtl">
<li class="closed">closed rtl
<li class="open">open rtl
</ul>
<p dir="ltr">&#x25b8;&nbsp;closed ltr
<p dir="rtl">&#x25c2;&nbsp;closed rtl

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: disclosure styles</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#disclosure-open">
<link rel="match" href="disclosure-styles-ref.html">
<style type="text/css">
@counter-style disclosure-closed2 {
system: extends disclosure-closed;
}
@counter-style disclosure-open2 {
system: extends disclosure-open;
}
ul {
padding: 0;
list-style-position: inside;
}
.closed { list-style-type: disclosure-closed2; }
.open { list-style-type: disclosure-open2; }
p::before {
content: counter(a, disclosure-closed) " ";
}
</style>
<ul dir="ltr">
<li class="closed">closed ltr
<li class="open">open ltr
</ul>
<ul dir="rtl">
<li class="closed">closed rtl
<li class="open">open rtl
</ul>
<p dir="ltr">closed ltr
<p dir="rtl">closed rtl

View file

@ -0,0 +1,77 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<style type="text/css">
ol, div, p {
padding: 0; margin: 0;
line-height: 150%;
}
ol {
list-style-position: inside;
}
li, div, p {
float: left;
}
@counter-style decimal-leading-zero {
system: extends decimal;
pad: 3 '0';
}
@counter-style custom-style {
system: cyclic;
symbols: \2023;
}
</style>
<!-- list-style -->
<ol><li style="list-style: hiragana inside;"></li></ol>
<ol><li style="list-style: decimal-leading-zero inside;"></li></ol>
<ol><li style="list-style: custom-style inside;"></li></ol>
<ol><li style="list-style: decimal inside;"></li></ol>
<!-- list-style-type -->
<ol><li style="list-style-type: hiragana;"></li></ol>
<ol><li style="list-style-type: decimal-leading-zero;"></li></ol>
<ol><li style="list-style-type: custom-style;"></li></ol>
<ol><li style="list-style-type: decimal;"></li></ol>
<!-- counter() -->
<style type="text/css">
#counter { counter-reset: a 1; }
#counter-a::before { content: counter(a, hiragana); }
#counter-b::before { content: counter(a, decimal-leading-zero); }
#counter-c::before { content: counter(a, custom-style); }
#counter-d::before { content: counter(a, decimal); }
</style>
<div id="counter">
<p id="counter-a"></p>
<p id="counter-b"></p>
<p id="counter-c"></p>
<p id="counter-d"></p>
</div>
<!-- counters() -->
<style type="text/css">
#counters { counter-reset: a 1; }
#counters-a::before { content: counters(a, '', hiragana); }
#counters-b::before { content: counters(a, '', decimal-leading-zero); }
#counters-c::before { content: counters(a, '', custom-style); }
#counters-d::before { content: counters(a, '', decimal); }
</style>
<div id="counters">
<p id="counters-a"></p>
<p id="counters-b"></p>
<p id="counters-c"></p>
<p id="counters-d"></p>
</div>
<style type="text/css">
@counter-style a { system: extends hiragana; }
@counter-style b { system: extends decimal-leading-zero; }
@counter-style c { system: extends custom-style; }
@counter-style d { system: extends decimal; }
</style>
<ol><li style="list-style-type: a;"></li></ol>
<ol><li style="list-style-type: b;"></li></ol>
<ol><li style="list-style-type: c;"></li></ol>
<ol><li style="list-style-type: d;"></li></ol>

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: name case sensitivity</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#typedef-counter-style-name">
<link rel="match" href="name-case-sensitivity-ref.html">
<style type="text/css">
ol, div, p {
padding: 0; margin: 0;
line-height: 150%;
}
ol {
list-style-position: inside;
}
li, div, p {
float: left;
}
@counter-style decimal-leading-zero {
system: extends decimal;
pad: 3 '0';
}
@counter-style custom-style {
system: cyclic;
symbols: \2023;
}
</style>
<!-- list-style -->
<ol><li style="list-style: Hiragana inside;"></li></ol>
<ol><li style="list-style: Decimal-Leading-Zero inside;"></li></ol>
<ol><li style="list-style: custom-style inside;"></li></ol>
<ol><li style="list-style: Custom-Style inside;"></li></ol>
<!-- list-style-type -->
<ol><li style="list-style-type: Hiragana;"></li></ol>
<ol><li style="list-style-type: Decimal-Leading-Zero;"></li></ol>
<ol><li style="list-style-type: custom-style;"></li></ol>
<ol><li style="list-style-type: Custom-Style;"></li></ol>
<!-- counter() -->
<style type="text/css">
#counter { counter-reset: a 1; }
#counter-a::before { content: counter(a, Hiragana); }
#counter-b::before { content: counter(a, Decimal-leading-Zero); }
#counter-c::before { content: counter(a, custom-style); }
#counter-d::before { content: counter(a, Custom-Style); }
</style>
<div id="counter">
<p id="counter-a"></p>
<p id="counter-b"></p>
<p id="counter-c"></p>
<p id="counter-d"></p>
</div>
<!-- counters() -->
<style type="text/css">
#counters { counter-reset: a 1; }
#counters-a::before { content: counters(a, '', Hiragana); }
#counters-b::before { content: counters(a, '', Decimal-leading-Zero); }
#counters-c::before { content: counters(a, '', custom-style); }
#counters-d::before { content: counters(a, '', Custom-Style); }
</style>
<div id="counters">
<p id="counters-a"></p>
<p id="counters-b"></p>
<p id="counters-c"></p>
<p id="counters-d"></p>
</div>
<style type="text/css">
@counter-style a { system: extends HiRaGaNa; }
@counter-style b { system: extends Decimal-leading-ZERO; }
@counter-style c { system: extends custom-style; }
@counter-style d { system: extends Custom-Style; }
</style>
<ol><li style="list-style-type: a;"></li></ol>
<ol><li style="list-style-type: b;"></li></ol>
<ol><li style="list-style-type: c;"></li></ol>
<ol><li style="list-style-type: d;"></li></ol>

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style triangle {
system: cyclic;
symbols: \2023;
suffix: "";
}
.triangle { list-style-type: triangle; }
.hiragana { list-style-type: hiragana; }
.katakana { list-style-type: katakana; }
.hiragana-iroha { list-style-type: hiragana-iroha; }
.katakana-iroha { list-style-type: katakana-iroha; }
</style>
<ul class="triangle"><li></ul>
<ul class="triangle"><li></ul>
<ul class="triangle"><li></ul>
<ul class="hiragana"><li></ul>
<ul class="katakana"><li></ul>
<ul class="hiragana-iroha"><li></ul>
<ul class="katakana-iroha"><li></ul>
<ul class="hiragana"><li></ul>
<ul class="katakana"><li></ul>
<ul class="hiragana-iroha"><li></ul>
<ul class="katakana-iroha"><li></ul>
<ol><li></ol>
<ol class="triangle"><li></ol>
<ol class="triangle"><li></ol>
<ol class="triangle"><li></ol>
<ol class="hiragana"><li></ol>
<ol class="katakana"><li></ol>
<ol class="hiragana-iroha"><li></ol>
<ol class="katakana-iroha"><li></ol>
<ol class="hiragana"><li></ol>
<ol class="katakana"><li></ol>
<ol class="hiragana-iroha"><li></ol>
<ol class="katakana-iroha"><li></ol>
<ul>
<li class="triangle">
<li class="triangle">
<li class="triangle">
<li class="hiragana">
<li class="katakana">
<li class="hiragana-iroha">
<li class="katakana-iroha">
</ul>

View file

@ -0,0 +1,69 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: redefine attr mapping</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#the-counter-style-rule">
<link rel="match" href="redefine-attr-mapping-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style triangle {
system: cyclic;
symbols: \2023;
suffix: "";
}
@counter-style disc {
system: extends triangle;
}
@counter-style circle {
system: extends triangle;
}
@counter-style square {
system: extends triangle;
}
@counter-style lower-roman {
system: extends hiragana;
}
@counter-style upper-roman {
system: extends katakana;
}
@counter-style lower-alpha {
system: extends hiragana-iroha;
}
@counter-style upper-alpha {
system: extends katakana-iroha;
}
</style>
<ul type="circle"><li></ul>
<ul type="round"><li></ul>
<ul type="square"><li></ul>
<ul type="i"><li></ul>
<ul type="I"><li></ul>
<ul type="a"><li></ul>
<ul type="A"><li></ul>
<ul type="lower-roman"><li></ul>
<ul type="upper-roman"><li></ul>
<ul type="lower-alpha"><li></ul>
<ul type="upper-alpha"><li></ul>
<ol><li></ol>
<ol type="circle"><li></ol>
<ol type="round"><li></ol>
<ol type="square"><li></ol>
<ol type="i"><li></ol>
<ol type="I"><li></ol>
<ol type="a"><li></ol>
<ol type="A"><li></ol>
<ol type="lower-roman"><li></ol>
<ol type="upper-roman"><li></ol>
<ol type="lower-alpha"><li></ol>
<ol type="upper-alpha"><li></ol>
<ul>
<li type="circle">
<li type="round">
<li type="square">
<li type="i">
<li type="I">
<li type="a">
<li type="A">
</ul>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<ol>
<li style="list-style-type: none">foo
<li style="list-style-type: decimal">bar
<li style="list-style-type: disc">baz
<li style="list-style-type: cjk-decimal">
</ol>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: redefine builtin</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#the-counter-style-rule">
<link rel="match" href="redefine-builtin-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style none {
system: extends lower-roman;
}
@counter-style decimal {
system: extends upper-roman;
}
@counter-style disc {
system: extends decimal;
}
@counter-style hebrew {
system: extends cjk-decimal;
}
</style>
<ol>
<li style="list-style-type: none">foo
<li style="list-style-type: decimal">bar
<li style="list-style-type: disc">baz
<li style="list-style-type: hebrew">
</ol>

View file

@ -0,0 +1,35 @@
== system-cyclic.html system-cyclic-ref.html
== system-fixed.html system-fixed-ref.html
== system-symbolic.html system-symbolic-ref.html
== system-alphabetic.html system-alphabetic-ref.html
== system-numeric.html system-numeric-ref.html
== system-additive.html system-additive-ref.html
== system-extends.html system-extends-ref.html
== system-cyclic-invalid.html system-common-invalid-ref.html
== system-fixed-invalid.html system-common-invalid2-ref.html
== system-symbolic-invalid.html system-common-invalid-ref.html
== system-alphabetic-invalid.html system-common-invalid2-ref.html
== system-numeric-invalid.html system-common-invalid2-ref.html
== system-additive-invalid.html system-common-invalid-ref.html
== system-extends-invalid.html system-extends-invalid-ref.html
== descriptor-negative.html descriptor-negative-ref.html
== descriptor-prefix.html descriptor-prefix-ref.html
== descriptor-suffix.html descriptor-suffix-ref.html
== descriptor-range.html descriptor-range-ref.html
== descriptor-pad.html descriptor-pad-ref.html
== descriptor-fallback.html descriptor-fallback-ref.html
== descriptor-symbols.html descriptor-symbols-ref.html
== descriptor-negative-invalid.html descriptor-negative-invalid-ref.html
== descriptor-prefix-invalid.html descriptor-prefix-invalid-ref.html
== descriptor-suffix-invalid.html descriptor-suffix-invalid-ref.html
== descriptor-range-invalid.html descriptor-range-invalid-ref.html
== descriptor-pad-invalid.html descriptor-pad-invalid-ref.html
== descriptor-fallback-invalid.html descriptor-fallback-invalid-ref.html
== descriptor-symbols-invalid.html descriptor-symbols-invalid-ref.html
== name-case-sensitivity.html name-case-sensitivity-ref.html
== dependent-builtin.html dependent-builtin-ref.html
== redefine-builtin.html redefine-builtin-ref.html
== redefine-attr-mapping.html redefine-attr-mapping-ref.html
== disclosure-styles.html disclosure-styles-ref.html
== symbols-function.html symbols-function-ref.html
== symbols-function-invalid.html symbols-function-invalid-ref.html

View file

@ -0,0 +1,12 @@
body {
/* to match ua.css, see bug 1020143 */
font-variant-numeric: tabular-nums;
}
div, p {
padding: 0; margin: 0;
line-height: 150%;
float: left;
}
p {
padding-right: .5em;
}

View file

@ -0,0 +1,18 @@
body {
/* to match ua.css, see bug 1020143 */
font-variant-numeric: tabular-nums;
}
ol, ul, section, p {
padding: 0; margin: 0;
line-height: 150%;
}
ol, ul {
list-style-position: inside;
}
li, p {
float: left;
padding: 0;
}
p {
padding-right: .5em;
}

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
.invalid {
list-style-type: lower-greek;
}
</style>
<ol start="-2" class="invalid">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#symbols-function">
<link rel="match" href="symbols-function-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
.invalid {
list-style-type: lower-greek;
list-style-type: symbols(a b c);
list-style-type: symbols(alphabetic a b c);
list-style-type: symbols(numeric 0 1 2);
list-style-type: symbols(additive 'a' 'b');
list-style-type: symbols(fixed);
list-style-type: symbols(alphabetic 'a');
list-style-type: symbols(numeric '0');
}
</style>
<ol start="-2" class="invalid">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,89 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style cyclic {
system: cyclic;
symbols: '*' '\2020' '\2021' '\A7';
suffix: ' ';
}
@counter-style numeric {
system: numeric;
symbols: '0' '1' '2';
suffix: ' ';
}
@counter-style alphabetic {
system: alphabetic;
symbols: '\26AA' '\26AB';
suffix: ' ';
}
@counter-style symbolic {
system: symbolic;
symbols: '*' '\2020' '\2021' '\A7';
suffix: ' ';
}
@counter-style fixed {
system: fixed;
symbols: '\25F0' '\25F1' '\25F2' '\25F3';
suffix: ' ';
}
@counter-style counter {
symbols: '*';
}
@counter-style counters {
system: numeric;
symbols: '0' '1';
}
.counter { counter-reset: a; }
.counter p { counter-increment: a 1; }
.counter p::after {
content: counter(a, counter);
}
.counter, .counters {
list-style-type: none;
counter-reset: a;
}
.counter li, .counters li {
counter-increment: a;
padding-right: .5em;
}
.counter li::after {
content: counter(a, counter);
}
.counters .counters li::after {
content: counters(a, '.', counters);
}
</style>
<ol start="-2" style="list-style-type: symbolic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: cyclic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: numeric">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: alphabetic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: symbolic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: fixed">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol class="counter">
<li><li><li><li><li>
</ol>
<ol class="counters">
<li><ol class="counters"><li><li><li><li><li></ol></li>
<li><ol class="counters"><li><li><li><li><li></ol></li>
</ol>

View file

@ -0,0 +1,72 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: symbols function</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#symbols-function">
<link rel="match" href="symbols-function-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
.default {
list-style-type: symbols('*' '\2020' '\2021' '\A7');
}
.cyclic {
list-style-type: symbols(cyclic '*' '\2020' '\2021' '\A7');
}
.numeric {
list-style-type: symbols(numeric '0' '1' '2');
}
.alphabetic {
list-style-type: symbols(alphabetic '\26AA' '\26AB');
}
.symbolic {
list-style-type: symbols(symbolic '*' '\2020' '\2021' '\A7');
}
.fixed {
list-style-type: symbols(fixed '\25F0' '\25F1' '\25F2' '\25F3');
}
.counter, .counters {
list-style-type: none;
counter-reset: a;
}
.counter li, .counters li {
counter-increment: a;
padding-right: .5em;
}
.counter li::after {
content: counter(a, symbols('*'));
}
.counters .counters li::after {
content: counters(a, '.', symbols(numeric '0' '1'));
}
</style>
<ol start="-2" class="default">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" class="cyclic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" class="numeric">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" class="alphabetic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" class="symbolic">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" class="fixed">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol class="counter">
<li><li><li><li><li>
</ol>
<ol class="counters">
<li><ol class="counters"><li><li><li><li><li></ol></li>
<li><ol class="counters"><li><li><li><li><li></ol></li>
</ol>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system additive, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#additive-system">
<link rel="match" href="system-common-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: additive;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>-2</div>
<div>-1</div>
<div>0</div>
<div>&#x2680;</div>
<div>&#x2681;</div>
<div>&#x2682;</div>
<div>&#x2683;</div>
<div>&#x2684;</div>
<div>&#x2685;</div>
<div>&#x2685;&#x2680;</div>
<div>&#x2685;&#x2683;</div>
<div>&#x2685;&#x2684;</div>
<div>&#x2685;&#x2685;</div>
<div>&#x2685;&#x2685;&#x2680;</div>
<div><script type="text/javascript">
document.write(Array(61).join('&#x2685;'));
</script></div>
<!-- list-style-type: b -->
<div>-2</div>
<div>-1</div>
<div>&#x2637;</div>
<div>&#x2636;</div>
<div>&#x2635;</div>
<!-- list-style-type: c -->
<div>1.&nbsp;</div>
<div>b.&nbsp;</div>
<div>a.&nbsp;</div>
<div>4.&nbsp;</div>
<div>ab.&nbsp;</div>
<!-- list-style-type: d -->
<div><script type="text/javascript">
document.write(Array(61).join('&#x10300;'));
</script>.&nbsp;</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system additive</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#additive-system">
<link rel="match" href="system-additive-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: additive;
additive-symbols: 6 \2685, 5 \2684, 4 \2683, 3 \2682, 2 \2681, 1 \2680;
suffix: "";
}
@counter-style b {
system: additive;
additive-symbols: 7 \2630, 6 \2631, 5 \2632, 4 \2633, 3 \2634, 2 \2635, 1 \2636, 0 \2637;
suffix: "";
}
@counter-style c {
system: additive;
additive-symbols: 3 "a", 2 "b";
}
@counter-style d {
system: additive;
additive-symbols: 1 \10300;
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
<li value="10"><li><li><li>
<li value="360"><!-- 60 code points -->
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
</ol>
<ol style="list-style-type: c">
<li><li><li><li><li>
</ol>
<ol style="list-style-type: d">
<li value="60"><!-- 60 code points -->
</ol>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system alphabetic, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#alphabetic-system">
<link rel="match" href="system-common-invalid2-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: alphabetic;
suffix: ":";
}
@counter-style b {
system: alphabetic;
symbols: A;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>
<ol start="-2" style="list-style-type: b">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>-2</div>
<div>-1</div>
<div>0</div>
<div>&#x26AA;</div>
<div>&#x26AB;</div>
<div>&#x26AA;&#x26AA;</div>
<div>&#x26AA;&#x26AB;</div>
<div>&#x26AB;&#x26AA;</div>
<div>&#x26AB;&#x26AB;</div>
<div>&#x26AA;&#x26AA;&#x26AA;</div>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system alphabetic</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#alphabetic-system">
<link rel="match" href="system-alphabetic-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: alphabetic;
symbols: \26AA \26AB;
suffix: '';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<ol start="-2" style="list-style-type: decimal">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<ol start="-2" style="list-style-type: decimal">
<li>foo<li>bar<li>foo<li>bar
</ol>
<ol start="-2" style="list-style-type: decimal">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system cyclic, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#cyclic-system">
<link rel="match" href="system-common-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: cyclic;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>&#x2023;</div>
<div>&#x2023;</div>
<div>&#x2023;</div>
<div>&#x2023;</div>
<div>&#x2023;</div>
<!-- list-style-type: b -->
<div>&#x2021;</div>
<div>&#x2020;</div>
<div>&#x2021;</div>
<div>&#x2020;</div>
<div>&#x2021;</div>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system cyclic</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#cyclic-system">
<link rel="match" href="system-cyclic-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: cyclic;
symbols: \2023;
suffix: "";
}
@counter-style b {
system: cyclic;
symbols: \2020 \2021;
suffix: "";
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/test-common.css">
<link rel="stylesheet" href="support/ref-common.css">
<style type="text/css">
ol {
list-style: decimal inside;
}
</style>
<div>a1b</div>
<div>2b</div>
<div>c3.&nbsp;</div>
<div>d4.&nbsp;</div>
<div>e5.&nbsp;</div>
<ol start="6">
<li>foo<li>bar
</ol>

View file

@ -0,0 +1,46 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system extends, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#extends-system">
<link rel="match" href="system-extends-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends b;
prefix: a;
}
@counter-style b {
system: extends c;
suffix: b;
}
@counter-style c {
system: extends b;
pad: 2 c;
}
@counter-style d {
system: extends d;
prefix: d;
}
@counter-style e {
system: extends unknown;
prefix: e;
}
@counter-style f {
system: extends decimal;
symbols: a;
}
@counter-style g {
system: extends decimal;
additive-symbols: 1 a;
}
</style>
<ol>
<li style="list-style-type: a;">
<li style="list-style-type: b;">
<li style="list-style-type: c;">
<li style="list-style-type: d;">
<li style="list-style-type: e;">
<li style="list-style-type: f;">foo
<li style="list-style-type: g;">bar
</ol>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>Chapter -2.&nbsp;</div>
<div>Chapter -1.&nbsp;</div>
<div>Chapter 0.&nbsp;</div>
<div>Chapter I.&nbsp;</div>
<div>Chapter II.&nbsp;</div>
<div>Chapter III.&nbsp;</div>
<div>Chapter IV.&nbsp;</div>
<div>Chapter V.&nbsp;</div>
<div>Chapter 6.&nbsp;</div>
<div>Chapter 7.&nbsp;</div>
<!-- list-style-type: b -->
<div>Section -2.&nbsp;</div>
<div>Section -1.&nbsp;</div>
<div>Section 0.&nbsp;</div>
<div>Section I.&nbsp;</div>
<div>Section II.&nbsp;</div>
<div>Section III.&nbsp;</div>
<div>Section IV.&nbsp;</div>
<div>Section V.&nbsp;</div>
<div>Section VI.&nbsp;</div>
<div>Section 7.&nbsp;</div>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system extends</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#extends-system">
<link rel="match" href="system-extends-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: extends upper-roman;
prefix: "Chapter ";
range: 1 5;
}
@counter-style b {
system: extends a;
prefix: "Section ";
range: 1 6;
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system fixed, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#fixed-system">
<link rel="match" href="system-common-invalid2-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: fixed;
suffix: ":";
}
@counter-style b {
system: fixed invalid;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>
<ol start="-2" style="list-style-type: b">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>-2:</div>
<div>-1:</div>
<div>0:</div>
<div>&#x25F0;:</div>
<div>&#x25F1;:</div>
<div>&#x25F2;:</div>
<div>&#x25F3;:</div>
<div>5:</div>
<div>6:</div>
<div>7:</div>
<!-- list-style-type: b -->
<div>-2:</div>
<div>&#x25F4;:</div>
<div>&#x25F5;:</div>
<div>&#x25F6;:</div>
<div>&#x25F7;:</div>
<div>3:</div>
<div>4:</div>
<div>5:</div>
<div>6:</div>
<div>7:</div>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system fixed</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#fixed-system">
<link rel="match" href="system-fixed-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: fixed;
symbols: \25F0 \25F1 \25F2 \25F3;
suffix: ':';
}
@counter-style b {
system: fixed -1;
symbols: \25F4 \25F5 \25F6 \25F7;
suffix: ':';
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>
<ol start="-2" style="list-style-type: b">
<li><li><li><li><li>
<li><li><li><li><li>
</ol>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system numeric, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#numeric-system">
<link rel="match" href="system-common-invalid2-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: numeric;
suffix: ":";
}
@counter-style b {
system: numeric;
symbols: A;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>
<ol start="-2" style="list-style-type: b">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<div>-11.&nbsp;</div>
<div>-10.&nbsp;</div>
<div>-2.&nbsp;</div>
<div>-1.&nbsp;</div>
<div>0.&nbsp;</div>
<div>1.&nbsp;</div>
<div>2.&nbsp;</div>
<div>10.&nbsp;</div>
<div>11.&nbsp;</div>
<div>12.&nbsp;</div>
<div>10201.&nbsp;</div>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system numeric</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#numeric-system">
<link rel="match" href="system-numeric-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: numeric;
symbols: '0' '1' '2';
}
</style>
<ol start="-4" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
<li value="100">
</ol>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system symbolic, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#symbolic-system">
<link rel="match" href="system-common-invalid-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
system: symbolic;
suffix: ":";
}
</style>
<ol start="-2" style="list-style-type: a">
<li>foo<li>bar<li>foo<li>bar
</ol>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference: symbols function, invalid</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="stylesheet" href="support/ref-common.css">
<!-- list-style-type: a -->
<div>-2</div>
<div>-1</div>
<div>0</div>
<div>*</div>
<div>&#x2051;</div>
<div>&#x2020;</div>
<div>&#x2021;</div>
<div>**</div>
<div>&#x2051;&#x2051;</div>
<div>&#x2020;&#x2020;</div>
<div><script type="text/javascript">
document.write(Array(61).join('&#x2021;'));
</script></div>
<!-- list-style-type: b -->
<div><script type="text/javascript">
document.write(Array(61).join('&#x10300;'));
</script>.&nbsp;</div>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Test: system symbolic</title>
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org/">
<link rel="help" href="https://drafts.csswg.org/css-counter-styles-3/#symbolic-system">
<link rel="match" href="system-symbolic-ref.html">
<link rel="stylesheet" href="support/test-common.css">
<style type="text/css">
@counter-style a {
/* system: symbolic; */
symbols: '*' \2051 \2020 \2021;
suffix: '';
}
@counter-style b {
symbols: \10300;
}
</style>
<ol start="-2" style="list-style-type: a">
<li><li><li><li><li>
<li><li><li><li><li>
<li value="240"><!-- 60 code points -->
</ol>
<ol style="list-style-type: b">
<li value="60"><!-- 60 code points -->
</ol>

View file

@ -23,10 +23,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -58,36 +54,36 @@
<body>
<div class="container hl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container hr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -30,10 +30,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -52,36 +48,36 @@
<body>
<div class="container hl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container hr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -24,10 +24,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
@ -61,36 +57,36 @@
<body>
<div class="container vl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -31,10 +31,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -53,36 +49,36 @@
<body>
<div class="container vl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -24,10 +24,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
@ -61,36 +57,36 @@
<body>
<div class="container vl_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -32,10 +32,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -54,36 +50,36 @@
<body>
<div class="container vl_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -24,10 +24,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -62,36 +58,36 @@
<body>
<div class="container hl">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container hl">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container hr">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container hr">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
</body>

View file

@ -31,10 +31,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -53,36 +49,36 @@
<body>
<div class="container hl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container hr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container hr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -23,10 +23,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -60,36 +56,36 @@
<body>
<div class="container vl">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vl">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vr">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vr">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
</body>

View file

@ -30,10 +30,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -52,36 +48,36 @@
<body>
<div class="container vl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -23,10 +23,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -60,36 +56,36 @@
<body>
<div class="container vl_rtl">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vl_rtl">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vr_rtl">
<span class="hl small">a b c</span> <nocollapse></nocollapse>
<span class="hl big">d e</span> <nocollapse></nocollapse>
<span class="hr small">a b c</span> <nocollapse></nocollapse>
<span class="hr big">d e</span> <nocollapse></nocollapse>
<span class="vl small">a b c</span> <nocollapse></nocollapse>
<span class="vl big">d e</span> <nocollapse></nocollapse>
<span class="hl small">p b c</span> <nocollapse></nocollapse>
<span class="hl big">p e</span> <nocollapse></nocollapse>
<span class="hr small">p b c</span> <nocollapse></nocollapse>
<span class="hr big">p e</span> <nocollapse></nocollapse>
<span class="vl small">p b c</span> <nocollapse></nocollapse>
<span class="vl big">p e</span> <nocollapse></nocollapse>
</div>
<div class="container vr_rtl">
<span class="vr small">a b c</span> <nocollapse></nocollapse>
<span class="vr big">d e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">a b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">d e</span> <nocollapse></nocollapse>
<span class="vr small">p b c</span> <nocollapse></nocollapse>
<span class="vr big">p e</span> <nocollapse></nocollapse>
<span class="vl_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vl_rtl big">p e</span> <nocollapse></nocollapse>
<span class="vr_rtl small">p b c</span><nocollapse></nocollapse>
<span class="vr_rtl big">p e</span> <nocollapse></nocollapse>
</div>
</body>

View file

@ -31,10 +31,6 @@
display: block;
background: lightgrey;
border: 2px solid black;
/* If browser supports it, signal the inline direction with border color: */
border-block-start-color: orange;
border-inline-start-color: lime;
margin: 11px 13px 17px 7px;
inline-size: 6px;
}
@ -53,36 +49,36 @@
<body>
<div class="container vl_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vl_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="hl small">a b c</span>
<span class="hl big">d e</span>
<span class="hr small">a b c</span>
<span class="hr big">d e</span>
<span class="vl small">a b c</span>
<span class="vl big">d e</span>
<span class="hl small">p b c</span>
<span class="hl big">p e</span>
<span class="hr small">p b c</span>
<span class="hr big">p e</span>
<span class="vl small">p b c</span>
<span class="vl big">p e</span>
</div>
<div class="container vr_rtl">
<span class="vr small">a b c</span>
<span class="vr big">d e</span>
<span class="vl_rtl small">a b c</span>
<span class="vl_rtl big">d e</span>
<span class="vr_rtl small">a b c</span>
<span class="vr_rtl big">d e</span>
<span class="vr small">p b c</span>
<span class="vr big">p e</span>
<span class="vl_rtl small">p b c</span>
<span class="vl_rtl big">p e</span>
<span class="vr_rtl small">p b c</span>
<span class="vr_rtl big">p e</span>
</div>
</body>

View file

@ -28,6 +28,9 @@ include conditional3/reftest.list
# Containment
include contain/reftest.list
# Counter Styles Level 3
include counter-styles-3/reftest.list
# Filter Effects Module
include filters/reftest.list

View file

@ -54,4 +54,14 @@ test(function() {
assert_equals(newDiv.ownerDocument, document);
assert_equals(newDiv.firstChild, null);
}, "False 'deep' argument.")
test(function() {
let doc = document.implementation.createHTMLDocument("Title");
doc.body.setAttributeNS("http://example.com/", "p:name", "value");
let originalAttr = doc.body.getAttributeNodeNS("http://example.com/", "name");
let imported = document.importNode(originalAttr, true);
assert_equals(imported.prefix, originalAttr.prefix);
assert_equals(imported.namespaceURI, originalAttr.namespaceURI);
assert_equals(imported.localName, originalAttr.localName);
}, "Import an Attr node with namespace/prefix correctly.");
</script>

View file

@ -32,13 +32,18 @@ function preflightTest(succeeds, withCredentials, allowMethod, allowHeader, useM
}, "CORS that " + (succeeds ? "succeeds" : "fails") + " with credentials: " + withCredentials + "; method: " + useMethod + " (allowed: " + allowMethod + "); header: " + useHeader + " (allowed: " + allowHeader + ")")
}
// "GET" does not pass the case-sensitive method check, but in the safe list.
preflightTest(true, false, "get", "x-test", "GET", ["X-Test", "1"])
// Headers check is case-insensitive, and "*" works as any for method.
preflightTest(true, false, "*", "x-test", "SUPER", ["X-Test", "1"])
// "*" works as any only without credentials.
preflightTest(true, false, "*", "*", "OK", ["X-Test", "1"])
preflightTest(false, true, "*", "*", "OK", ["X-Test", "1"])
preflightTest(false, true, "*", "", "PUT", [])
preflightTest(true, true, "PUT", "*", "PUT", [])
preflightTest(false, true, "put", "*", "PUT", [])
preflightTest(false, true, "get", "*", "GET", ["X-Test", "1"])
preflightTest(false, true, "*", "*", "GET", ["X-Test", "1"])
// Exact character match works even for "*" with credentials.
preflightTest(true, true, "*", "*", "*", ["*", "1"])
// "PUT" does not pass the case-sensitive method check, and not in the safe list.
preflightTest(false, true, "put", "*", "PUT", [])

View file

@ -24,7 +24,7 @@ interface StylePropertyMap : StylePropertyMapReadOnly {
void append(DOMString property, (CSSStyleValue or DOMString)... values);
void delete(DOMString property);
void set(DOMString property, (CSSStyleValue or DOMString)... values);
void update(DOMString property, UpdateFunction updateFunction);
void clear();
};
[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]

View file

@ -458,4 +458,102 @@ promise_test(() => {
}, 'Closing must be propagated forward: shutdown must not occur until the final write completes; preventClose = true');
promise_test(() => {
const rs = recordingReadableStream();
let resolveWriteCalled;
const writeCalledPromise = new Promise(resolve => {
resolveWriteCalled = resolve;
});
let resolveWritePromise;
const ws = recordingWritableStream({
write() {
resolveWriteCalled();
return new Promise(resolve => {
resolveWritePromise = resolve;
});
}
}, new CountQueuingStrategy({ highWaterMark: 2 }));
let pipeComplete = false;
const pipePromise = rs.pipeTo(ws).then(() => {
pipeComplete = true;
});
rs.controller.enqueue('a');
rs.controller.enqueue('b');
return writeCalledPromise.then(() => flushAsyncEvents()).then(() => {
assert_array_equals(ws.events, ['write', 'a'],
'the chunk must have been written, but close must not have happened yet');
assert_false(pipeComplete, 'the pipe should not complete while the first write is pending');
rs.controller.close();
resolveWritePromise();
}).then(() => flushAsyncEvents()).then(() => {
assert_array_equals(ws.events, ['write', 'a', 'write', 'b'],
'the second chunk must have been written, but close must not have happened yet');
assert_false(pipeComplete, 'the pipe should not complete while the second write is pending');
resolveWritePromise();
return pipePromise;
}).then(() => {
assert_array_equals(ws.events, ['write', 'a', 'write', 'b', 'close'],
'all chunks must have been written and close must have happened');
});
}, 'Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write');
promise_test(() => {
const rs = recordingReadableStream();
let resolveWriteCalled;
const writeCalledPromise = new Promise(resolve => {
resolveWriteCalled = resolve;
});
let resolveWritePromise;
const ws = recordingWritableStream({
write() {
resolveWriteCalled();
return new Promise(resolve => {
resolveWritePromise = resolve;
});
}
}, new CountQueuingStrategy({ highWaterMark: 2 }));
let pipeComplete = false;
const pipePromise = rs.pipeTo(ws, { preventClose: true }).then(() => {
pipeComplete = true;
});
rs.controller.enqueue('a');
rs.controller.enqueue('b');
return writeCalledPromise.then(() => flushAsyncEvents()).then(() => {
assert_array_equals(ws.events, ['write', 'a'],
'the chunk must have been written, but close must not have happened yet');
assert_false(pipeComplete, 'the pipe should not complete while the first write is pending');
rs.controller.close();
resolveWritePromise();
}).then(() => flushAsyncEvents()).then(() => {
assert_array_equals(ws.events, ['write', 'a', 'write', 'b'],
'the second chunk must have been written, but close must not have happened yet');
assert_false(pipeComplete, 'the pipe should not complete while the second write is pending');
resolveWritePromise();
return pipePromise;
}).then(() => flushAsyncEvents()).then(() => {
assert_array_equals(ws.events, ['write', 'a', 'write', 'b'],
'all chunks must have been written, but close must not have happened yet');
});
}, 'Closing must be propagated forward: shutdown must not occur until the final write completes; becomes closed after first write; preventClose = true');
done();

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