describe("TickMaxValueNotATickBehavior", function() { var SLIDER_ID = "testSlider1"; var slider; var options; describe('max value should be reached', function() { beforeEach(function() { options = { min: 40, max: 1310, step: 5, scale: "logarithmic", value: 44 }; slider = new Slider(document.getElementById(SLIDER_ID), options); }); it("Value should contain max value when slider is moved to outer right position", function() { var sliderLeft = slider.sliderElem.offsetLeft; var offsetY = slider.sliderElem.offsetTop; // I think the + 10 work because it is half of the handle size; var offsetX = sliderLeft + slider.sliderElem.clientWidth + 10; var expectedValue = slider.options.max; var mouseEvent = getMouseDownEvent(offsetX, offsetY); slider.mousedown(mouseEvent); // FIXME: Use 'mouseup' event type slider.mouseup(mouseEvent); expect(slider.getValue()).toBe(expectedValue); }); }); afterEach(function() { slider.destroy(); }); // helper functions 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; } });