Skip to content

Commit e08422c

Browse files
committed
Complete unit tests
1 parent 4cfc305 commit e08422c

File tree

8 files changed

+147
-2
lines changed

8 files changed

+147
-2
lines changed

demo/demo.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,16 @@ app.controller('MainCtrl', function($scope, $rootScope, $timeout, $modal) {
247247
}
248248
};
249249

250+
//Slider with ticks and values at intermediate positions
251+
$scope.slider_ticks_values_at = {
252+
value: 500,
253+
options: {
254+
ceil: 1000,
255+
floor: 0,
256+
showTicksValues: 100
257+
}
258+
};
259+
250260
//Slider with draggable range
251261
$scope.slider_draggable_range = {
252262
minValue: 1,

demo/index.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,14 @@ <h2>Slider with ticks at intermediate positions</h2>
189189
></rzslider>
190190
</article>
191191

192+
<article>
193+
<h2>Slider with ticks and values at intermediate positions</h2>
194+
<rzslider
195+
rz-slider-model="slider_ticks_values_at.value"
196+
rz-slider-options="slider_ticks_values_at.options"
197+
></rzslider>
198+
</article>
199+
192200
<article>
193201
<h2>Slider with draggable range</h2>
194202
<rzslider

dist/rzslider.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*! angularjs-slider - v2.11.0 -
22
(c) Rafal Zajac <[email protected]>, Valentin Hervieu <[email protected]>, Jussi Saarivirta <[email protected]>, Angelin Sirbu <[email protected]> -
33
https://github.com/angular-slider/angularjs-slider -
4-
2016-04-01 */
4+
2016-04-22 */
55
/*jslint unparam: true */
66
/*global angular: false, console: false, define, module */
77
(function(root, factory) {

dist/rzslider.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/specs/mouse-controls/single-slider-horizontal-test.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,26 @@
183183
helper.slider.callOnStart.called.should.be.true;
184184
helper.slider.callOnChange.called.should.be.true;
185185
});
186+
187+
it('should handle click on ticks when showTicks is an integer and move minH', function () {
188+
helper.scope.slider.options.step = 1;
189+
helper.scope.slider.options.showTicks = 10;
190+
helper.scope.$digest();
191+
sinon.spy(helper.slider, 'positionTrackingHandle');
192+
sinon.spy(helper.slider, 'callOnStart');
193+
sinon.spy(helper.slider, 'callOnChange');
194+
195+
var expectedValue = 10,
196+
offset = helper.slider.valueToOffset(expectedValue) + helper.slider.handleHalfDim + helper.slider.sliderElem.rzsp;
197+
198+
helper.fireMousedown(helper.slider.ticks, offset);
199+
200+
expect(helper.scope.slider.value).to.equal(expectedValue);
201+
expect(helper.slider.tracking).to.equal('rzSliderModel');
202+
helper.slider.positionTrackingHandle.called.should.be.true;
203+
helper.slider.callOnStart.called.should.be.true;
204+
helper.slider.callOnChange.called.should.be.true;
205+
});
186206
});
187207

188208
describe('Right to left Mouse controls - Single Horizontal', function() {
@@ -368,6 +388,25 @@
368388
helper.slider.callOnChange.called.should.be.true;
369389
});
370390

391+
it('should handle click on ticks when showTicks is an integer and move minH', function() {
392+
helper.scope.slider.options.step = 1;
393+
helper.scope.slider.options.showTicks = 10;
394+
helper.scope.$digest();
395+
sinon.spy(helper.slider, 'positionTrackingHandle');
396+
sinon.spy(helper.slider, 'callOnStart');
397+
sinon.spy(helper.slider, 'callOnChange');
398+
399+
var expectedValue = 10,
400+
offset = helper.slider.valueToOffset(expectedValue) + helper.slider.handleHalfDim + helper.slider.sliderElem.rzsp;
401+
402+
helper.fireMousedown(helper.slider.ticks, offset);
403+
404+
expect(helper.scope.slider.value).to.equal(expectedValue);
405+
expect(helper.slider.tracking).to.equal('rzSliderModel');
406+
helper.slider.positionTrackingHandle.called.should.be.true;
407+
helper.slider.callOnStart.called.should.be.true;
408+
helper.slider.callOnChange.called.should.be.true;
409+
});
371410
});
372411
}());
373412

tests/specs/mouse-controls/single-slider-vertical-test.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,26 @@
186186
helper.slider.callOnStart.called.should.be.true;
187187
helper.slider.callOnChange.called.should.be.true;
188188
});
189+
190+
it('should handle click on ticks when showTicks is an integer and move minH', function() {
191+
helper.scope.slider.options.step = 1;
192+
helper.scope.slider.options.showTicks = 10;
193+
helper.scope.$digest();
194+
sinon.spy(helper.slider, 'positionTrackingHandle');
195+
sinon.spy(helper.slider, 'callOnStart');
196+
sinon.spy(helper.slider, 'callOnChange');
197+
198+
var expectedValue = 10,
199+
offset = helper.slider.sliderElem.rzsp - helper.slider.valueToOffset(expectedValue) - helper.slider.handleHalfDim;
200+
201+
helper.fireMousedown(helper.slider.ticks, offset, true);
202+
203+
expect(helper.scope.slider.value).to.equal(expectedValue);
204+
expect(helper.slider.tracking).to.equal('rzSliderModel');
205+
helper.slider.positionTrackingHandle.called.should.be.true;
206+
helper.slider.callOnStart.called.should.be.true;
207+
helper.slider.callOnChange.called.should.be.true;
208+
});
189209
});
190210

