Update CSS tests to revision 0698c2aa9ead844b6d7d10eafb096cb1118e13ef

This commit is contained in:
Ms2ger 2015-12-09 01:48:05 -05:00
parent 9aa1b1e408
commit 35c74aecc2
11290 changed files with 92400 additions and 49214 deletions

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition height from 10px to 100px / values": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="offs-creen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -51,7 +51,7 @@
<script>
// make sure a transition is run between DOMContentLoaded and load
var isDOMContentLoaded = false;
window.addEventListener('DOMContentLoaded', function() {
isDOMContentLoaded = true;
@ -60,7 +60,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition height from 10px to 100px",
@ -91,12 +91,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -122,7 +122,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -140,7 +140,7 @@
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'container', ""));
// make sure we got the event for the tested property only
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'transition', addVendorPrefix(data.property) + ":" + duration));
test.step(function() {
assert_false(isDOMContentLoaded, "DOMContentLoaded may not have happened yet")
});
@ -153,4 +153,5 @@
</script>
<script src="/delay/?type=js&amp;delay=3000"></script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -43,7 +43,7 @@
</div>
</div>
<div id="offs-creen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -51,16 +51,16 @@
<script>
// make sure a transition is run between DOMContentLoaded and load
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var isLoad = false;
window.addEventListener('load', function() {
isLoad = true;
}, false);
window.addEventListener('DOMContentLoaded', function() {
var tests = [
{
@ -155,4 +155,5 @@
</script>
<img src="/delay/?type=gif&amp;delay=3000" alt="dummy image">
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -24,7 +24,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"changing transition-duration / values": {},
@ -64,7 +64,7 @@
'transition-duration': '0.1s'
},
expect: [
'padding-left:0.5s'
'padding-left:0.5s'
]
},
{
@ -77,7 +77,7 @@
'transition-property': 'margin-left'
},
expect: [
''
''
]
}
];
@ -102,7 +102,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions},
@ -129,7 +129,7 @@
generalParallelTest.getStyle(data);
// kick off the transition
generalParallelTest.startTransition(data);
setTimeout(function() {
data.transition.node.classList.add('then');
@ -151,4 +151,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition within detached container / values": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="off-screen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -54,7 +54,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition within detached container",
@ -85,12 +85,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -136,4 +136,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition:all, changing padding-left / events": {},
@ -51,21 +51,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// For the keyword all, or if one of the identifiers listed is a shorthand property, implementations must
// start transitions for any of its longhand sub-properties that are animatable (or, for all, all animatable
// For the keyword all, or if one of the identifiers listed is a shorthand property, implementations must
// start transitions for any of its longhand sub-properties that are animatable (or, for all, all animatable
// properties), using the duration, delay, and timing function at the index corresponding to the shorthand.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition:all, changing padding-left",
@ -73,7 +73,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "transition:all, changing padding",
@ -151,7 +151,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -172,7 +172,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -206,4 +206,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transitions:all, changing padding-left from nothing / events": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -54,7 +54,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transitions:all, changing padding-left from nothing",
@ -62,7 +62,7 @@
from: {}, // no padding === padding:0;
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "transitions:all, changing padding from nothing",
@ -77,7 +77,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -98,7 +98,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -132,4 +132,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"duration: 0.1s, delay: -0.05s / events": {},
@ -44,27 +44,27 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// If the value for 'transition-delay' is a negative time offset then the transition will execute the moment the property
// is changed, but will appear to have begun execution at the specified offset. That is, the transition will appear to
// begin part-way through its play cycle. In the case where a transition has implied starting values and a negative
// If the value for 'transition-delay' is a negative time offset then the transition will execute the moment the property
// is changed, but will appear to have begun execution at the specified offset. That is, the transition will appear to
// begin part-way through its play cycle. In the case where a transition has implied starting values and a negative
// 'transition-delay', the starting values are taken from the moment the property is changed.
// http://www.w3.org/TR/css3-transitions/#starting
// Define the combined duration of the transition as the sum of max(transition-duration, 0s) and transition-delay.
// When the combined duration is greater than 0s, then a transition starts based on the values of transition-duration,
// Define the combined duration of the transition as the sum of max(transition-duration, 0s) and transition-delay.
// When the combined duration is greater than 0s, then a transition starts based on the values of transition-duration,
// transition-delay, and transition-timing-function; in other cases transitions do not occur.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "duration: 0.1s, delay: -0.05s",
@ -72,7 +72,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "duration: 0.1s, delay: -0.1s",
@ -80,11 +80,11 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}
];
];
// general transition-duration
var duration = '0.5s';
@ -105,7 +105,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -139,4 +139,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"repeating lists / events": {},
@ -44,21 +44,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// In the case where the lists of values in transition properties do not have the same length, the length of the
// transition-property list determines the number of items in each list examined when starting transitions.
// In the case where the lists of values in transition properties do not have the same length, the length of the
// transition-property list determines the number of items in each list examined when starting transitions.
// The lists are matched up from the first value: excess values at the end are not used.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "repeating lists",
@ -91,7 +91,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -112,7 +112,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {}
@ -146,4 +146,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"property repetition / events": {},
@ -45,21 +45,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// If a property is specified multiple times in the value of transition-property (either on its own, via a shorthand that
// contains it, or via the all value), then the transition that starts uses the duration, delay, and timing function at
// If a property is specified multiple times in the value of transition-property (either on its own, via a shorthand that
// contains it, or via the all value), then the transition that starts uses the duration, delay, and timing function at
// the index corresponding to the last item in the value of transition-property that calls for animating that property.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "property repetition",
@ -67,7 +67,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}, {
name: "padding, padding-left",
@ -75,7 +75,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}, {
name: "padding-left, padding",
@ -83,11 +83,11 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}
];
// general transition-duration
var duration = '0.5s';
@ -108,7 +108,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -142,4 +142,5 @@
});
</script>
</body></html>

View file

