forked from OpenPDU/openpdu
first mockup in go
This commit is contained in:
108
static/bower_components/seiyria-bootstrap-slider/test/specs/TickClickingBehaviorSpec.js
vendored
Normal file
108
static/bower_components/seiyria-bootstrap-slider/test/specs/TickClickingBehaviorSpec.js
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
describe("TickClickingBehavior", function() {
|
||||
var SLIDER_ID = "testSlider1";
|
||||
var slider;
|
||||
var options;
|
||||
|
||||
describe('ticks start with 0', function() {
|
||||
beforeEach(function() {
|
||||
options = {
|
||||
ticks: [0, 1, 2, 3, 4],
|
||||
ticks_positions: [0, 25, 50, 75, 100],
|
||||
step: 1,
|
||||
value: 4
|
||||
};
|
||||
|
||||
slider = new Slider(document.getElementById(SLIDER_ID), options);
|
||||
});
|
||||
|
||||
it("Should set slider to corresponding value when ticks are clicked", function() {
|
||||
for (var i = 0; i < options.ticks.length; i++) {
|
||||
clickTickAtIndexAndVerify(slider, i);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('ticks start with positive value', function() {
|
||||
beforeEach(function() {
|
||||
options = {
|
||||
ticks: [1, 2, 3, 4, 5],
|
||||
ticks_positions: [0, 25, 50, 75, 100],
|
||||
step: 1,
|
||||
value: 5
|
||||
};
|
||||
|
||||
slider = new Slider(document.getElementById(SLIDER_ID), options);
|
||||
});
|
||||
|
||||
it("Should set slider to corresponding value when ticks are clicked", function() {
|
||||
for (var i = 0; i < options.ticks.length; i++) {
|
||||
clickTickAtIndexAndVerify(slider, i);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('ticks start with negative value', function() {
|
||||
beforeEach(function() {
|
||||
options = {
|
||||
ticks: [-5, -4, -3, -2, -1],
|
||||
ticks_positions: [0, 25, 50, 75, 100],
|
||||
step: 1,
|
||||
value: -1
|
||||
};
|
||||
|
||||
slider = new Slider(document.getElementById(SLIDER_ID), options);
|
||||
});
|
||||
|
||||
it("Should set slider to corresponding value when ticks are clicked", function() {
|
||||
for (var i = 0; i < options.ticks.length; i++) {
|
||||
clickTickAtIndexAndVerify(slider, i);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function() { slider.destroy(); });
|
||||
|
||||
// helper functions
|
||||
function clickTickAtIndexAndVerify(slider, tickIndex) {
|
||||
var sliderLeft = slider.sliderElem.offsetLeft;
|
||||
var tickLeft = slider.ticks[tickIndex].offsetLeft;
|
||||
var handleHalfWidth = $('.slider-handle.round').width() / 2;
|
||||
|
||||
var offsetX = sliderLeft + tickLeft + handleHalfWidth;
|
||||
var offsetY = slider.sliderElem.offsetTop;
|
||||
|
||||
var mouseEvent = getMouseDownEvent(offsetX, offsetY);
|
||||
|
||||
slider.mousedown(mouseEvent);
|
||||
// FIXME: Use 'mouseup' event type
|
||||
slider.mouseup(mouseEvent);
|
||||
|
||||
var expectedValue = slider.options.ticks[tickIndex];
|
||||
expect(slider.getValue()).toBe(expectedValue);
|
||||
}
|
||||
|
||||
function getMouseDownEvent(offsetXToClick, offsetYToClick) {
|
||||
var args = [
|
||||
'mousedown', // type
|
||||
true, // canBubble
|
||||
true, // cancelable
|
||||
document, // view,
|
||||
0, // detail
|
||||
0, // screenX
|
||||
0, // screenY
|
||||
offsetXToClick, // clientX
|
||||
offsetYToClick, // clientY,
|
||||
false, // ctrlKey
|
||||
false, // altKey
|
||||
false, // shiftKey
|
||||
false, // metaKey,
|
||||
0, // button
|
||||
null // relatedTarget
|
||||
];
|
||||
|
||||
var event = document.createEvent('MouseEvents');
|
||||
event.initMouseEvent.apply(event, args);
|
||||
|
||||
return event;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user