191211
describe('Right to left Mouse controls - Single Vertical', function() {
@@ -374,6 +394,26 @@
374394
helper.slider.callOnStart.called.should.be.true;
375395
helper.slider.callOnChange.called.should.be.true;
376396
});
397+
398+
it('should handle click on ticks when showTicks is an integer and move minH', function() {
399+
helper.scope.slider.options.step = 1;
400+
helper.scope.slider.options.showTicks = 10;
401+
helper.scope.$digest();
402+
sinon.spy(helper.slider, 'positionTrackingHandle');
403+
sinon.spy(helper.slider, 'callOnStart');
404+
sinon.spy(helper.slider, 'callOnChange');
405+
406+
var expectedValue = 10,
407+
offset = helper.slider.sliderElem.rzsp - helper.slider.valueToOffset(expectedValue) - helper.slider.handleHalfDim;
408+
409+
helper.fireMousedown(helper.slider.ticks, offset, true);
410+
411+
expect(helper.scope.slider.value).to.equal(expectedValue);
412+
expect(helper.slider.tracking).to.equal('rzSliderModel');
413+
helper.slider.positionTrackingHandle.called.should.be.true;
414+
helper.slider.callOnStart.called.should.be.true;
415+
helper.slider.callOnChange.called.should.be.true;
416+
});
377417
});
378418

379419
}());

tests/specs/options-handling-test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,18 @@
660660
expect(helper.slider.scope.showTicks).to.be.true;
661661
});
662662

663+
it('should set the intermediateTicks flag to true when showTicks is an integer', function() {
664+
helper.scope.slider.options.showTicks = 10;
665+
helper.scope.$digest();
666+
expect(helper.slider.intermediateTicks).to.be.true;
667+
});
668+
669+
it('should set the intermediateTicks flag to true when showTicksValues is an integer', function() {
670+
helper.scope.slider.options.showTicksValues = 10;
671+
helper.scope.$digest();
672+
expect(helper.slider.intermediateTicks).to.be.true;
673+
});
674+
663675
it('should set not accept draggableRange to true when slider is a single one', function() {
664676
helper.scope.slider.options.draggableRange = true;
665677
helper.scope.$digest();

tests/specs/ticks-test.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@
4747
expect(helper.element[0].querySelectorAll('.rz-tick')).to.have.length(11);
4848
});
4949

50+
it('should create the correct number of ticks when showTicks is an integer', function() {
51+
var sliderConf = {
52+
value: 50,
53+
options: {
54+
floor: 0,
55+
ceil: 100,
56+
step: 10,
57+
showTicks: 20
58+
}
59+
};
60+
helper.createSlider(sliderConf);
61+
expect(helper.element[0].querySelectorAll('.rz-tick')).to.have.length(6);
62+
});
63+
5064
it('should create the correct number of ticks when showTicksValues is true', function() {
5165
var sliderConf = {
5266
value: 50,
@@ -66,6 +80,28 @@
6680
expect(secondTick.text()).to.equal('10');
6781
});
6882

83+
it('should create the correct number of ticks when showTicksValues is an integer', function() {
84+
var sliderConf = {
85+
value: 50,
86+
options: {
87+
floor: 0,
88+
ceil: 100,
89+
step: 10,
90+
showTicksValues: 20
91+
}
92+
};
93+
helper.createSlider(sliderConf);
94+
expect(helper.slider.ticks.hasClass('rz-ticks-values-under')).to.be.true;
95+
expect(helper.element[0].querySelectorAll('.rz-tick')).to.have.length(6);
96+
expect(helper.element[0].querySelectorAll('.rz-tick-value')).to.have.length(6);
97+
var firstTick = angular.element(helper.element[0].querySelectorAll('.rz-tick-value')[0]);
98+
expect(firstTick.text()).to.equal('0');
99+
var secondTick = angular.element(helper.element[0].querySelectorAll('.rz-tick-value')[1]);
100+
expect(secondTick.text()).to.equal('20');
101+
var lastTick = angular.element(helper.element[0].querySelectorAll('.rz-tick-value')[5]);
102+
expect(lastTick.text()).to.equal('100');
103+
});
104+
69105
it('should set rz-selected class to ticks below the model value if showSelectionBar is true', function() {
70106
var sliderConf = {
71107
value: 50,

0 commit comments

Comments
 (0)