@ -8,10 +8,10 @@
<link href="http://www.w3.org/TR/css3-content/" rel="help" title="CSS3 Generated and Replaced Content Module">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -27,7 +27,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition padding-left on :before / events": {},
@ -45,7 +45,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -53,11 +53,11 @@
<script>
// this is yet to be specified behavior
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition padding-left on :before",
@ -81,7 +81,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -131,4 +131,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -21,7 +21,7 @@
display: none;
}
</style>
<script id="metadata_cache">/*
{
"transition within display:none / values": {},
@ -39,7 +39,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -50,7 +50,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition within display:none",
@ -81,12 +81,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -130,4 +130,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -604,7 +604,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -614,7 +614,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -622,7 +622,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -643,7 +643,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -671,7 +671,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -697,4 +697,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"margin-bottom percentage(%) / values": {},
@ -69,11 +69,11 @@
<script>
// this suite tests property value types that haven't been specified
// (like <percentage> for margin-bottom)
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getMissingPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -81,10 +81,10 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
runParallelAsyncHarness({
// array of test data
tests: tests,
@ -102,7 +102,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -130,7 +130,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -156,4 +156,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"border-top-left-radius border-radius(px) / values": {},
@ -244,7 +244,7 @@
// see README.md for an explanation of how this test suite works
// this suite tests properties that haven't been specified at all
// (like background-image and column-rule-width)
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
@ -256,10 +256,10 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
runParallelAsyncHarness({
// array of test data
tests: tests,
@ -277,7 +277,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -305,7 +305,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -331,4 +331,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom " name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"margin-top auto(to) / values": {},
@ -190,4 +190,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom " name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-position length-em(em) / values": {},
@ -143,7 +143,7 @@
data.to['font-size'] = '30px';
// remove property from target style so it won't transition on its own
delete data.to[data.property];
var styles = {
'.fixture': {},
@ -204,4 +204,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom " name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -603,7 +603,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -611,13 +611,13 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -644,7 +644,7 @@
// applied to #transition
var inherited = extend({}, data.from);
inherited[data.property] = 'inherit';
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
@ -658,7 +658,7 @@
'.transition.to' : {},
'.transition.how' : {transition: addVendorPrefix(data.property) + ' ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -681,7 +681,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -707,4 +707,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom " name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -603,7 +603,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -611,14 +611,14 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// Note: Parent element doesn't transition, so above quote doesn't apply!
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -626,7 +626,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -645,7 +645,7 @@
// applied to #transition
var inherited = extend({}, data.from);
inherited[data.property] = 'inherit';
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
@ -682,7 +682,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -708,4 +708,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom " name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-position length-em(em) / values": {},
@ -101,7 +101,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -109,14 +109,14 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// Note: "indirectly" could mean "font-size" on parent, "em-based" on element
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getFontSizeRelativePropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -124,7 +124,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -146,12 +146,12 @@
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
'.container': from,
'.container.to': {'font-size': '30px'},
// transition font-size on parent
'.container.how': {transition: 'font-size ' + duration + ' linear 0s'},
'.transition': data.from,
'.transition.to' : {},
// transition font-size dependent property on child
@ -180,7 +180,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -206,4 +206,5 @@
});
</script>
</body></html>

View file

@ -8,10 +8,10 @@
<link href="http://www.w3.org/TR/css3-content/" rel="help" title="CSS3 Generated and Replaced Content Module">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -27,7 +27,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition padding-left on :before / values": {},
@ -47,7 +47,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -58,7 +58,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition padding-left on :before",
@ -90,7 +90,7 @@
to: {'padding-left': '10px', 'content': '"2"'}
}
];
// general transition-duration
var duration = '0.5s';
@ -106,7 +106,7 @@
// prepare individual test
setup: function(data, options) {
generalParallelTest.setup(data, options);
var styles = {};
styles['.fixture'] = {};
styles['.container'] = data.parentStyle;
@ -138,7 +138,7 @@
assert_not_equals(data.pseudo.from, data.pseudo.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.pseudo.computedStyle(data.property);
@ -155,4 +155,5 @@
});
</script>
</body></html>

View file

@ -14,7 +14,7 @@ var suite = root.generalParallelTest = {
data.fixture = document.getElementById('fixture').cloneNode(true);
data.fixture.id = 'test-' + (index++);
(document.getElementById('offscreen') || document.body).appendChild(data.fixture);
// data container for #fixture > .container > .transition
data.transition = {
node: data.fixture.querySelector('.transition'),
@ -34,7 +34,7 @@ var suite = root.generalParallelTest = {
return computedStyle(data.container.node, property);
}
};
// data container for #fixture > .container > .transition[:before | :after]
if (data.pseudo) {
data.pseudo = {
@ -92,13 +92,13 @@ var suite = root.generalParallelTest = {
if (!options.styles) {
options.styles = {};
}
Object.keys(styles).forEach(function(key) {
var selector = '#' + data.fixture.id
// fixture must become #fixture.fixture rather than a child selector
+ (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ key;
options.styles[selector] = styles[key];
});
},
@ -109,7 +109,7 @@ var suite = root.generalParallelTest = {
suite._getStyleFor(data, 'from');
// apply target state
suite._addClass(data, 'to', true);
// grab current styles: "target state"
// grab current styles: "target state"
suite._getStyleFor(data, 'to');
// remove target state
suite._removeClass(data, 'to', true);
@ -157,7 +157,7 @@ var suite = root.generalParallelTest = {
var raf = window.requestAnimationFrame || function(callback){
setTimeout(callback, 20);
};
// flag denoting if the runLoop should continue (true) or exit (false)
options._collectValues = true;
@ -166,19 +166,19 @@ var suite = root.generalParallelTest = {
// test's are done, stop annoying the CPU
return;
}
// collect current style for test's elements
options.tests.forEach(function(data) {
if (!data.property) {
return;
}
['transition', 'container', 'pseudo'].forEach(function(elem) {
var pseudo = null;
if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
return;
}
var current = data[elem].computedStyle(data.property);
var values = data[elem].values;
var length = values.length;
@ -187,11 +187,11 @@ var suite = root.generalParallelTest = {
}
});
});
// rinse and repeat
raf(runLoop);
}
runLoop();
},
// stop requestAnimationFrame runLoop collecting computed values
@ -222,7 +222,7 @@ var suite = root.generalParallelTest = {
assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
}
// TODO: first value must be initial, last value must be target
};
}

View file

@ -1,6 +1,6 @@
//
//
// Simple Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -17,7 +17,7 @@ root.setStyle = function(selector, styles) {
target.type = "text/css";
document.getElementsByTagName('head')[0].appendChild(target);
}
var data = [];
// single selector/styles
if (typeof selector === 'string' && styles !== undefined) {
@ -44,7 +44,7 @@ function serializeStyles(styles) {
data.push(prefixedProperty + ":" + styles[property] + ";");
}
}
return data.join('\n');
}

View file

@ -114,7 +114,7 @@ var values = {
data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
// A hunch, as from the spec:
// http://www.w3.org/TR/css3-transitions/#animatable-types
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
};
},
@ -171,39 +171,39 @@ var values = {
var properties = {
'background-color': ['color'],
'background-position': ['length', 'percentage'],
'border-top-width': ['length'],
'border-right-width': ['length'],
'border-bottom-width': ['length'],
'border-left-width': ['length'],
'border-top-color': ['color'],
'border-right-color': ['color'],
'border-bottom-color': ['color'],
'border-left-color': ['color'],
'padding-bottom': ['length'],
'padding-left': ['length'],
'padding-right': ['length'],
'padding-top': ['length'],
'margin-bottom': ['length'],
'margin-left': ['length'],
'margin-right': ['length'],
'margin-top': ['length'],
'height': ['length', 'percentage'],
'width': ['length', 'percentage'],
'min-height': ['length', 'percentage'],
'min-width': ['length', 'percentage'],
'max-height': ['length', 'percentage'],
'max-width': ['length', 'percentage'],
'top': ['length', 'percentage'],
'right': ['length', 'percentage'],
'bottom': ['length', 'percentage'],
'left': ['length', 'percentage'],
'color': ['color'],
'font-size': ['length', 'percentage'],
'font-weight': ['font-weight'],
@ -214,16 +214,16 @@ var properties = {
'word-spacing': ['length', 'percentage'],
'text-indent': ['length', 'percentage'],
'text-shadow': ['shadow'],
'outline-color': ['color'],
// outline-offset <integer> used to be an error in the spec
'outline-offset': ['length'],
'outline-width': ['length'],
'clip': ['rectangle'],
// Note: doesn't seem implemented anywhere
'crop': ['rectangle'],
'vertical-align': ['length', 'percentage'],
'opacity': ['number[0,1]'],
'visibility': ['visibility'],
@ -279,7 +279,7 @@ var unspecified_properties = {
'background-image': ['image'],
'background-size': ['background-size'],
// https://drafts.csswg.org/css3-background/#the-box-shadow
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
'box-shadow': ['box-shadow'],
'font-size-adjust': ['number'],
'font-stretch': ['font-stretch'],
@ -342,7 +342,7 @@ var parent_styles = {
// unspecified properties
'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
// inheritance tests
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
@ -375,7 +375,7 @@ function assemble(props) {
});
});
}
return tests;
}
@ -393,23 +393,23 @@ root.getUnspecifiedPropertyTests = function() {
root.getFontSizeRelativePropertyTests = function() {
var accepted = {};
for (var key in properties) {
if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
continue;
}
if (properties[key].indexOf('length') > -1) {
accepted[key] = ['length-em'];
}
}
return assemble(accepted);
};
root.getAutoPropertyTests = function() {
var accepted = {};
for (var i = 0, key; key = properties_auto[i]; i++) {
accepted[key] = ['auto'];
}
@ -420,17 +420,17 @@ root.getAutoPropertyTests = function() {
root.filterPropertyTests = function(tests, names) {
var allowed = {};
var accepted = [];
if (typeof names === "string") {
names = [names];
}
if (!(names instanceof RegExp)) {
names.forEach(function(name) {
allowed[name] = true;
});
}
tests.forEach(function(test) {
if (names instanceof RegExp) {
if (!test.name.match(names)) {
@ -439,11 +439,11 @@ root.filterPropertyTests = function(tests, names) {
} else if (!allowed[test.name]) {
return;
}
accepted.push(test);
});
return accepted;
};
})(window);
})(window);

View file

@ -13,13 +13,13 @@
{name: "name of test 2", custom: "data"},
// ...
],
// number of tests (tests, not test-cases!) to run concurrently
testsPerSlice: 100,
// time in milliseconds a test-run takes
duration: 1000,
// test-cases to run for for the test - there must be at least one
// each case creates its separate async_test() instance
cases: {
@ -33,17 +33,17 @@
},
// ...
}
// all callbacks are optional:
// invoked for individual test before it starts so you can setup the environment
// like DOM, CSS, adding event listeners and such
setup: function(data, options){},
// invoked after a test ended, so you can clean up the environment
// like DOM, CSS, removing event listeners and such
teardown: function(data, options){},
// invoked before a batch of tests ("slice") are run concurrently
// tests is an array of test data objects
sliceStart: function(options, tests)
@ -60,22 +60,22 @@ root.runParallelAsyncHarness = function(options) {
if (!options.cases) {
throw new Error("Options don't contain test cases!");
}
var noop = function(){};
// add a 100ms buffer to the test timeout, just in case
var duration = Math.ceil(options.duration + 100);
// names of individual tests
var cases = Object.keys(options.cases);
// run tests in a batch of slices
// primarily not to overload weak devices (tablets, phones, …)
// primarily not to overload weak devices (tablets, phones, …)
// with too many tests running simultaneously
var iteration = -1;
var testPerSlice = options.testsPerSlice || 100;
var slices = Math.ceil(options.tests.length / testPerSlice);
// initialize all async test cases
// Note: satisfying testharness.js needs to know all async tests before load-event
options.tests.forEach(function(data, index) {
@ -84,7 +84,7 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
});
});
function runLoop() {
iteration++;
if (iteration >= slices) {
@ -92,7 +92,7 @@ root.runParallelAsyncHarness = function(options) {
(options.done || noop)(options);
return;
}
// grab a slice of testss and initialize them
var offset = iteration * testPerSlice;
var tests = options.tests.slice(offset, offset + testPerSlice);
@ -100,10 +100,10 @@ root.runParallelAsyncHarness = function(options) {
(options.setup || noop)(data, options);
});
// kick off the current slice of tests
(options.sliceStart || noop)(options, tests);
// perform individual "start" test-case
tests.forEach(function(data) {
cases.forEach(function(name) {
@ -112,7 +112,7 @@ root.runParallelAsyncHarness = function(options) {
});
});
});
// conclude test (possibly abort)
setTimeout(function() {
tests.forEach(function(data) {
@ -129,17 +129,17 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name].done();
});
});
// finish the test for current slice of tests
(options.sliceDone || noop)(options, tests);
// next test please, give the browser 50ms to do catch its breath
setTimeout(runLoop, 50);
}, duration);
}
// allow DOMContentLoaded before actually doing something
setTimeout(runLoop, 100);
};
})(window);
})(window);

View file

@ -1,6 +1,6 @@
//
//
// Vendor-Prefix Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -21,7 +21,7 @@ root.addVendorPrefix = function (name) {
// property unknown to browser
return name;
}
return prefix + name;
};
@ -32,7 +32,7 @@ root.addValueVendorPrefix = function (property, value) {
// property unknown to browser
return name;
}
return prefix + value;
};
@ -41,7 +41,7 @@ root.getVendorPrefix = function(name) {
if (prefixCache[name] !== undefined) {
return prefixCache[name];
}
var elem = document.createElement("div");
name = camelCase(name);
@ -78,9 +78,9 @@ root.getValueVendorPrefix = function(property, value) {
return styles[i];
}
}
document.body.removeChild(elem);
document.body.removeChild(elem);
return false;
};
})(window);
})(window);

View file

@ -12,7 +12,7 @@
width: 100px;
height: 100px;
background-color: green;
transition-property: width;
transition-duration: 0;
}

View file

@ -14,7 +14,7 @@ var suite = root.generalParallelTest = {
data.fixture = document.getElementById('fixture').cloneNode(true);
data.fixture.id = 'test-' + (index++);
(document.getElementById('offscreen') || document.body).appendChild(data.fixture);
// data container for #fixture > .container > .transition
data.transition = {
node: data.fixture.querySelector('.transition'),
@ -34,7 +34,7 @@ var suite = root.generalParallelTest = {
return computedStyle(data.container.node, property);
}
};
// data container for #fixture > .container > .transition[:before | :after]
if (data.pseudo) {
data.pseudo = {
@ -92,13 +92,13 @@ var suite = root.generalParallelTest = {
if (!options.styles) {
options.styles = {};
}
Object.keys(styles).forEach(function(key) {
var selector = '#' + data.fixture.id
// fixture must become #fixture.fixture rather than a child selector
+ (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ key;
options.styles[selector] = styles[key];
});
},
@ -109,7 +109,7 @@ var suite = root.generalParallelTest = {
suite._getStyleFor(data, 'from');
// apply target state
suite._addClass(data, 'to', true);
// grab current styles: "target state"
// grab current styles: "target state"
suite._getStyleFor(data, 'to');
// remove target state
suite._removeClass(data, 'to', true);
@ -157,7 +157,7 @@ var suite = root.generalParallelTest = {
var raf = window.requestAnimationFrame || function(callback){
setTimeout(callback, 20);
};
// flag denoting if the runLoop should continue (true) or exit (false)
options._collectValues = true;
@ -166,19 +166,19 @@ var suite = root.generalParallelTest = {
// test's are done, stop annoying the CPU
return;
}
// collect current style for test's elements
options.tests.forEach(function(data) {
if (!data.property) {
return;
}
['transition', 'container', 'pseudo'].forEach(function(elem) {
var pseudo = null;
if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
return;
}
var current = data[elem].computedStyle(data.property);
var values = data[elem].values;
var length = values.length;
@ -187,11 +187,11 @@ var suite = root.generalParallelTest = {
}
});
});
// rinse and repeat
raf(runLoop);
}
runLoop();
},
// stop requestAnimationFrame runLoop collecting computed values
@ -222,7 +222,7 @@ var suite = root.generalParallelTest = {
assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
}
// TODO: first value must be initial, last value must be target
};
}

View file

@ -1,6 +1,6 @@
//
//
// Simple Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -17,7 +17,7 @@ root.setStyle = function(selector, styles) {
target.type = "text/css";
document.getElementsByTagName('head')[0].appendChild(target);
}
var data = [];
// single selector/styles
if (typeof selector === 'string' && styles !== undefined) {
@ -44,7 +44,7 @@ function serializeStyles(styles) {
data.push(prefixedProperty + ":" + styles[property] + ";");
}
}
return data.join('\n');
}

View file

@ -114,7 +114,7 @@ var values = {
data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
// A hunch, as from the spec:
// http://www.w3.org/TR/css3-transitions/#animatable-types
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
};
},
@ -171,39 +171,39 @@ var values = {
var properties = {
'background-color': ['color'],
'background-position': ['length', 'percentage'],
'border-top-width': ['length'],
'border-right-width': ['length'],
'border-bottom-width': ['length'],
'border-left-width': ['length'],
'border-top-color': ['color'],
'border-right-color': ['color'],
'border-bottom-color': ['color'],
'border-left-color': ['color'],
'padding-bottom': ['length'],
'padding-left': ['length'],
'padding-right': ['length'],
'padding-top': ['length'],
'margin-bottom': ['length'],
'margin-left': ['length'],
'margin-right': ['length'],
'margin-top': ['length'],
'height': ['length', 'percentage'],
'width': ['length', 'percentage'],
'min-height': ['length', 'percentage'],
'min-width': ['length', 'percentage'],
'max-height': ['length', 'percentage'],
'max-width': ['length', 'percentage'],
'top': ['length', 'percentage'],
'right': ['length', 'percentage'],
'bottom': ['length', 'percentage'],
'left': ['length', 'percentage'],
'color': ['color'],
'font-size': ['length', 'percentage'],
'font-weight': ['font-weight'],
@ -214,16 +214,16 @@ var properties = {
'word-spacing': ['length', 'percentage'],
'text-indent': ['length', 'percentage'],
'text-shadow': ['shadow'],
'outline-color': ['color'],
// outline-offset <integer> used to be an error in the spec
'outline-offset': ['length'],
'outline-width': ['length'],
'clip': ['rectangle'],
// Note: doesn't seem implemented anywhere
'crop': ['rectangle'],
'vertical-align': ['length', 'percentage'],
'opacity': ['number[0,1]'],
'visibility': ['visibility'],
@ -279,7 +279,7 @@ var unspecified_properties = {
'background-image': ['image'],
'background-size': ['background-size'],
// https://drafts.csswg.org/css3-background/#the-box-shadow
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
'box-shadow': ['box-shadow'],
'font-size-adjust': ['number'],
'font-stretch': ['font-stretch'],
@ -342,7 +342,7 @@ var parent_styles = {
// unspecified properties
'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
// inheritance tests
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
@ -375,7 +375,7 @@ function assemble(props) {
});
});
}
return tests;
}
@ -393,23 +393,23 @@ root.getUnspecifiedPropertyTests = function() {
root.getFontSizeRelativePropertyTests = function() {
var accepted = {};
for (var key in properties) {
if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
continue;
}
if (properties[key].indexOf('length') > -1) {
accepted[key] = ['length-em'];
}
}
return assemble(accepted);
};
root.getAutoPropertyTests = function() {
var accepted = {};
for (var i = 0, key; key = properties_auto[i]; i++) {
accepted[key] = ['auto'];
}
@ -420,17 +420,17 @@ root.getAutoPropertyTests = function() {
root.filterPropertyTests = function(tests, names) {
var allowed = {};
var accepted = [];
if (typeof names === "string") {
names = [names];
}
if (!(names instanceof RegExp)) {
names.forEach(function(name) {
allowed[name] = true;
});
}
tests.forEach(function(test) {
if (names instanceof RegExp) {
if (!test.name.match(names)) {
@ -439,11 +439,11 @@ root.filterPropertyTests = function(tests, names) {
} else if (!allowed[test.name]) {
return;
}
accepted.push(test);
});
return accepted;
};
})(window);
})(window);

View file

@ -13,13 +13,13 @@
{name: "name of test 2", custom: "data"},
// ...
],
// number of tests (tests, not test-cases!) to run concurrently
testsPerSlice: 100,
// time in milliseconds a test-run takes
duration: 1000,
// test-cases to run for for the test - there must be at least one
// each case creates its separate async_test() instance
cases: {
@ -33,17 +33,17 @@
},
// ...
}
// all callbacks are optional:
// invoked for individual test before it starts so you can setup the environment
// like DOM, CSS, adding event listeners and such
setup: function(data, options){},
// invoked after a test ended, so you can clean up the environment
// like DOM, CSS, removing event listeners and such
teardown: function(data, options){},
// invoked before a batch of tests ("slice") are run concurrently
// tests is an array of test data objects
sliceStart: function(options, tests)
@ -60,22 +60,22 @@ root.runParallelAsyncHarness = function(options) {
if (!options.cases) {
throw new Error("Options don't contain test cases!");
}
var noop = function(){};
// add a 100ms buffer to the test timeout, just in case
var duration = Math.ceil(options.duration + 100);
// names of individual tests
var cases = Object.keys(options.cases);
// run tests in a batch of slices
// primarily not to overload weak devices (tablets, phones, …)
// primarily not to overload weak devices (tablets, phones, …)
// with too many tests running simultaneously
var iteration = -1;
var testPerSlice = options.testsPerSlice || 100;
var slices = Math.ceil(options.tests.length / testPerSlice);
// initialize all async test cases
// Note: satisfying testharness.js needs to know all async tests before load-event
options.tests.forEach(function(data, index) {
@ -84,7 +84,7 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
});
});
function runLoop() {
iteration++;
if (iteration >= slices) {
@ -92,7 +92,7 @@ root.runParallelAsyncHarness = function(options) {
(options.done || noop)(options);
return;
}
// grab a slice of testss and initialize them
var offset = iteration * testPerSlice;
var tests = options.tests.slice(offset, offset + testPerSlice);
@ -100,10 +100,10 @@ root.runParallelAsyncHarness = function(options) {
(options.setup || noop)(data, options);
});
// kick off the current slice of tests
(options.sliceStart || noop)(options, tests);
// perform individual "start" test-case
tests.forEach(function(data) {
cases.forEach(function(name) {
@ -112,7 +112,7 @@ root.runParallelAsyncHarness = function(options) {
});
});
});
// conclude test (possibly abort)
setTimeout(function() {
tests.forEach(function(data) {
@ -129,17 +129,17 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name].done();
});
});
// finish the test for current slice of tests
(options.sliceDone || noop)(options, tests);
// next test please, give the browser 50ms to do catch its breath
setTimeout(runLoop, 50);
}, duration);
}
// allow DOMContentLoaded before actually doing something
setTimeout(runLoop, 100);
};
})(window);
})(window);

View file

@ -1,6 +1,6 @@
//
//
// Vendor-Prefix Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -21,7 +21,7 @@ root.addVendorPrefix = function (name) {
// property unknown to browser
return name;
}
return prefix + name;
};
@ -32,7 +32,7 @@ root.addValueVendorPrefix = function (property, value) {
// property unknown to browser
return name;
}
return prefix + value;
};
@ -41,7 +41,7 @@ root.getVendorPrefix = function(name) {
if (prefixCache[name] !== undefined) {
return prefixCache[name];
}
var elem = document.createElement("div");
name = camelCase(name);
@ -78,9 +78,9 @@ root.getValueVendorPrefix = function(property, value) {
return styles[i];
}
}
document.body.removeChild(elem);
document.body.removeChild(elem);
return false;
};
})(window);
})(window);

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-shorthand-property" rel="help" title="2.5. The 'transition' Shorthand Property">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '1s'": {},
@ -42,9 +42,9 @@
var transition = document.getElementById('transition');
var ease = 'cubic-bezier(0.25, 0.1, 0.25, 1)';
var easeIn = 'cubic-bezier(0.42, 0, 1, 1)';
// Note that order is important in this property. The first value that can be parsed as a time is assigned to
// the transition-duration. The second value that can be parsed as a time is assigned to transition-delay.
// [<transition-property> || <transition-duration> || <transition-timing-function> || <transition-delay> [, [<transition-property> || <transition-duration> || <transition-timing-function> || <transition-delay>]]*
// Note that order is important in this property. The first value that can be parsed as a time is assigned to
// the transition-duration. The second value that can be parsed as a time is assigned to transition-delay.
// [<transition-property> || <transition-duration> || <transition-timing-function> || <transition-delay> [, [<transition-property> || <transition-duration> || <transition-timing-function> || <transition-delay>]]*
var values = {
// [property, duration, timing, delay]
// random order
@ -61,7 +61,7 @@
'width ease-in 1s 2s' : ["width", "1s", easeIn, "2s"],
'width .1s ease-in .2s' : ["width", "0.1s", easeIn, "0.2s"]
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -78,4 +78,5 @@
}
</script>
</body></html>

View file

@ -7,13 +7,13 @@
<link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the <time> type and s, ms units">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '10.2s'": {},
@ -50,7 +50,7 @@
<script>
var transition = document.getElementById('transition');
// <time> [, <time>]*
// <time> [, <time>]*
var values = {
// seconds
'10.2s': '10.2s',
@ -79,13 +79,13 @@
// invalid
'foobar': '0s'
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
'foobar': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -103,4 +103,5 @@
}
</script>
</body></html>

View file

@ -7,13 +7,13 @@
<link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the <time> type and s, ms units">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '10.2s'": {},
@ -50,7 +50,7 @@
<script>
var transition = document.getElementById('transition');
// <time> [, <time>]*
// <time> [, <time>]*
var values = {
// seconds
'10.2s': '10.2s',
@ -78,7 +78,7 @@
// invalid
'foobar': '0s'
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
@ -86,7 +86,7 @@
'-500ms': true,
'foobar': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -104,4 +104,5 @@
}
</script>
</body></html>

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-property-property" rel="help" title="2.1. The 'transition-property' Property">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'none'": {},
@ -33,12 +33,12 @@
<script>
var transition = document.getElementById('transition');
// syntax: none | [ all | <IDENT> ] [ , [ all | <IDENT> ] ]*
// syntax: none | [ all | <IDENT> ] [ , [ all | <IDENT> ] ]*
var values = [
'none', 'all', 'width', 'all, width', 'width, all'
];
for (var i = 0, value; value = values[i]; i++) {
test(function() {
setStyle('#transition', {
@ -50,4 +50,5 @@
}
</script>
</body></html>

View file

@ -9,10 +9,10 @@
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'none, all'": {},
@ -35,18 +35,18 @@
<script>
var transition = document.getElementById('transition');
// syntax: none | [ all | <IDENT> ] [ , [ all | <IDENT> ] ]*
// syntax: none | [ all | <IDENT> ] [ , [ all | <IDENT> ] ]*
var values = {
'none, all' : 'none, all',
'all, none' : 'all, none',
'foobar' : 'foobar',
'all, foobar' : 'all, foobar',
'foobar, all' : 'foobar, all',
'inherit' : 'padding',
'none, all' : 'none, all',
'all, none' : 'all, none',
'foobar' : 'foobar',
'all, foobar' : 'all, foobar',
'foobar, all' : 'foobar, all',
'inherit' : 'padding',
'initial' : 'all'
};
for (var key in values) {
test(function() {
setStyle({
@ -59,4 +59,5 @@
}
</script>
</body></html>

View file

@ -15,7 +15,7 @@
width: 100px;
height: 100px;
background-color: green;
transition-property: width, foo; /* invalid foo */
transition-duration: 0, 5s;
}
@ -39,4 +39,5 @@
<div class="box"></div>
</div>
</body></html>

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property" rel="help" title="2.3. The 'transition-timing-function' Property">
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
<meta content="dom" name="flags">
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'ease'": {},
@ -77,7 +77,7 @@
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': defaultValue,
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': defaultValue
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
@ -90,7 +90,7 @@
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': true,
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -108,4 +108,5 @@
}
</script>
</body></html>

