X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/test/unit/widgets/Slider.js diff --git a/test/unit/widgets/Slider.js b/test/unit/widgets/Slider.js new file mode 100644 index 00000000..f2395319 --- /dev/null +++ b/test/unit/widgets/Slider.js @@ -0,0 +1,204 @@ +/*! + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. + * licensing@extjs.com + * http://www.extjs.com/license + */ +/** + * Tests Ext.data.Store functionality + * @author Ed Spencer + */ +(function() { + var suite = Ext.test.session.getSuite('Ext.Slider'), + assert = Y.Assert; + + suite.add(new Y.Test.Case({ + name: 'constructor and initComponent', + + setUp: function() { + this.slider = new Ext.Slider(); + }, + + testDefaultValues: function() { + assert.areEqual(0, this.slider.minValue); + assert.areEqual(0, this.slider.value); + assert.areEqual(100, this.slider.maxValue); + }, + + testDefaultValueSet: function() { + var slider = new Ext.Slider({minValue: 50}); + + assert.areEqual(50, slider.value); + } + })); + + suite.add(new Y.Test.Case({ + name: 'Changing value', + + setUp: function() { + this.slider = new Ext.Slider({ + minValue: 30, + values : [50, 70], + maxValue: 90, + renderTo: Ext.getBody() + }); + + this.slider.render(); + }, + + tearDown: function() { + this.slider.destroy(); + }, + + testValueChanged: function() { + this.slider.setValue(0, 60); + + assert.areEqual(60, this.slider.getValues()[0]); + }, + + testEventFired: function() { + var executed = false, + value, thumb; + + this.slider.on('change', function(slider, v, t) { + executed = true; + value = v; + thumb = t; + }, this); + + this.slider.setValue(0, 60); + + assert.isTrue(executed); + assert.areEqual(60, value); + assert.areEqual(this.slider.thumbs[0], thumb); + }, + + testThumbMoved: function() { + var orig = this.slider.moveThumb, + index, animate; + + this.slider.moveThumb = function(i, v, a) { + index = i; + animate = a; + }; + + this.slider.setValue(0, 60, false); + + assert.areEqual(0, index); + assert.isFalse(animate); + }, + + testChangeComplete: function() { + var executed = false, + value, thumb; + + this.slider.on('changecomplete', function(slider, v, t) { + executed = true; + value = v; + thumb = t; + }, this); + + this.slider.setValue(0, 60, undefined, true); + + assert.isTrue(executed); + assert.areEqual(60, value); + assert.areEqual(this.slider.thumbs[0], thumb); + }, + + testSetMinValue: function() { + this.slider.setMinValue(20); + + assert.areEqual(20, this.slider.minValue); + assert.areEqual(50, this.slider.getValues()[0]); + }, + + testSetMaxValue: function() { + this.slider.setMaxValue(110); + + assert.areEqual(110, this.slider.maxValue); + assert.areEqual(50, this.slider.getValues()[0]); + }, + + testSetMinValueChangesValue: function() { + this.slider.setMinValue(60); + + assert.areEqual(60, this.slider.getValues()[0]); + assert.areEqual(70, this.slider.getValues()[1]); + }, + + testSetMaxValueChangesValue: function() { + this.slider.setMaxValue(60); + + assert.areEqual(50, this.slider.getValues()[0]); + assert.areEqual(60, this.slider.getValues()[1]); + } + })); + + suite.add(new Y.Test.Case({ + name: 'Utility functions', + + setUp: function() { + this.slider = new Ext.Slider({ + //the slider has 14px of total padding on the sides, so add this here to make the numbers easier + width : 214, + minValue: 100, + maxValue: 500, + renderTo: Ext.getBody() + }); + + this.slider.render(); + }, + + tearDown: function() { + this.slider.destroy(); + }, + + testGetRatio: function() { + assert.areEqual(0.5, this.slider.getRatio()); + }, + + testTranslateValue: function() { + + }, + + testReverseValue: function() { + + }, + + testNormalizeValue: function() { + + } + })); + + suite.add(new Y.Test.Case({ + name: 'Snapping', + + setUp: function() { + this.slider = new Ext.Slider({ + increment: 10, + renderTo : Ext.getBody() + }); + + this.slider.render(); + }, + + tearDown: function() { + this.slider.destroy(); + }, + + testSnapToFloor: function() { + this.slider.setValue(0, 12); + + assert.areEqual(10, this.slider.doSnap(12)); + }, + + testSnapToCeil: function() { + assert.areEqual(20, this.slider.doSnap(18)); + assert.areEqual(20, this.slider.doSnap(15)); + } + })); + + suite.add(new Y.Test.Case({ + name: 'Adding and removing thumbs' + })); +})(); \ No newline at end of file