transition.html revision 484ded111840f4104ab556e0628b0e84632eba34
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<html>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<head>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<title>Transition tests</title>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<link type="text/css" rel="stylesheet" href="/build/logreader/assets/skins/sam/logreader.css">
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<script type="text/javascript" src="/build/yui/yui-debug.js"></script>
027e89d47af308db4b41761ca9f847c026b63ec8Andreas Gustafsson<style>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce.demo {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce background: #ccc;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce border: 5px solid green;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 200px;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 200px;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce.demo div {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 200px;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 200px;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce}
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce</style>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce</head>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<body class="yui3-skin-sam">
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce <h1>Transition Tests</h1>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce <div class="demo"><div></div></div>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce <div class="demo"><div></div></div>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce<script type="text/javascript">
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric LuceYUI({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce filter: "raw",
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce logInclude: { TestRunner: true }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce}).use('transition', 'test', 'console', function (Y) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.namespace('Tests');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Tests.Transition = (function(){
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var suite = new Y.Test.Suite('Transition Tests');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'onstart Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should run the onstart prior to setting target values': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce h = node.getComputedStyle('height'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce onstart = function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', 0);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce };
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', h);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return h;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce on: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce start: onstart
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(h, node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'onend Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should run the onend after transition completes': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce onend = function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce };
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce on: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce end: onend
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should run the onend before callback': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce h = node.getComputedStyle('height'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce onend = function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(h, node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', h);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(1000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce };
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', 0);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return h;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce on: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce end: onend
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(h, node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Show Transition Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should show the node with the default transition': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('display', 'none');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('opacity', '0');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.show(true, function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('block', node.getStyle('display'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should show the node with the named transition': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce h = node.getComputedStyle('height'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce w = node.getComputedStyle('width');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyles({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.show('sizeIn', function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(h, node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(w, node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should override the default duration': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('opacity', 0);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.show({duration: 1}, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(2000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Hide Transition Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should hide the node with the default transition': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.hide(true, function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(0, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('none', node.getStyle('display'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('display', 'block');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('opacity', '1');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('block', node.getStyle('display'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(1000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Named Transition Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce/* serial effects not yet implemented
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should run named effects in serial': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition(['fadeOut', 'fadeIn'], function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(3000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce*/
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should run named effect': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition('fadeOut', function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(0, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(1000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should override effect duration': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition('fadeIn', {duration: 2}, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(3000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Multiple Transition Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce setUp: function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.one('.demo').setStyles({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: '1'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'all chained callbacks should fire': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 1': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'last transition should win for same property': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '100px'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() { // shouldnt fire
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.isNull(1);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() { // shouldnt fire
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.isNull(1);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '100px'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 2': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'all serial callbacks should fire': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 3': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'all serial callbacks should fire (duration)': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 4': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'parallel transition should steal attribute': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) { // should never fire
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.isNull(1);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 5': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('width', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'parallel transition should shorten duration': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce easing: 'ease-in',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce value: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 3
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0', node.getComputedStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition 6': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Multiple Element Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce setUp: function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.all('.demo').setStyles({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: '1'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'multiple elements should transition together': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var nodes = Y.all('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node1 = nodes.item(0),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node2 = nodes.item(1),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node1.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function () {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node1.getComputedStyle('height'), 'item 1 height');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node2.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '100px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function () {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node2.getComputedStyle('height'), 'item 2 height');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'nodelist should transition together': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.all('.demo').transition({duration: 1, opacity: 0}, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var nodes = Y.all('.demo');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(0, nodes.item(0).getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce suite.add(new Y.Test.Case({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce name: 'Single Transition Tests',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce setUp: function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.all('.demo').setStyles({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: '200px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce borderWidth: '5px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce paddingTop: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: '1'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should end at final value': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
5f09ce124cad9712a9675f17f83ddc915e734909Andreas Gustafsson
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'should end at final values': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce borderWidth: '1px',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce foo: 0, // ignore non-supported
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce paddingTop: '100px'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
5f09ce124cad9712a9675f17f83ddc915e734909Andreas Gustafsson Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('width'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('0', node.getComputedStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('paddingTop'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('1px', node.getStyle('borderWidth'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'callback should fire after longest duration': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce easing: 'ease-in',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce value: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('opacity', '1');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'transition:end should fire after longest duration': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce config = {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce easing: 'ease-in',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce opacity: {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce value: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 2
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce width: 0
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce };
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.once('transition:end', function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(2, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areSame(config, e.config);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('opacity', '1');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, node.getStyle('opacity'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition(config);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'native transform should map to vendor prefix': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.transition({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce easing: 'ease',
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce duration: 1,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 0,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce transform: 'rotate(180deg)'
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }, function(e) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test.resume(function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual(1, parseInt(e.elapsedTime));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce if (Y.UA.webkit) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('matrix(-1, 1.22465e-16, -1.22465e-16, -1, 0, 0)', node.getComputedStyle('WebkitTransform'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce });
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
5f09ce124cad9712a9675f17f83ddc915e734909Andreas Gustafsson test.wait(4000);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce },
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce 'setStyle should not transition': function() {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce var node = Y.one('.demo'),
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce test = this;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce node.setStyle('height', '100px');
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Assert.areEqual('100px', node.getComputedStyle('height'));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }));
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce //return it
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce return suite;
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce })();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce new Y.Console({
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce verbose : true,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce height: 600,
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce newestOnTop : false
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }).render();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce //add to the testrunner and run
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Test.Runner.add(Y.Tests.Transition);
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce Y.Test.Runner.run();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce /*if (parent && parent != window) {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce YAHOO.tool.TestManager.load();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce } else {
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce YAHOO.tool.TestRunner.run();
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce }*/
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce});
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce</script>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce</body>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce</html>
f293a69bcd1c1dd7bdac8f4102fc2398b9e475c8Eric Luce