View file

@ -9,12 +9,12 @@
<link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns">
<style type="text/css">
html, body { margin: 0px; padding: 0px; }
.w50vw { width: 50vw; )
.h50vh { height: 50vh; }
.w50vm { width: 50vm; }
.h50vm { height: 50vm; }
</style>

View file

@ -3,72 +3,72 @@
# http://test.csswg.org/suites/css-transitions-1_dev/DATESTAMP/
# See http://wiki.csswg.org/test/implementation-report for instructions
testname revision result comment
html/before-domcontentloaded-001.htm dc6a4c776b388efba9fd47db12a144768506f023 ?
xhtml1/before-domcontentloaded-001.xht dc6a4c776b388efba9fd47db12a144768506f023 ?
html/before-load-001.htm d5b3b34be2c4b1f9f3a1c7aa4e6075bfefe44759 ?
xhtml1/before-load-001.xht d5b3b34be2c4b1f9f3a1c7aa4e6075bfefe44759 ?
html/changing-while-transition.htm b6a6a8a91287e467850887036d093a436b10fd2f ?
xhtml1/changing-while-transition.xht b6a6a8a91287e467850887036d093a436b10fd2f ?
html/before-domcontentloaded-001.htm 5c2342b85b3733b8033782a120900cd85fc18358 ?
xhtml1/before-domcontentloaded-001.xht 5c2342b85b3733b8033782a120900cd85fc18358 ?
html/before-load-001.htm ca9c84cdf8b6806ef604388b5545e1e21ceb8ff1 ?
xhtml1/before-load-001.xht ca9c84cdf8b6806ef604388b5545e1e21ceb8ff1 ?
html/changing-while-transition.htm 01e89225705d0ab69fc08e822e0bb6a4842c37eb ?
xhtml1/changing-while-transition.xht 01e89225705d0ab69fc08e822e0bb6a4842c37eb ?
html/currentcolor-animation-001.htm b2d9f4d2ca3203e12c5b88f775a2e36037a32853 ?
xhtml1/currentcolor-animation-001.xht b2d9f4d2ca3203e12c5b88f775a2e36037a32853 ?
html/detached-container-001.htm a3d88497a9b24a03b1dca4d61f15c7d6d13ce7e7 ?
xhtml1/detached-container-001.xht a3d88497a9b24a03b1dca4d61f15c7d6d13ce7e7 ?
html/events-001.htm 85bb8e52fa33b7b51b7bc2c2123780bbe582c466 ?
xhtml1/events-001.xht 85bb8e52fa33b7b51b7bc2c2123780bbe582c466 ?
html/events-002.htm 65434ed9bff244a3c9bffc7ba163ec975e4bbfa6 ?
xhtml1/events-002.xht 65434ed9bff244a3c9bffc7ba163ec975e4bbfa6 ?
html/events-003.htm f5077551411af03ce1b4dbee0728ed833d23b889 ?
xhtml1/events-003.xht f5077551411af03ce1b4dbee0728ed833d23b889 ?
html/events-004.htm 92faab884a109828f5afbeeb3b913536a3418b9b ?
xhtml1/events-004.xht 92faab884a109828f5afbeeb3b913536a3418b9b ?
html/events-005.htm 50a9e339280106876cad63ad72e09526d926b464 ?
xhtml1/events-005.xht 50a9e339280106876cad63ad72e09526d926b464 ?
html/events-006.htm 8f08a369570e84a89e5aa2c51b27fe7a7cd5628a ?
xhtml1/events-006.xht 8f08a369570e84a89e5aa2c51b27fe7a7cd5628a ?
html/detached-container-001.htm 130e884c27160947822631e90ada74d5648a3374 ?
xhtml1/detached-container-001.xht 130e884c27160947822631e90ada74d5648a3374 ?
html/events-001.htm d0da44ae55f7d3ac21035c86838ca32d7c3f0feb ?
xhtml1/events-001.xht d0da44ae55f7d3ac21035c86838ca32d7c3f0feb ?
html/events-002.htm 40e0235e69d2688326ba0fb5fd053edd2fe0d5ef ?
xhtml1/events-002.xht 40e0235e69d2688326ba0fb5fd053edd2fe0d5ef ?
html/events-003.htm 3ea25eadfa25a0fc10a4941c79e41be5fd83089b ?
xhtml1/events-003.xht 3ea25eadfa25a0fc10a4941c79e41be5fd83089b ?
html/events-004.htm f532b8d61c4f82ff73581d62231d95c6ca45a768 ?
xhtml1/events-004.xht f532b8d61c4f82ff73581d62231d95c6ca45a768 ?
html/events-005.htm c079179b97a622453af12d827e9905e8f13ee4dc ?
xhtml1/events-005.xht c079179b97a622453af12d827e9905e8f13ee4dc ?
html/events-006.htm 5a718f298624ae20c9f8cf69c0dad0a3f7bdb34d ?
xhtml1/events-006.xht 5a718f298624ae20c9f8cf69c0dad0a3f7bdb34d ?
html/events-007.htm 669e841ed69c829aa5d3e5e6109adfedc60a5555 ?
xhtml1/events-007.xht 669e841ed69c829aa5d3e5e6109adfedc60a5555 ?
html/hidden-container-001.htm e689df42d8bf76ca1c5ec9e9e49bfabd1852988d ?
xhtml1/hidden-container-001.xht e689df42d8bf76ca1c5ec9e9e49bfabd1852988d ?
html/properties-value-001.htm 2f30f4afd96d5bcc15f2a673f732a7db32551344 ?
xhtml1/properties-value-001.xht 2f30f4afd96d5bcc15f2a673f732a7db32551344 ?
html/properties-value-002.htm df72d839c83c0f27c51f3a0da0e665440455a4f7 ?
xhtml1/properties-value-002.xht df72d839c83c0f27c51f3a0da0e665440455a4f7 ?
html/properties-value-003.htm 487a42a7c32ffa0076ac36fdc77c9e67455a3c78 ?
xhtml1/properties-value-003.xht 487a42a7c32ffa0076ac36fdc77c9e67455a3c78 ?
html/properties-value-auto-001.htm cb7b5d82a93a1fd77ff732dbe65dd42f086a4518 ?
xhtml1/properties-value-auto-001.xht cb7b5d82a93a1fd77ff732dbe65dd42f086a4518 ?
html/properties-value-implicit-001.htm 65e0893b080022f2fe0541790c80ad997f861d36 ?
xhtml1/properties-value-implicit-001.xht 65e0893b080022f2fe0541790c80ad997f861d36 ?
html/properties-value-inherit-001.htm 6f5152c30fe5e453d3acedf158436770badfd2ed ?
xhtml1/properties-value-inherit-001.xht 6f5152c30fe5e453d3acedf158436770badfd2ed ?
html/properties-value-inherit-002.htm 0f3bc2199461abf362b8d63ffc41853d700116f0 ?
xhtml1/properties-value-inherit-002.xht 0f3bc2199461abf362b8d63ffc41853d700116f0 ?
html/properties-value-inherit-003.htm d8625e917d176251983385c5bda09a1d5af40727 ?
xhtml1/properties-value-inherit-003.xht d8625e917d176251983385c5bda09a1d5af40727 ?
html/pseudo-elements-001.htm 2e680348ce4298026d6dfdcc70f26e24fe534ff7 ?
xhtml1/pseudo-elements-001.xht 2e680348ce4298026d6dfdcc70f26e24fe534ff7 ?
html/transition-001.htm 540d5e7c53057c604f417901b61bd9c4794fd7d1 ?
xhtml1/transition-001.xht 540d5e7c53057c604f417901b61bd9c4794fd7d1 ?
html/hidden-container-001.htm 79a1c22117c5a3689be68f20935f6c40c77d134f ?
xhtml1/hidden-container-001.xht 79a1c22117c5a3689be68f20935f6c40c77d134f ?
html/properties-value-001.htm c1c6c7b065c825180bb029e69ea3193dd8a830e1 ?
xhtml1/properties-value-001.xht c1c6c7b065c825180bb029e69ea3193dd8a830e1 ?
html/properties-value-002.htm 316f2e62890cdfd312cabd2473f809b96f1b1a16 ?
xhtml1/properties-value-002.xht 316f2e62890cdfd312cabd2473f809b96f1b1a16 ?
html/properties-value-003.htm 90fa8ec599a6b3d784f496d603503fabc1f8875a ?
xhtml1/properties-value-003.xht 90fa8ec599a6b3d784f496d603503fabc1f8875a ?
html/properties-value-auto-001.htm c626cba44e30b69da811b309962f76b34a4ab10c ?
xhtml1/properties-value-auto-001.xht c626cba44e30b69da811b309962f76b34a4ab10c ?
html/properties-value-implicit-001.htm 6253b1ffe15f710115d7c0f8a668236e8f2e09d1 ?
xhtml1/properties-value-implicit-001.xht 6253b1ffe15f710115d7c0f8a668236e8f2e09d1 ?
html/properties-value-inherit-001.htm b30969c78647c53cda14b3323ec7a7340e296d27 ?
xhtml1/properties-value-inherit-001.xht b30969c78647c53cda14b3323ec7a7340e296d27 ?
html/properties-value-inherit-002.htm 74b70c8f8dddfd4b5e302ee3e24b3c2fce911c54 ?
xhtml1/properties-value-inherit-002.xht 74b70c8f8dddfd4b5e302ee3e24b3c2fce911c54 ?
html/properties-value-inherit-003.htm ec466cbcc34aa2904748904eb7aad984d2d9fb86 ?
xhtml1/properties-value-inherit-003.xht ec466cbcc34aa2904748904eb7aad984d2d9fb86 ?
html/pseudo-elements-001.htm 7a553d04496995f738951c9c8797ba427cec447b ?
xhtml1/pseudo-elements-001.xht 7a553d04496995f738951c9c8797ba427cec447b ?
html/transition-001.htm fc3904faf668533e53f659d10b08707ca81c738d ?
xhtml1/transition-001.xht fc3904faf668533e53f659d10b08707ca81c738d ?
html/transition-delay-000.htm 7b5fc6fe20c69c70c483b243af34961f35d1aeb4 ?
xhtml1/transition-delay-000.xht 7b5fc6fe20c69c70c483b243af34961f35d1aeb4 ?
html/transition-delay-001.htm 936ec60d74c61f54ba71930eafbd8db9c5e84e82 ?
xhtml1/transition-delay-001.xht 936ec60d74c61f54ba71930eafbd8db9c5e84e82 ?
html/transition-delay-001.htm 8cbc19fba44529b813cccb3718c89823f0ce9e6b ?
xhtml1/transition-delay-001.xht 8cbc19fba44529b813cccb3718c89823f0ce9e6b ?
html/transition-delay-002.htm f60f0f4ee71e8d3a56c9bbcce245d58660548224 ?
xhtml1/transition-delay-002.xht f60f0f4ee71e8d3a56c9bbcce245d58660548224 ?
html/transition-delay-003.htm ee1d6d64cc4d258093044bd336634da3acbee8b6 ?
xhtml1/transition-delay-003.xht ee1d6d64cc4d258093044bd336634da3acbee8b6 ?
html/transition-duration-001.htm 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 ?
xhtml1/transition-duration-001.xht 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 ?
html/transition-duration-001.htm 0c969d8d8f97eee173b54378f197142369f0a12c ?
xhtml1/transition-duration-001.xht 0c969d8d8f97eee173b54378f197142369f0a12c ?
html/transition-duration-002.htm 99f1e4f02320754bc9641370035e395f9e0f32b2 ?
xhtml1/transition-duration-002.xht 99f1e4f02320754bc9641370035e395f9e0f32b2 ?
html/transition-duration-003.htm 540581742c49395a9a0409feec7e84910d879243 ?
xhtml1/transition-duration-003.xht 540581742c49395a9a0409feec7e84910d879243 ?
html/transition-duration-004.htm b5638a3af904c46a173c77ac3775e217ca22ef45 ?
xhtml1/transition-duration-004.xht b5638a3af904c46a173c77ac3775e217ca22ef45 ?
html/transition-property-001.htm 5a539dc7107854b9c97d19bad7131d33c6f0c530 ?
xhtml1/transition-property-001.xht 5a539dc7107854b9c97d19bad7131d33c6f0c530 ?
html/transition-property-002.htm 5d3ea7c4adbd9b5c304468e41532c051da7b9bf6 ?
xhtml1/transition-property-002.xht 5d3ea7c4adbd9b5c304468e41532c051da7b9bf6 ?
html/transition-property-001.htm a63756638f94c4fb3552ab915c3eff1e16f1f038 ?
xhtml1/transition-property-001.xht a63756638f94c4fb3552ab915c3eff1e16f1f038 ?
html/transition-property-002.htm 753c8388314cc6fd159f9384814e99e39130e53c ?
xhtml1/transition-property-002.xht 753c8388314cc6fd159f9384814e99e39130e53c ?
html/transition-property-003.htm ade717dde13d637f6d55033c5d04f29a9edecf1f ?
xhtml1/transition-property-003.xht ade717dde13d637f6d55033c5d04f29a9edecf1f ?
html/transition-property-004.htm 9556c59b1f6293b160be0e399b8d6a3db994cb40 ?
@ -155,10 +155,10 @@ html/transition-property-044.htm 9d08a23150c8afe0612a67ab48b9b5c794fdde48 ?
xhtml1/transition-property-044.xht 9d08a23150c8afe0612a67ab48b9b5c794fdde48 ?
html/transition-property-045.htm 97fca96e045f2b173a058bd0bd8f4b43a5aeb0c6 ?
xhtml1/transition-property-045.xht 97fca96e045f2b173a058bd0bd8f4b43a5aeb0c6 ?
html/transition-test.htm 69ede626fef9d3c82dd63712d8a9fa51f90e0fe0 ?
xhtml1/transition-test.xht 69ede626fef9d3c82dd63712d8a9fa51f90e0fe0 ?
html/transition-timing-function-001.htm fdb47bdbeb22e4cf767543b0306c7fea612d0d84 ?
xhtml1/transition-timing-function-001.xht fdb47bdbeb22e4cf767543b0306c7fea612d0d84 ?
html/transition-test.htm 1d7d701b6ca35d00e1f4a1962f636c61e45bac6b ?
xhtml1/transition-test.xht 1d7d701b6ca35d00e1f4a1962f636c61e45bac6b ?
html/transition-timing-function-001.htm 30a144d6b678cf02e2143d42a8483af60af72d79 ?
xhtml1/transition-timing-function-001.xht 30a144d6b678cf02e2143d42a8483af60af72d79 ?
html/transition-timing-function-002.htm 70cde45e58d25dac817c480c333547e64e1d3130 ?
xhtml1/transition-timing-function-002.xht 70cde45e58d25dac817c480c333547e64e1d3130 ?
html/transition-timing-function-003.htm c8efb42a48251c36280c78246d17b8df0abec3d8 ?
@ -183,5 +183,5 @@ html/transition-timing-function-012.htm 697cf308e981930a115204bf380fd144f66db582
xhtml1/transition-timing-function-012.xht 697cf308e981930a115204bf380fd144f66db582 ?
html/transition-timing-function-013.htm 878150531efe65abd6a8d1dddebc1e104de49fbf ?
xhtml1/transition-timing-function-013.xht 878150531efe65abd6a8d1dddebc1e104de49fbf ?
html/transitions-animatable-properties-01.htm 8556b336916af660b223d89c3bf3c2abe869912b ?
xhtml1/transitions-animatable-properties-01.xht 8556b336916af660b223d89c3bf3c2abe869912b ?
html/transitions-animatable-properties-01.htm b5d0d04ef8d8104e07474f75b2a74beca1f1cdb1 ?
xhtml1/transitions-animatable-properties-01.xht b5d0d04ef8d8104e07474f75b2a74beca1f1cdb1 ?

