8 describe('Fx.Tween', function(){
10 beforeEach(function(){
11 this.clock = sinon.useFakeTimers();
19 it('should tween the style of an element', function(){
21 var element = new Element('div#st_el', {
25 }).inject(document.body);
27 var fx = new Fx.Tween(element, {
36 expect(element.getStyle('height').toInt()).to.equal(50);
41 it('should tween the style of an element via Element.tween', function(){
43 var element = new Element('div', {
50 }).inject(document.body).tween('width', 50);
54 expect(element.getStyle('width').toInt()).to.equal(50);
59 it('should fade an element', function(){
61 var element = new Element('div', {
62 styles: { opacity: 0 }
63 }).inject(document.body);
65 element.set('tween', {
73 expect(element.getStyle('opacity').toInt()).to.equal(1);
78 it('should fade out an element and fade in when triggerd inside the onComplete event', function(){
80 var element = new Element('div').inject($(document.body));
81 var firstOpacity, lastOpacity, lastVisibility, runOnce = true;
82 element.set('tween', {
84 onComplete: function (){
86 firstOpacity = this.element.getStyle('opacity');
87 runOnce && this.element.fade();
96 lastOpacity = element.getStyle('opacity');
97 lastVisibility = element.getStyle('visibility');
99 expect(firstOpacity.toInt()).to.equal(0);
100 expect(lastOpacity.toInt()).to.equal(1);
101 expect(lastVisibility).to.equal('visible');
105 it('should fade an element with toggle', function(){
107 var element = new Element('div', {
108 styles: { opacity: 1 }
109 }).inject(document.body);
111 element.set('tween', {
115 element.fade('toggle');
117 this.clock.tick(130);
119 expect(element.getStyle('opacity').toInt()).to.equal(0);
124 it('should set tween options with the element getter en setter', function(){
126 var element = new Element('div');
128 element.set('tween', {
132 expect(element.get('tween').options.duration).to.equal(100);
136 it('should fade an element with toggle', function(){
138 var element = new Element('div', {
142 }).setStyle('background-color', '#fff').inject(document.body);
144 element.highlight('#f00');
148 expect(['#fff', '#ffffff']).to.contain(element.getStyle('background-color').toLowerCase());
153 describe('Element.fade', function(){
155 it('Should set the visibility style', function(){
157 var element = new Element('div', {styles: {'visibility': 'visible'}}).inject(document.body);
159 expect(element.getStyles('opacity', 'visibility')).to.eql({opacity: 1, visibility: 'visible'});
162 this.clock.tick(600);
163 expect(element.getStyles('opacity', 'visibility')).to.eql({opacity: 0.5, visibility: 'visible'});
166 this.clock.tick(600);
167 expect(element.getStyles('opacity', 'visibility')).to.eql({opacity: 0, visibility: 'hidden'});
170 this.clock.tick(600);
171 expect(element.getStyles('opacity', 'visibility')).to.eql({opacity: 1, visibility: 'visible'});
177 it('should accept the old style arguments (0, 1)', function(){
179 var element = new Element('div');
182 var tween = element.get('tween');
184 expect(tween.from[0].value).to.equal(1);
185 expect(tween.to[0].value).to.equal(0);
187 this.clock.tick(1000);
189 expect(element.getStyle('opacity')).to.equal(0);