servo/tests/wpt/css-tests/css-transitions-1_dev/xhtml1/events-003.xht

143 lines
No EOL
6.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta charset="utf-8" />
<title>CSS Transitions Test: transitionend event with negative delay</title>
<meta content="Test checks that transitionend event is triggered for duration time being canceled out by negative delay" name="assert" />
<link href="http://www.w3.org/TR/css3-transitions/#transition-delay-property" rel="help" title="2.4. The 'transition-delay' Property" />
<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>
<script src="./support/generalParallelTest.js" type="text/javascript"></script>
<script src="./support/properties.js" type="text/javascript"></script>
<style type="text/css">
#offscreen {
position: absolute;
top: -100000px;
left: -100000px;
width: 100000px;
height: 100000px;
}
</style>
<script id="metadata_cache">/*
{
"duration: 0.1s, delay: -0.05s / events": {},
"duration: 0.1s, delay: -0.1s / events": {}
}
*/</script>
</head>
<body>
<!-- required by testharnessreport.js -->
<div id="log"></div>
<!-- elements used for testing -->
<div class="fixture" id="fixture">
<div class="container">
<div class="transition">Text sample</div>
</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
// '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,
// 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",
transitions: 'all .1s linear -0.05s',
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
]
}, {
name: "duration: 0.1s, delay: -0.1s",
transitions: 'all .1s linear -0.1s',
from: {'padding-left': '1px'},
to: {'padding-left': '10px'},
expect: [
'padding-left:0.1s'
]
}
];
// general transition-duration
var duration = '0.5s';
runParallelAsyncHarness({
// array of test data
tests: tests,
// the number of tests to run in parallel
testsPerSlice: 50,
// milliseconds to wait before calling teardown and ending test
duration: parseFloat(duration) * 1000,
// the global suite timeout
timeout: timeout,
// prepare individual test
setup: function(data, options) {
var styles = {
'.fixture': {},
'.container': {},
'.container.to': {},
'.container.how': {},
'.transition': data.from,
'.transition.to' : data.to,
'.transition.how' : {transition: data.transitions}
};
generalParallelTest.setup(data, options);
generalParallelTest.addStyles(data, options, styles);
},
// cleanup after individual test
teardown: generalParallelTest.teardown,
// invoked prior to running a slice of tests
sliceStart: generalParallelTest.sliceStart,
// invoked after running a slice of tests
sliceDone: generalParallelTest.sliceDone,
// test cases, make them as granular as possible
cases: {
// test TransitionEnd events
'events': {
start: function(test, data, options) {
// kick off the transition
generalParallelTest.startTransition(data);
},
done: function(test, data, options) {
// make sure we got the event for the tested property only
test.step(generalParallelTest.assertExpectedEventsFunc(data, 'transition', data.expect));
}
}
},
// called once all tests are done
done: generalParallelTest.done
});
</script>
</body></html>