View file

@ -1,37 +1,37 @@
id references title flags links revision credits assertion
before-DOMContentLoaded-001 Transitioning before DOMContentLoaded event dom,script http://www.w3.org/TR/css3-transitions/#transition-events dc6a4c776b388efba9fd47db12a144768506f023 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run even before the document has left parsing mode
before-load-001 Transitioning before load event dom,script http://www.w3.org/TR/css3-transitions/#transition-events d5b3b34be2c4b1f9f3a1c7aa4e6075bfefe44759 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run even before all assets are loaded
changing-while-transition behavior when transition parameters change while transitioning dom,script http://www.w3.org/TR/css3-transitions/#starting b6a6a8a91287e467850887036d093a436b10fd2f `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitions run properly when property or duration is changed mid-run
before-DOMContentLoaded-001 Transitioning before DOMContentLoaded event dom,script http://www.w3.org/TR/css3-transitions/#transition-events 5c2342b85b3733b8033782a120900cd85fc18358 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run even before the document has left parsing mode
before-load-001 Transitioning before load event dom,script http://www.w3.org/TR/css3-transitions/#transition-events ca9c84cdf8b6806ef604388b5545e1e21ceb8ff1 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run even before all assets are loaded
changing-while-transition behavior when transition parameters change while transitioning dom,script http://www.w3.org/TR/css3-transitions/#starting 01e89225705d0ab69fc08e822e0bb6a4842c37eb `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitions run properly when property or duration is changed mid-run
currentcolor-animation-001 CSS Variables Allowed Syntax script http://www.w3.org/TR/css3-transitions/#animatable-types b2d9f4d2ca3203e12c5b88f775a2e36037a32853 `L. David Baron`<http://dbaron.org/>,`Mozilla Corporation`<http://mozilla.com/>
detached-container-001 Not Transitioning within detached element dom,script http://www.w3.org/TR/css3-transitions/#transitions a3d88497a9b24a03b1dca4d61f15c7d6d13ce7e7 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are NOT run within detached elements
events-001 transitionend event for shorthand property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/css3-transitions/#transition-events 85bb8e52fa33b7b51b7bc2c2123780bbe582c466 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitionend events are triggered for shorthand property
events-002 transitionend event for implied property value dom,script http://www.w3.org/TR/css3-transitions/#transition-events 65434ed9bff244a3c9bffc7ba163ec975e4bbfa6 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitionend events are triggered for implied property value
events-003 transitionend event with negative delay dom,script http://www.w3.org/TR/css3-transitions/#transition-delay-property,http://www.w3.org/TR/css3-transitions/#transition-events f5077551411af03ce1b4dbee0728ed833d23b889 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitionend event is triggered for duration time being canceled out by negative delay
events-004 transitionend event with non matching lists dom,script http://www.w3.org/TR/css3-transitions/#list-matching,http://www.w3.org/TR/css3-transitions/#transition-events 92faab884a109828f5afbeeb3b913536a3418b9b `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that non-matching lists are properly resolved
events-005 transitionend event with property specificity dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/css3-transitions/#transition-events 50a9e339280106876cad63ad72e09526d926b464 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that property specificity is properly resolved
events-006 transitionend event for pseudo elements dom,script http://www.w3.org/TR/css3-transitions/#transition-events,http://www.w3.org/TR/CSS21/generate.html#before-after-content,http://www.w3.org/TR/css3-content/ 8f08a369570e84a89e5aa2c51b27fe7a7cd5628a `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that TransitionEnd events are fired for pseudo-elements
detached-container-001 Not Transitioning within detached element dom,script http://www.w3.org/TR/css3-transitions/#transitions 130e884c27160947822631e90ada74d5648a3374 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are NOT run within detached elements
events-001 transitionend event for shorthand property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/css3-transitions/#transition-events d0da44ae55f7d3ac21035c86838ca32d7c3f0feb `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitionend events are triggered for shorthand property
events-002 transitionend event for implied property value dom,script http://www.w3.org/TR/css3-transitions/#transition-events 40e0235e69d2688326ba0fb5fd053edd2fe0d5ef `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that all transitionend events are triggered for implied property value
events-003 transitionend event with negative delay dom,script http://www.w3.org/TR/css3-transitions/#transition-delay-property,http://www.w3.org/TR/css3-transitions/#transition-events 3ea25eadfa25a0fc10a4941c79e41be5fd83089b `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitionend event is triggered for duration time being canceled out by negative delay
events-004 transitionend event with non matching lists dom,script http://www.w3.org/TR/css3-transitions/#list-matching,http://www.w3.org/TR/css3-transitions/#transition-events f532b8d61c4f82ff73581d62231d95c6ca45a768 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that non-matching lists are properly resolved
events-005 transitionend event with property specificity dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/css3-transitions/#transition-events c079179b97a622453af12d827e9905e8f13ee4dc `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that property specificity is properly resolved
events-006 transitionend event for pseudo elements dom,script http://www.w3.org/TR/css3-transitions/#transition-events,http://www.w3.org/TR/CSS21/generate.html#before-after-content,http://www.w3.org/TR/css3-content/ 5a718f298624ae20c9f8cf69c0dad0a3f7bdb34d `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that TransitionEnd events are fired for pseudo-elements
events-007 no transitionend event after display:none dom,script http://www.w3.org/TR/css3-transitions/#transition-events,https://lists.w3.org/Archives/Public/www-style/2015Apr/0405.html 669e841ed69c829aa5d3e5e6109adfedc60a5555 `Chris Rebert`<http://chrisrebert.com> Making an element display:none; while it has a transition in progress should prevent a transitionend event from getting fired.
hidden-container-001 Not Transitioning within hidden element dom,script http://www.w3.org/TR/css3-transitions/#transitions e689df42d8bf76ca1c5ec9e9e49bfabd1852988d `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are NOT run within hidden elements
properties-value-001 Intermediate Property Values dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css 2f30f4afd96d5bcc15f2a673f732a7db32551344 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that value ranges between start and end while transitioning
properties-value-002 Intermediate Property Values of missing value types dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css df72d839c83c0f27c51f3a0da0e665440455a4f7 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that expected value types that haven't been specified are transitionable
properties-value-003 Intermediate Property Values of unspecified properties dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css 487a42a7c32ffa0076ac36fdc77c9e67455a3c78 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that properties are transitionable that haven't been specified
properties-value-auto-001 transitioning property value "auto" dom,script http://www.w3.org/TR/css3-transitions/#transitions cb7b5d82a93a1fd77ff732dbe65dd42f086a4518 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that properties are transitioned from an to auto-value
properties-value-implicit-001 font-size-relative properties transition by implicit value change dom,script http://www.w3.org/TR/css3-transitions/#transitions 65e0893b080022f2fe0541790c80ad997f861d36 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that font-size-relative properties (all em-lengths) run a transition when font-size is changed
properties-value-inherit-001 transitioning inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting 6f5152c30fe5e453d3acedf158436770badfd2ed `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that inherited property values that are transitioned on a parent element don't start a transition
properties-value-inherit-002 transitioning inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting 0f3bc2199461abf362b8d63ffc41853d700116f0 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that inherited property values that are not transitioned on a parent element start a transition
properties-value-inherit-003 transitioning implicitly inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting d8625e917d176251983385c5bda09a1d5af40727 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that implicitly inherited property values that are transitioned on a parent element don't start a transition
pseudo-elements-001 Transitioning Pseudo Elements dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/CSS21/generate.html#before-after-content,http://www.w3.org/TR/css3-content/ 2e680348ce4298026d6dfdcc70f26e24fe534ff7 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run on pseudo elements
transition-001 Parsing transition shorthand dom,script http://www.w3.org/TR/css3-transitions/#transition-shorthand-property 540d5e7c53057c604f417901b61bd9c4794fd7d1 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition shorthand values are parsed properly
hidden-container-001 Not Transitioning within hidden element dom,script http://www.w3.org/TR/css3-transitions/#transitions 79a1c22117c5a3689be68f20935f6c40c77d134f `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are NOT run within hidden elements
properties-value-001 Intermediate Property Values dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css c1c6c7b065c825180bb029e69ea3193dd8a830e1 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that value ranges between start and end while transitioning
properties-value-002 Intermediate Property Values of missing value types dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css 316f2e62890cdfd312cabd2473f809b96f1b1a16 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that expected value types that haven't been specified are transitionable
properties-value-003 Intermediate Property Values of unspecified properties dom,script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-css 90fa8ec599a6b3d784f496d603503fabc1f8875a `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that properties are transitionable that haven't been specified
properties-value-auto-001 transitioning property value "auto" dom,script http://www.w3.org/TR/css3-transitions/#transitions c626cba44e30b69da811b309962f76b34a4ab10c `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that properties are transitioned from an to auto-value
properties-value-implicit-001 font-size-relative properties transition by implicit value change dom,script http://www.w3.org/TR/css3-transitions/#transitions 6253b1ffe15f710115d7c0f8a668236e8f2e09d1 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that font-size-relative properties (all em-lengths) run a transition when font-size is changed
properties-value-inherit-001 transitioning inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting b30969c78647c53cda14b3323ec7a7340e296d27 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that inherited property values that are transitioned on a parent element don't start a transition
properties-value-inherit-002 transitioning inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting 74b70c8f8dddfd4b5e302ee3e24b3c2fce911c54 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that inherited property values that are not transitioned on a parent element start a transition
properties-value-inherit-003 transitioning implicitly inherited property values dom,script http://www.w3.org/TR/css3-transitions/#starting ec466cbcc34aa2904748904eb7aad984d2d9fb86 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that implicitly inherited property values that are transitioned on a parent element don't start a transition
pseudo-elements-001 Transitioning Pseudo Elements dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property,http://www.w3.org/TR/CSS21/generate.html#before-after-content,http://www.w3.org/TR/css3-content/ 7a553d04496995f738951c9c8797ba427cec447b `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transitions are run on pseudo elements
transition-001 Parsing transition shorthand dom,script http://www.w3.org/TR/css3-transitions/#transition-shorthand-property fc3904faf668533e53f659d10b08707ca81c738d `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition shorthand values are parsed properly
transition-delay-000 transition-delay - positive number interact http://www.w3.org/TR/css3-transitions/#transition-delay-property 7b5fc6fe20c69c70c483b243af34961f35d1aeb4 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-delay' property set positive number to delay the execution of transition
transition-delay-001 Parsing transition-delay dom,script http://www.w3.org/TR/css3-transitions/#transition-delay-property,http://www.w3.org/TR/css3-values/#time 936ec60d74c61f54ba71930eafbd8db9c5e84e82 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-delay values are parsed properly
transition-delay-001 Parsing transition-delay dom,script http://www.w3.org/TR/css3-transitions/#transition-delay-property,http://www.w3.org/TR/css3-values/#time 8cbc19fba44529b813cccb3718c89823f0ce9e6b `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-delay values are parsed properly
transition-delay-002 transition-delay - 0s interact http://www.w3.org/TR/css3-transitions/#transition-delay-property f60f0f4ee71e8d3a56c9bbcce245d58660548224 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'transition-delay' property set 0 will not delay the execution of transition
transition-delay-003 transition-delay - negative number interact http://www.w3.org/TR/css3-transitions/#transition-delay-property ee1d6d64cc4d258093044bd336634da3acbee8b6 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'transition-delay' property set negative number will not delay the execution of transition
transition-duration-001 Parsing transition-duration dom,script http://www.w3.org/TR/css3-transitions/#transition-duration-property,http://www.w3.org/TR/css3-values/#time 663439e329a5e15084fda9eb5be1ac7d2e0dc5f7 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-duration values are parsed properly
transition-duration-001 Parsing transition-duration dom,script http://www.w3.org/TR/css3-transitions/#transition-duration-property,http://www.w3.org/TR/css3-values/#time 0c969d8d8f97eee173b54378f197142369f0a12c `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-duration values are parsed properly
transition-duration-002 transition-duration - positive number interact http://www.w3.org/TR/css3-transitions/#transition-duration-property 99f1e4f02320754bc9641370035e395f9e0f32b2 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-duration' property set positive number specifies the time that transition from the old value to the new value should take.
transition-duration-003 transition-duration - 0s(initial value) interact http://www.w3.org/TR/css3-transitions/#transition-duration-property 540581742c49395a9a0409feec7e84910d879243 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the initial value of 'transition-duration' property is '0s' which means the transition is immediate.
transition-duration-004 transition-duration - negative number interact http://www.w3.org/TR/css3-transitions/#transition-duration-property b5638a3af904c46a173c77ac3775e217ca22ef45 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> A negative value for 'transition-duration renders the declaration invalid which means the transition is immediate.
transition-property-001 Parsing transition-property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property 5a539dc7107854b9c97d19bad7131d33c6f0c530 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-property values are parsed properly
transition-property-002 Parsing invalid transition-property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property 5d3ea7c4adbd9b5c304468e41532c051da7b9bf6 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that unrecognized or non-animatable properties must be kept in the list to preserve the matching of indices.
transition-property-001 Parsing transition-property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property a63756638f94c4fb3552ab915c3eff1e16f1f038 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-property values are parsed properly
transition-property-002 Parsing invalid transition-property dom,script http://www.w3.org/TR/css3-transitions/#transition-property-property 753c8388314cc6fd159f9384814e99e39130e53c `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that unrecognized or non-animatable properties must be kept in the list to preserve the matching of indices.
transition-property-003 transition-property - none interact http://www.w3.org/TR/css3-transitions/#transition-property-property ade717dde13d637f6d55033c5d04f29a9edecf1f `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-duration' property set 'none' means that no property will be transitioned.
transition-property-004 transition-property - all interact http://www.w3.org/TR/css3-transitions/#transition-property-property 9556c59b1f6293b160be0e399b8d6a3db994cb40 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-duration' property set 'all' means that all properties are transitioned.
transition-property-005 transition-property - height width(more than one properties specified) interact http://www.w3.org/TR/css3-transitions/#transition-property-property e1b4da4dd9d3dfbfe8386c8c262bda320b02e467 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-duration' property set more than one properties like 'height, width' means only the specified properties will be transitioned.
@ -75,8 +75,8 @@ transition-property-042 transition-property - vertical-align interact http://ww
transition-property-043 transition-property - visibility interact http://www.w3.org/TR/css3-transitions/#animatable-css 8bfd790a422cdfcc284dadf68574d9821ec1edaa `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'visibility' property is animatable.
transition-property-044 transition-property - word-spacing ahem,interact http://www.w3.org/TR/css3-transitions/#animatable-css 9d08a23150c8afe0612a67ab48b9b5c794fdde48 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'word-spacing' property is animatable.
transition-property-045 transition-property - z-index ahem,interact http://www.w3.org/TR/css3-transitions/#animatable-css 97fca96e045f2b173a058bd0bd8f4b43a5aeb0c6 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'z-index' property is animatable.
transition-test reference/transition-test-ref invalid values cause all properites to animate. http://www.w3.org/TR/css3-transitions/#transition-property-property 69ede626fef9d3c82dd63712d8a9fa51f90e0fe0 `Oleg Janeiko`<mailto:oleg@the-incredible.me> When an invalid value is specified as one of the transition properties, it causes the the transition-property to change to 'all'. Instead of leaving the invalid property in and animating the valid properites with matching durations.
transition-timing-function-001 Parsing transition-timing-function dom,script http://www.w3.org/TR/css3-transitions/#transition-timing-function-property fdb47bdbeb22e4cf767543b0306c7fea612d0d84 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-timing-function values are parsed properly
transition-test reference/transition-test-ref invalid values cause all properites to animate. http://www.w3.org/TR/css3-transitions/#transition-property-property 1d7d701b6ca35d00e1f4a1962f636c61e45bac6b `Oleg Janeiko`<mailto:oleg@the-incredible.me> When an invalid value is specified as one of the transition properties, it causes the the transition-property to change to 'all'. Instead of leaving the invalid property in and animating the valid properites with matching durations.
transition-timing-function-001 Parsing transition-timing-function dom,script http://www.w3.org/TR/css3-transitions/#transition-timing-function-property 30a144d6b678cf02e2143d42a8483af60af72d79 `Rodney Rehm`<http://rodneyrehm.de/en/> Test checks that transition-timing-function values are parsed properly
transition-timing-function-002 transition-timing-function - 'ease' equivalent to 'cubic-bezier(0.25, 0.1, 0.25, 1.0)' interact http://www.w3.org/TR/css3-transitions/#transition-timing-function 70cde45e58d25dac817c480c333547e64e1d3130 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-timing-function' property set 'ease' is equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0)
transition-timing-function-003 transition-timing-function - 'ease-in' equivalent to 'cubic-bezier(0.42, 0, 1.0, 1.0)' interact http://www.w3.org/TR/css3-transitions/#transition-timing-function c8efb42a48251c36280c78246d17b8df0abec3d8 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-timing-function' property set 'ease-in' is equivalent to cubic-bezier(0.42, 0, 1.0, 1.0)
transition-timing-function-004 transition-timing-function - 'ease-in-out' equivalent to 'cubic-bezier(0.42, 0, 0.58, 1.0)' interact http://www.w3.org/TR/css3-transitions/#transition-timing-function d217cf85ce0b9533649efa378035ed11edf95825 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> The 'transition-timing-function' property set 'ease-in-out' is equivalent to cubic-bezier(0.42, 0, 0.58, 1.0)
@ -89,4 +89,4 @@ transition-timing-function-010 transition-timing-function - steps(2) interact h
transition-timing-function-011 transition-timing-function - steps(the second parameter default 'end') interact http://www.w3.org/TR/css3-transitions/#transition-timing-function c32be7bb9456b91521fdb65f20b732745ef027fe `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the second parameter of 'steps()' function is default 'end'.
transition-timing-function-012 transition-timing-function - steps(-2) interact http://www.w3.org/TR/css3-transitions/#transition-timing-function 697cf308e981930a115204bf380fd144f66db582 `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'steps()' function with negative number is invalid, the transition-timing-function will use 'ease' as default.
transition-timing-function-013 transition-timing-function - steps(0) interact http://www.w3.org/TR/css3-transitions/#transition-timing-function 878150531efe65abd6a8d1dddebc1e104de49fbf `Intel`<http://www.intel.com>,`Shiyou Tan`<mailto:shiyoux.tan@intel.com> Test checks that the 'steps()' function with '0' is invalid, the transition-timing-function will use 'ease' as default.
transitions-animatable-properties-01 CSS Transitions: Animatable CSS properties script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-properties 8556b336916af660b223d89c3bf3c2abe869912b `Daniel Glazman`<mailto:daniel.glazman@disruptive-innovations.com> Check that all animatable CSS properties are animatable and then accepted by the 'transition-property' property
transitions-animatable-properties-01 CSS Transitions: Animatable CSS properties script http://www.w3.org/TR/css3-transitions/#transitions,http://www.w3.org/TR/css3-transitions/#animatable-properties b5d0d04ef8d8104e07474f75b2a74beca1f1cdb1 `Daniel Glazman`<mailto:daniel.glazman@disruptive-innovations.com> Check that all animatable CSS properties are animatable and then accepted by the 'transition-property' property

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition height from 10px to 100px / values": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="offs-creen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -51,7 +51,7 @@
<script>
// make sure a transition is run between DOMContentLoaded and load
var isDOMContentLoaded = false;
window.addEventListener('DOMContentLoaded', function() {
isDOMContentLoaded = true;
@ -60,7 +60,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition height from 10px to 100px",
@ -91,12 +91,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -122,7 +122,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -140,7 +140,7 @@
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'container', ""));
// make sure we got the event for the tested property only
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'transition', addVendorPrefix(data.property) + ":" + duration));
test.step(function() {
assert_false(isDOMContentLoaded, "DOMContentLoaded may not have happened yet")
});
@ -153,4 +153,5 @@
</script>
<script src="/delay/?type=js&amp;delay=3000"></script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -43,7 +43,7 @@
</div>
</div>
<div id="offs-creen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -51,16 +51,16 @@
<script>
// make sure a transition is run between DOMContentLoaded and load
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var isLoad = false;
window.addEventListener('load', function() {
isLoad = true;
}, false);
window.addEventListener('DOMContentLoaded', function() {
var tests = [
{
@ -155,4 +155,5 @@
</script>
<img src="/delay/?type=gif&amp;delay=3000" alt="dummy image" />
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -24,7 +24,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"changing transition-duration / values": {},
@ -64,7 +64,7 @@
'transition-duration': '0.1s'
},
expect: [
'padding-left:0.5s'
'padding-left:0.5s'
]
},
{
@ -77,7 +77,7 @@
'transition-property': 'margin-left'
},
expect: [
''
''
]
}
];
@ -102,7 +102,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions},
@ -129,7 +129,7 @@
generalParallelTest.getStyle(data);
// kick off the transition
generalParallelTest.startTransition(data);
setTimeout(function() {
data.transition.node.classList.add('then');
@ -151,4 +151,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition within detached container / values": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="off-screen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -54,7 +54,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition within detached container",
@ -85,12 +85,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -136,4 +136,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition:all, changing padding-left / events": {},
@ -51,21 +51,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// For the keyword all, or if one of the identifiers listed is a shorthand property, implementations must
// start transitions for any of its longhand sub-properties that are animatable (or, for all, all animatable
// For the keyword all, or if one of the identifiers listed is a shorthand property, implementations must
// start transitions for any of its longhand sub-properties that are animatable (or, for all, all animatable
// properties), using the duration, delay, and timing function at the index corresponding to the shorthand.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition:all, changing padding-left",
@ -73,7 +73,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "transition:all, changing padding",
@ -151,7 +151,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -172,7 +172,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -206,4 +206,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transitions:all, changing padding-left from nothing / events": {},
@ -43,7 +43,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -54,7 +54,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transitions:all, changing padding-left from nothing",
@ -62,7 +62,7 @@
from: {}, // no padding === padding:0;
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "transitions:all, changing padding from nothing",
@ -77,7 +77,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -98,7 +98,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -132,4 +132,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"duration: 0.1s, delay: -0.05s / events": {},
@ -44,27 +44,27 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// If the value for 'transition-delay' is a negative time offset then the transition will execute the moment the property
// is changed, but will appear to have begun execution at the specified offset. That is, the transition will appear to
// begin part-way through its play cycle. In the case where a transition has implied starting values and a negative
// If the value for 'transition-delay' is a negative time offset then the transition will execute the moment the property
// is changed, but will appear to have begun execution at the specified offset. That is, the transition will appear to
// begin part-way through its play cycle. In the case where a transition has implied starting values and a negative
// 'transition-delay', the starting values are taken from the moment the property is changed.
// http://www.w3.org/TR/css3-transitions/#starting
// Define the combined duration of the transition as the sum of max(transition-duration, 0s) and transition-delay.
// When the combined duration is greater than 0s, then a transition starts based on the values of transition-duration,
// Define the combined duration of the transition as the sum of max(transition-duration, 0s) and transition-delay.
// When the combined duration is greater than 0s, then a transition starts based on the values of transition-duration,
// transition-delay, and transition-timing-function; in other cases transitions do not occur.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "duration: 0.1s, delay: -0.05s",
@ -72,7 +72,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}, {
name: "duration: 0.1s, delay: -0.1s",
@ -80,11 +80,11 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
'padding-left:0.1s'
]
}
];
];
// general transition-duration
var duration = '0.5s';
@ -105,7 +105,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -139,4 +139,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"repeating lists / events": {},
@ -44,21 +44,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// In the case where the lists of values in transition properties do not have the same length, the length of the
// transition-property list determines the number of items in each list examined when starting transitions.
// In the case where the lists of values in transition properties do not have the same length, the length of the
// transition-property list determines the number of items in each list examined when starting transitions.
// The lists are matched up from the first value: excess values at the end are not used.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "repeating lists",
@ -91,7 +91,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -112,7 +112,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {}
@ -146,4 +146,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-events" rel="help" title="5. Transition Events" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"property repetition / events": {},
@ -45,21 +45,21 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
-->
<script>
// If a property is specified multiple times in the value of transition-property (either on its own, via a shorthand that
// contains it, or via the all value), then the transition that starts uses the duration, delay, and timing function at
// If a property is specified multiple times in the value of transition-property (either on its own, via a shorthand that
// contains it, or via the all value), then the transition that starts uses the duration, delay, and timing function at
// the index corresponding to the last item in the value of transition-property that calls for animating that property.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "property repetition",
@ -67,7 +67,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}, {
name: "padding, padding-left",
@ -75,7 +75,7 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}, {
name: "padding-left, padding",
@ -83,11 +83,11 @@
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.15s'
'padding-left:0.15s'
]
}
];
// general transition-duration
var duration = '0.5s';
@ -108,7 +108,7 @@
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
@ -142,4 +142,5 @@
});
</script>
</body></html>

