transition.html revision 85a258143f630b36522d3d1835a8e5a916dbad2c
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster<link type="text/css" rel="stylesheet" href="/build/logreader/assets/skins/sam/logreader.css">
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster<script type="text/javascript" src="/build/yui/yui.js"></script>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster background: #ccc;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster border: 5px solid green;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster width: 200px;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster height: 200px;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster filter: "debug",
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster logInclude: { TestRunner: true }
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster}).use('transition', 'test', 'console', function (Y) {
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington var suite = new Y.Test.Suite('Transition Tests');
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster name: 'Multiple Transition Tests',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster setUp: function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.one('#demo').setStyles({
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster height: '200px',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster width: '200px',
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden opacity: '1'
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'all chained callbacks should fire': function() {
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('height'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'last transition should win for same property': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test.resume(function() { // shouldnt fire
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test.resume(function() { // shouldnt fire
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('1', node.getComputedStyle('opacity'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'all serial callbacks should fire': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 2,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 1,
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('height'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'all serial callbacks should fire (duration)': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 1,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 2,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('height'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'parallel transition should steal attribute': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) { // should never fire
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 1,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'parallel transition should shorten duration': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster easing: 'ease-in',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 2,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 1,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0', node.getComputedStyle('opacity'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster name: 'Single Transition Tests',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster setUp: function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo');
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster height: '200px',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster width: '200px',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster opacity: '1'
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'should end at final value': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'should end at final values': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('width'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0px', node.getComputedStyle('height'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual('0', node.getComputedStyle('opacity'));
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster 'callback should fire after longest duration': function() {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster var node = Y.one('#demo'),
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster test = this;
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster easing: 'ease-in',
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster duration: 1,
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster }, function(e) {
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster node.setStyle('height', '100px');
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster node.setStyle('opacity', '1');
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster Y.Assert.areEqual(1, node.getStyle('opacity'));
test.wait(4000);
var node = Y.one('#demo'),
node.once('transition:end', function(e) {
test.resume(function() {
node.setStyle('height', '100px');
node.setStyle('opacity', '1');
node.transition(config);
test.wait(4000);
var node = Y.one('#demo'),
node.setStyle('height', '100px');
new Y.Console({