View file

@ -8,10 +8,10 @@
<link href="http://www.w3.org/TR/css3-content/" rel="help" title="CSS3 Generated and Replaced Content Module" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -27,7 +27,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition padding-left on :before / events": {},
@ -45,7 +45,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -53,11 +53,11 @@
<script>
// this is yet to be specified behavior
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition padding-left on :before",
@ -81,7 +81,7 @@
]
}
];
// general transition-duration
var duration = '0.5s';
@ -131,4 +131,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -21,7 +21,7 @@
display: none;
}
</style>
<script id="metadata_cache">/*
{
"transition within display:none / values": {},
@ -39,7 +39,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -50,7 +50,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition within display:none",
@ -81,12 +81,12 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -130,4 +130,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -604,7 +604,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -614,7 +614,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -622,7 +622,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -643,7 +643,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -671,7 +671,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -697,4 +697,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"margin-bottom percentage(%) / values": {},
@ -69,11 +69,11 @@
<script>
// this suite tests property value types that haven't been specified
// (like &lt;percentage&gt; for margin-bottom)
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getMissingPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -81,10 +81,10 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
runParallelAsyncHarness({
// array of test data
tests: tests,
@ -102,7 +102,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -130,7 +130,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -156,4 +156,5 @@
});
</script>
</body></html>

View file

@ -7,10 +7,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#animatable-css" rel="help" title="7.1. Properties from CSS" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -26,7 +26,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"border-top-left-radius border-radius(px) / values": {},
@ -244,7 +244,7 @@
// see README.md for an explanation of how this test suite works
// this suite tests properties that haven't been specified at all
// (like background-image and column-rule-width)
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
@ -256,10 +256,10 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
runParallelAsyncHarness({
// array of test data
tests: tests,
@ -277,7 +277,7 @@
'.container': data.parentStyle,
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: 'all ' + duration + ' linear 0s'}
@ -305,7 +305,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -331,4 +331,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom " name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"margin-top auto(to) / values": {},
@ -190,4 +190,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#transitions" rel="help" title="2. Transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom " name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-position length-em(em) / values": {},
@ -143,7 +143,7 @@
data.to['font-size'] = '30px';
// remove property from target style so it won't transition on its own
delete data.to[data.property];
var styles = {
'.fixture': {},
@ -204,4 +204,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom " name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -603,7 +603,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -611,13 +611,13 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -644,7 +644,7 @@
// applied to #transition
var inherited = extend({}, data.from);
inherited[data.property] = 'inherit';
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
@ -658,7 +658,7 @@
'.transition.to' : {},
'.transition.how' : {transition: addVendorPrefix(data.property) + ' ' + duration + ' linear 0s'}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
@ -681,7 +681,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -707,4 +707,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom " name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-color color(rgba) / values": {},
@ -603,7 +603,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -611,14 +611,14 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// Note: Parent element doesn't transition, so above quote doesn't apply!
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getPropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -626,7 +626,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -645,7 +645,7 @@
// applied to #transition
var inherited = extend({}, data.from);
inherited[data.property] = 'inherit';
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
@ -682,7 +682,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -708,4 +708,5 @@
});
</script>
</body></html>

View file

@ -6,10 +6,10 @@
<link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom " name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -25,7 +25,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"background-position length-em(em) / values": {},
@ -101,7 +101,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -109,14 +109,14 @@
<script>
// http://www.w3.org/TR/css3-transitions/#starting
// Implementations also must not start a transition when the computed value changes because
// Implementations also must not start a transition when the computed value changes because
// it is inherited (directly or indirectly) from another element that is transitioning the same property.
// Note: "indirectly" could mean "font-size" on parent, "em-based" on element
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = getFontSizeRelativePropertyTests();
// for testing, limit to a couple of iterations
// tests = tests.slice(10, 30);
@ -124,7 +124,7 @@
// tests = filterPropertyTests(tests, "background-color color(rgba)");
// tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
var duration = '0.5s';
@ -146,12 +146,12 @@
var styles = {
// as we're testing inheritance, #fixture is our new parent
'.fixture': data.parentStyle,
'.container': from,
'.container.to': {'font-size': '30px'},
// transition font-size on parent
'.container.how': {transition: 'font-size ' + duration + ' linear 0s'},
'.transition': data.from,
'.transition.to' : {},
// transition font-size dependent property on child
@ -180,7 +180,7 @@
assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.transition.computedStyle(data.property);
@ -206,4 +206,5 @@
});
</script>
</body></html>

View file

@ -8,10 +8,10 @@
<link href="http://www.w3.org/TR/css3-content/" rel="help" title="CSS3 Generated and Replaced Content Module" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
@ -27,7 +27,7 @@
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"transition padding-left on :before / values": {},
@ -47,7 +47,7 @@
</div>
</div>
<div id="offscreen"></div>
<!--
SEE ./support/README.md for an abstract explanation of the test procedure
http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
@ -58,7 +58,7 @@
// this test takes its time, give it a minute to run
var timeout = 60000;
setup({timeout: timeout});
var tests = [
{
name: "transition padding-left on :before",
@ -90,7 +90,7 @@
to: {'padding-left': '10px', 'content': '"2"'}
}
];
// general transition-duration
var duration = '0.5s';
@ -106,7 +106,7 @@
// prepare individual test
setup: function(data, options) {
generalParallelTest.setup(data, options);
var styles = {};
styles['.fixture'] = {};
styles['.container'] = data.parentStyle;
@ -138,7 +138,7 @@
assert_not_equals(data.pseudo.from, data.pseudo.to, "initial and target values may not match");
// kick off the transition
generalParallelTest.startTransition(data);
// make sure we didn't get the target value immediately.
// If we did, there wouldn't be a transition!
var current = data.pseudo.computedStyle(data.property);
@ -155,4 +155,5 @@
});
</script>
</body></html>

View file

@ -14,7 +14,7 @@ var suite = root.generalParallelTest = {
data.fixture = document.getElementById('fixture').cloneNode(true);
data.fixture.id = 'test-' + (index++);
(document.getElementById('offscreen') || document.body).appendChild(data.fixture);
// data container for #fixture > .container > .transition
data.transition = {
node: data.fixture.querySelector('.transition'),
@ -34,7 +34,7 @@ var suite = root.generalParallelTest = {
return computedStyle(data.container.node, property);
}
};
// data container for #fixture > .container > .transition[:before | :after]
if (data.pseudo) {
data.pseudo = {
@ -92,13 +92,13 @@ var suite = root.generalParallelTest = {
if (!options.styles) {
options.styles = {};
}
Object.keys(styles).forEach(function(key) {
var selector = '#' + data.fixture.id
// fixture must become #fixture.fixture rather than a child selector
+ (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ key;
options.styles[selector] = styles[key];
});
},
@ -109,7 +109,7 @@ var suite = root.generalParallelTest = {
suite._getStyleFor(data, 'from');
// apply target state
suite._addClass(data, 'to', true);
// grab current styles: "target state"
// grab current styles: "target state"
suite._getStyleFor(data, 'to');
// remove target state
suite._removeClass(data, 'to', true);
@ -157,7 +157,7 @@ var suite = root.generalParallelTest = {
var raf = window.requestAnimationFrame || function(callback){
setTimeout(callback, 20);
};
// flag denoting if the runLoop should continue (true) or exit (false)
options._collectValues = true;
@ -166,19 +166,19 @@ var suite = root.generalParallelTest = {
// test's are done, stop annoying the CPU
return;
}
// collect current style for test's elements
options.tests.forEach(function(data) {
if (!data.property) {
return;
}
['transition', 'container', 'pseudo'].forEach(function(elem) {
var pseudo = null;
if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
return;
}
var current = data[elem].computedStyle(data.property);
var values = data[elem].values;
var length = values.length;
@ -187,11 +187,11 @@ var suite = root.generalParallelTest = {
}
});
});
// rinse and repeat
raf(runLoop);
}
runLoop();
},
// stop requestAnimationFrame runLoop collecting computed values
@ -222,7 +222,7 @@ var suite = root.generalParallelTest = {
assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
}
// TODO: first value must be initial, last value must be target
};
}

View file

@ -1,6 +1,6 @@
//
//
// Simple Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -17,7 +17,7 @@ root.setStyle = function(selector, styles) {
target.type = "text/css";
document.getElementsByTagName('head')[0].appendChild(target);
}
var data = [];
// single selector/styles
if (typeof selector === 'string' && styles !== undefined) {
@ -44,7 +44,7 @@ function serializeStyles(styles) {
data.push(prefixedProperty + ":" + styles[property] + ";");
}
}
return data.join('\n');
}

View file

@ -114,7 +114,7 @@ var values = {
data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
// A hunch, as from the spec:
// http://www.w3.org/TR/css3-transitions/#animatable-types
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
};
},
@ -171,39 +171,39 @@ var values = {
var properties = {
'background-color': ['color'],
'background-position': ['length', 'percentage'],
'border-top-width': ['length'],
'border-right-width': ['length'],
'border-bottom-width': ['length'],
'border-left-width': ['length'],
'border-top-color': ['color'],
'border-right-color': ['color'],
'border-bottom-color': ['color'],
'border-left-color': ['color'],
'padding-bottom': ['length'],
'padding-left': ['length'],
'padding-right': ['length'],
'padding-top': ['length'],
'margin-bottom': ['length'],
'margin-left': ['length'],
'margin-right': ['length'],
'margin-top': ['length'],
'height': ['length', 'percentage'],
'width': ['length', 'percentage'],
'min-height': ['length', 'percentage'],
'min-width': ['length', 'percentage'],
'max-height': ['length', 'percentage'],
'max-width': ['length', 'percentage'],
'top': ['length', 'percentage'],
'right': ['length', 'percentage'],
'bottom': ['length', 'percentage'],
'left': ['length', 'percentage'],
'color': ['color'],
'font-size': ['length', 'percentage'],
'font-weight': ['font-weight'],
@ -214,16 +214,16 @@ var properties = {
'word-spacing': ['length', 'percentage'],
'text-indent': ['length', 'percentage'],
'text-shadow': ['shadow'],
'outline-color': ['color'],
// outline-offset <integer> used to be an error in the spec
'outline-offset': ['length'],
'outline-width': ['length'],
'clip': ['rectangle'],
// Note: doesn't seem implemented anywhere
'crop': ['rectangle'],
'vertical-align': ['length', 'percentage'],
'opacity': ['number[0,1]'],
'visibility': ['visibility'],
@ -279,7 +279,7 @@ var unspecified_properties = {
'background-image': ['image'],
'background-size': ['background-size'],
// https://drafts.csswg.org/css3-background/#the-box-shadow
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
'box-shadow': ['box-shadow'],
'font-size-adjust': ['number'],
'font-stretch': ['font-stretch'],
@ -342,7 +342,7 @@ var parent_styles = {
// unspecified properties
'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
// inheritance tests
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
@ -375,7 +375,7 @@ function assemble(props) {
});
});
}
return tests;
}
@ -393,23 +393,23 @@ root.getUnspecifiedPropertyTests = function() {
root.getFontSizeRelativePropertyTests = function() {
var accepted = {};
for (var key in properties) {
if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
continue;
}
if (properties[key].indexOf('length') > -1) {
accepted[key] = ['length-em'];
}
}
return assemble(accepted);
};
root.getAutoPropertyTests = function() {
var accepted = {};
for (var i = 0, key; key = properties_auto[i]; i++) {
accepted[key] = ['auto'];
}
@ -420,17 +420,17 @@ root.getAutoPropertyTests = function() {
root.filterPropertyTests = function(tests, names) {
var allowed = {};
var accepted = [];
if (typeof names === "string") {
names = [names];
}
if (!(names instanceof RegExp)) {
names.forEach(function(name) {
allowed[name] = true;
});
}
tests.forEach(function(test) {
if (names instanceof RegExp) {
if (!test.name.match(names)) {
@ -439,11 +439,11 @@ root.filterPropertyTests = function(tests, names) {
} else if (!allowed[test.name]) {
return;
}
accepted.push(test);
});
return accepted;
};
})(window);
})(window);

View file

@ -13,13 +13,13 @@
{name: "name of test 2", custom: "data"},
// ...
],
// number of tests (tests, not test-cases!) to run concurrently
testsPerSlice: 100,
// time in milliseconds a test-run takes
duration: 1000,
// test-cases to run for for the test - there must be at least one
// each case creates its separate async_test() instance
cases: {
@ -33,17 +33,17 @@
},
// ...
}
// all callbacks are optional:
// invoked for individual test before it starts so you can setup the environment
// like DOM, CSS, adding event listeners and such
setup: function(data, options){},
// invoked after a test ended, so you can clean up the environment
// like DOM, CSS, removing event listeners and such
teardown: function(data, options){},
// invoked before a batch of tests ("slice") are run concurrently
// tests is an array of test data objects
sliceStart: function(options, tests)
@ -60,22 +60,22 @@ root.runParallelAsyncHarness = function(options) {
if (!options.cases) {
throw new Error("Options don't contain test cases!");
}
var noop = function(){};
// add a 100ms buffer to the test timeout, just in case
var duration = Math.ceil(options.duration + 100);
// names of individual tests
var cases = Object.keys(options.cases);
// run tests in a batch of slices
// primarily not to overload weak devices (tablets, phones, …)
// primarily not to overload weak devices (tablets, phones, …)
// with too many tests running simultaneously
var iteration = -1;
var testPerSlice = options.testsPerSlice || 100;
var slices = Math.ceil(options.tests.length / testPerSlice);
// initialize all async test cases
// Note: satisfying testharness.js needs to know all async tests before load-event
options.tests.forEach(function(data, index) {
@ -84,7 +84,7 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
});
});
function runLoop() {
iteration++;
if (iteration >= slices) {
@ -92,7 +92,7 @@ root.runParallelAsyncHarness = function(options) {
(options.done || noop)(options);
return;
}
// grab a slice of testss and initialize them
var offset = iteration * testPerSlice;
var tests = options.tests.slice(offset, offset + testPerSlice);
@ -100,10 +100,10 @@ root.runParallelAsyncHarness = function(options) {
(options.setup || noop)(data, options);
});
// kick off the current slice of tests
(options.sliceStart || noop)(options, tests);
// perform individual "start" test-case
tests.forEach(function(data) {
cases.forEach(function(name) {
@ -112,7 +112,7 @@ root.runParallelAsyncHarness = function(options) {
});
});
});
// conclude test (possibly abort)
setTimeout(function() {
tests.forEach(function(data) {
@ -129,17 +129,17 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name].done();
});
});
// finish the test for current slice of tests
(options.sliceDone || noop)(options, tests);
// next test please, give the browser 50ms to do catch its breath
setTimeout(runLoop, 50);
}, duration);
}
// allow DOMContentLoaded before actually doing something
setTimeout(runLoop, 100);
};
})(window);
})(window);

View file

@ -1,6 +1,6 @@
//
//
// Vendor-Prefix Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -21,7 +21,7 @@ root.addVendorPrefix = function (name) {
// property unknown to browser
return name;
}
return prefix + name;
};
@ -32,7 +32,7 @@ root.addValueVendorPrefix = function (property, value) {
// property unknown to browser
return name;
}
return prefix + value;
};
@ -41,7 +41,7 @@ root.getVendorPrefix = function(name) {
if (prefixCache[name] !== undefined) {
return prefixCache[name];
}
var elem = document.createElement("div");
name = camelCase(name);
@ -78,9 +78,9 @@ root.getValueVendorPrefix = function(property, value) {
return styles[i];
}
}
document.body.removeChild(elem);
document.body.removeChild(elem);
return false;
};
})(window);
})(window);

View file

@ -12,7 +12,7 @@
width: 100px;
height: 100px;
background-color: green;
transition-property: width;
transition-duration: 0;
}

View file

@ -14,7 +14,7 @@ var suite = root.generalParallelTest = {
data.fixture = document.getElementById('fixture').cloneNode(true);
data.fixture.id = 'test-' + (index++);
(document.getElementById('offscreen') || document.body).appendChild(data.fixture);
// data container for #fixture > .container > .transition
data.transition = {
node: data.fixture.querySelector('.transition'),
@ -34,7 +34,7 @@ var suite = root.generalParallelTest = {
return computedStyle(data.container.node, property);
}
};
// data container for #fixture > .container > .transition[:before | :after]
if (data.pseudo) {
data.pseudo = {
@ -92,13 +92,13 @@ var suite = root.generalParallelTest = {
if (!options.styles) {
options.styles = {};
}
Object.keys(styles).forEach(function(key) {
var selector = '#' + data.fixture.id
// fixture must become #fixture.fixture rather than a child selector
+ (key.substring(0, 8) === '.fixture' ? '' : ' ')
+ key;
options.styles[selector] = styles[key];
});
},
@ -109,7 +109,7 @@ var suite = root.generalParallelTest = {
suite._getStyleFor(data, 'from');
// apply target state
suite._addClass(data, 'to', true);
// grab current styles: "target state"
// grab current styles: "target state"
suite._getStyleFor(data, 'to');
// remove target state
suite._removeClass(data, 'to', true);
@ -157,7 +157,7 @@ var suite = root.generalParallelTest = {
var raf = window.requestAnimationFrame || function(callback){
setTimeout(callback, 20);
};
// flag denoting if the runLoop should continue (true) or exit (false)
options._collectValues = true;
@ -166,19 +166,19 @@ var suite = root.generalParallelTest = {
// test's are done, stop annoying the CPU
return;
}
// collect current style for test's elements
options.tests.forEach(function(data) {
if (!data.property) {
return;
}
['transition', 'container', 'pseudo'].forEach(function(elem) {
var pseudo = null;
if (!data[elem] || (elem === 'pseudo' && !data.pseudo)) {
return;
}
var current = data[elem].computedStyle(data.property);
var values = data[elem].values;
var length = values.length;
@ -187,11 +187,11 @@ var suite = root.generalParallelTest = {
}
});
});
// rinse and repeat
raf(runLoop);
}
runLoop();
},
// stop requestAnimationFrame runLoop collecting computed values
@ -222,7 +222,7 @@ var suite = root.generalParallelTest = {
assert_not_equals(values[1], data[elem].from, "may not be initial value while transitioning on ." + elem);
assert_not_equals(values[1], data[elem].to, "may not be target value while transitioning on ." + elem);
}
// TODO: first value must be initial, last value must be target
};
}

View file

@ -1,6 +1,6 @@
//
//
// Simple Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -17,7 +17,7 @@ root.setStyle = function(selector, styles) {
target.type = "text/css";
document.getElementsByTagName('head')[0].appendChild(target);
}
var data = [];
// single selector/styles
if (typeof selector === 'string' && styles !== undefined) {
@ -44,7 +44,7 @@ function serializeStyles(styles) {
data.push(prefixedProperty + ":" + styles[property] + ";");
}
}
return data.join('\n');
}

View file

@ -114,7 +114,7 @@ var values = {
data: ['url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=)', 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==)'],
// A hunch, as from the spec:
// http://www.w3.org/TR/css3-transitions/#animatable-types
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
// gradient: interpolated via the positions and colors of each stop. They must have the same type (radial or linear) and same number of stops in order to be animated. Note: [CSS3-IMAGES] may extend this definition.
gradient: [prefix + 'linear-gradient(top, hsl(0, 80%, 70%), #bada55)', prefix + 'linear-gradient(top, #bada55, hsl(0, 80%, 70%))']
};
},
@ -171,39 +171,39 @@ var values = {
var properties = {
'background-color': ['color'],
'background-position': ['length', 'percentage'],
'border-top-width': ['length'],
'border-right-width': ['length'],
'border-bottom-width': ['length'],
'border-left-width': ['length'],
'border-top-color': ['color'],
'border-right-color': ['color'],
'border-bottom-color': ['color'],
'border-left-color': ['color'],
'padding-bottom': ['length'],
'padding-left': ['length'],
'padding-right': ['length'],
'padding-top': ['length'],
'margin-bottom': ['length'],
'margin-left': ['length'],
'margin-right': ['length'],
'margin-top': ['length'],
'height': ['length', 'percentage'],
'width': ['length', 'percentage'],
'min-height': ['length', 'percentage'],
'min-width': ['length', 'percentage'],
'max-height': ['length', 'percentage'],
'max-width': ['length', 'percentage'],
'top': ['length', 'percentage'],
'right': ['length', 'percentage'],
'bottom': ['length', 'percentage'],
'left': ['length', 'percentage'],
'color': ['color'],
'font-size': ['length', 'percentage'],
'font-weight': ['font-weight'],
@ -214,16 +214,16 @@ var properties = {
'word-spacing': ['length', 'percentage'],
'text-indent': ['length', 'percentage'],
'text-shadow': ['shadow'],
'outline-color': ['color'],
// outline-offset <integer> used to be an error in the spec
'outline-offset': ['length'],
'outline-width': ['length'],
'clip': ['rectangle'],
// Note: doesn't seem implemented anywhere
'crop': ['rectangle'],
'vertical-align': ['length', 'percentage'],
'opacity': ['number[0,1]'],
'visibility': ['visibility'],
@ -279,7 +279,7 @@ var unspecified_properties = {
'background-image': ['image'],
'background-size': ['background-size'],
// https://drafts.csswg.org/css3-background/#the-box-shadow
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
// Animatable: yes, except between inner and outer shadows (Transition to/from an absent shadow is a transition to/from 0 0 transparent or 0 0 transparent inset, as appropriate.)
'box-shadow': ['box-shadow'],
'font-size-adjust': ['number'],
'font-stretch': ['font-stretch'],
@ -342,7 +342,7 @@ var parent_styles = {
// unspecified properties
'position': {'position': 'relative', 'width': '100px', 'height': '100px'},
// inheritance tests
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'top': {'width': '100px', 'height': '100px', 'position': 'relative'},
'right': {'width': '100px', 'height': '100px', 'position': 'relative'},
'bottom': {'width': '100px', 'height': '100px', 'position': 'relative'},
'left': {'width': '100px', 'height': '100px', 'position': 'relative'}
@ -375,7 +375,7 @@ function assemble(props) {
});
});
}
return tests;
}
@ -393,23 +393,23 @@ root.getUnspecifiedPropertyTests = function() {
root.getFontSizeRelativePropertyTests = function() {
var accepted = {};
for (var key in properties) {
if (!Object.prototype.hasOwnProperty.call(properties, key) || key === "font-size") {
continue;
}
if (properties[key].indexOf('length') > -1) {
accepted[key] = ['length-em'];
}
}
return assemble(accepted);
};
root.getAutoPropertyTests = function() {
var accepted = {};
for (var i = 0, key; key = properties_auto[i]; i++) {
accepted[key] = ['auto'];
}
@ -420,17 +420,17 @@ root.getAutoPropertyTests = function() {
root.filterPropertyTests = function(tests, names) {
var allowed = {};
var accepted = [];
if (typeof names === "string") {
names = [names];
}
if (!(names instanceof RegExp)) {
names.forEach(function(name) {
allowed[name] = true;
});
}
tests.forEach(function(test) {
if (names instanceof RegExp) {
if (!test.name.match(names)) {
@ -439,11 +439,11 @@ root.filterPropertyTests = function(tests, names) {
} else if (!allowed[test.name]) {
return;
}
accepted.push(test);
});
return accepted;
};
})(window);
})(window);

View file

@ -13,13 +13,13 @@
{name: "name of test 2", custom: "data"},
// ...
],
// number of tests (tests, not test-cases!) to run concurrently
testsPerSlice: 100,
// time in milliseconds a test-run takes
duration: 1000,
// test-cases to run for for the test - there must be at least one
// each case creates its separate async_test() instance
cases: {
@ -33,17 +33,17 @@
},
// ...
}
// all callbacks are optional:
// invoked for individual test before it starts so you can setup the environment
// like DOM, CSS, adding event listeners and such
setup: function(data, options){},
// invoked after a test ended, so you can clean up the environment
// like DOM, CSS, removing event listeners and such
teardown: function(data, options){},
// invoked before a batch of tests ("slice") are run concurrently
// tests is an array of test data objects
sliceStart: function(options, tests)
@ -60,22 +60,22 @@ root.runParallelAsyncHarness = function(options) {
if (!options.cases) {
throw new Error("Options don't contain test cases!");
}
var noop = function(){};
// add a 100ms buffer to the test timeout, just in case
var duration = Math.ceil(options.duration + 100);
// names of individual tests
var cases = Object.keys(options.cases);
// run tests in a batch of slices
// primarily not to overload weak devices (tablets, phones, …)
// primarily not to overload weak devices (tablets, phones, …)
// with too many tests running simultaneously
var iteration = -1;
var testPerSlice = options.testsPerSlice || 100;
var slices = Math.ceil(options.tests.length / testPerSlice);
// initialize all async test cases
// Note: satisfying testharness.js needs to know all async tests before load-event
options.tests.forEach(function(data, index) {
@ -84,7 +84,7 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name] = async_test(data.name + " / " + name, {timeout: options.timeout || 60000});
});
});
function runLoop() {
iteration++;
if (iteration >= slices) {
@ -92,7 +92,7 @@ root.runParallelAsyncHarness = function(options) {
(options.done || noop)(options);
return;
}
// grab a slice of testss and initialize them
var offset = iteration * testPerSlice;
var tests = options.tests.slice(offset, offset + testPerSlice);
@ -100,10 +100,10 @@ root.runParallelAsyncHarness = function(options) {
(options.setup || noop)(data, options);
});
// kick off the current slice of tests
(options.sliceStart || noop)(options, tests);
// perform individual "start" test-case
tests.forEach(function(data) {
cases.forEach(function(name) {
@ -112,7 +112,7 @@ root.runParallelAsyncHarness = function(options) {
});
});
});
// conclude test (possibly abort)
setTimeout(function() {
tests.forEach(function(data) {
@ -129,17 +129,17 @@ root.runParallelAsyncHarness = function(options) {
data.cases[name].done();
});
});
// finish the test for current slice of tests
(options.sliceDone || noop)(options, tests);
// next test please, give the browser 50ms to do catch its breath
setTimeout(runLoop, 50);
}, duration);
}
// allow DOMContentLoaded before actually doing something
setTimeout(runLoop, 100);
};
})(window);
})(window);

View file

@ -1,6 +1,6 @@
//
//
// Vendor-Prefix Helper Functions For Testing CSS
//
//
(function(root) {
'use strict';
@ -21,7 +21,7 @@ root.addVendorPrefix = function (name) {
// property unknown to browser
return name;
}
return prefix + name;
};
@ -32,7 +32,7 @@ root.addValueVendorPrefix = function (property, value) {
// property unknown to browser
return name;
}
return prefix + value;
};
@ -41,7 +41,7 @@ root.getVendorPrefix = function(name) {
if (prefixCache[name] !== undefined) {
return prefixCache[name];
}
var elem = document.createElement("div");
name = camelCase(name);
@ -78,9 +78,9 @@ root.getValueVendorPrefix = function(property, value) {
return styles[i];
}
}
document.body.removeChild(elem);
document.body.removeChild(elem);
return false;
};
})(window);
})(window);

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-shorthand-property" rel="help" title="2.5. The 'transition' Shorthand Property" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '1s'": {},
@ -42,9 +42,9 @@
var transition = document.getElementById('transition');
var ease = 'cubic-bezier(0.25, 0.1, 0.25, 1)';
var easeIn = 'cubic-bezier(0.42, 0, 1, 1)';
// Note that order is important in this property. The first value that can be parsed as a time is assigned to
// the transition-duration. The second value that can be parsed as a time is assigned to transition-delay.
// [&lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt; [, [&lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt;]]*
// Note that order is important in this property. The first value that can be parsed as a time is assigned to
// the transition-duration. The second value that can be parsed as a time is assigned to transition-delay.
// [&lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt; [, [&lt;transition-property&gt; || &lt;transition-duration&gt; || &lt;transition-timing-function&gt; || &lt;transition-delay&gt;]]*
var values = {
// [property, duration, timing, delay]
// random order
@ -61,7 +61,7 @@
'width ease-in 1s 2s' : ["width", "1s", easeIn, "2s"],
'width .1s ease-in .2s' : ["width", "0.1s", easeIn, "0.2s"]
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -78,4 +78,5 @@
}
</script>
</body></html>

View file

@ -7,13 +7,13 @@
<link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the &lt;time> type and s, ms units" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '10.2s'": {},
@ -50,7 +50,7 @@
<script>
var transition = document.getElementById('transition');
// &lt;time&gt; [, &lt;time&gt;]*
// &lt;time&gt; [, &lt;time&gt;]*
var values = {
// seconds
'10.2s': '10.2s',
@ -79,13 +79,13 @@
// invalid
'foobar': '0s'
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
'foobar': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -103,4 +103,5 @@
}
</script>
</body></html>

View file

@ -7,13 +7,13 @@
<link href="http://www.w3.org/TR/css3-values/#time" rel="help" title="CSS Values and Units Module Level 3 - 6.2. Times: the &lt;time> type and s, ms units" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse '10.2s'": {},
@ -50,7 +50,7 @@
<script>
var transition = document.getElementById('transition');
// &lt;time&gt; [, &lt;time&gt;]*
// &lt;time&gt; [, &lt;time&gt;]*
var values = {
// seconds
'10.2s': '10.2s',
@ -78,7 +78,7 @@
// invalid
'foobar': '0s'
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
@ -86,7 +86,7 @@
'-500ms': true,
'foobar': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -104,4 +104,5 @@
}
</script>
</body></html>

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-property-property" rel="help" title="2.1. The 'transition-property' Property" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'none'": {},
@ -33,12 +33,12 @@
<script>
var transition = document.getElementById('transition');
// syntax: none | [ all | &lt;IDENT&gt; ] [ , [ all | &lt;IDENT&gt; ] ]*
// syntax: none | [ all | &lt;IDENT&gt; ] [ , [ all | &lt;IDENT&gt; ] ]*
var values = [
'none', 'all', 'width', 'all, width', 'width, all'
];
for (var i = 0, value; value = values[i]; i++) {
test(function() {
setStyle('#transition', {
@ -50,4 +50,5 @@
}
</script>
</body></html>

View file

@ -9,10 +9,10 @@
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'none, all'": {},
@ -35,18 +35,18 @@
<script>
var transition = document.getElementById('transition');
// syntax: none | [ all | &lt;IDENT&gt; ] [ , [ all | &lt;IDENT&gt; ] ]*
// syntax: none | [ all | &lt;IDENT&gt; ] [ , [ all | &lt;IDENT&gt; ] ]*
var values = {
'none, all' : 'none, all',
'all, none' : 'all, none',
'foobar' : 'foobar',
'all, foobar' : 'all, foobar',
'foobar, all' : 'foobar, all',
'inherit' : 'padding',
'none, all' : 'none, all',
'all, none' : 'all, none',
'foobar' : 'foobar',
'all, foobar' : 'all, foobar',
'foobar, all' : 'foobar, all',
'inherit' : 'padding',
'initial' : 'all'
};
for (var key in values) {
test(function() {
setStyle({
@ -59,4 +59,5 @@
}
</script>
</body></html>

View file

@ -15,7 +15,7 @@
width: 100px;
height: 100px;
background-color: green;
transition-property: width, foo; /* invalid foo */
transition-duration: 0, 5s;
}
@ -39,4 +39,5 @@
<div class="box"></div>
</div>
</body></html>

View file

@ -6,13 +6,13 @@
<link href="http://www.w3.org/TR/css3-transitions/#transition-timing-function-property" rel="help" title="2.3. The 'transition-timing-function' Property" />
<link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm" />
<meta content="dom" name="flags" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
<script src="./support/vendorPrefix.js" type="text/javascript"></script>
<script src="./support/helper.js" type="text/javascript"></script>
<script id="metadata_cache">/*
{
"parse 'ease'": {},
@ -77,7 +77,7 @@
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': defaultValue,
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': defaultValue
};
// these tests are supposed to fail and
// possibly make the engine issue a parser warning
var invalidTests = {
@ -90,7 +90,7 @@
'cubic-bezier(-0.1, -0.2, -0.3, -0.4)': true,
'cubic-bezier(1.1, 1.2, 1.3, 1.4)': true
};
for (var key in values) {
if (Object.prototype.hasOwnProperty.call(values, key)) {
test(function() {
@ -108,4 +108,5 @@
}
</script>
</body></html>

View file

@ -9,12 +9,12 @@
<link href="mailto:stearns@adobe.com" rel="reviewer" title="Alan Stearns" />
<style type="text/css">
html, body { margin: 0px; padding: 0px; }
.w50vw { width: 50vw; )
.h50vh { height: 50vh; }
.w50vm { width: 50vm; }
.h50vm { height: 50vm; }
</style>