334 lines
11 KiB
JavaScript
Executable File
334 lines
11 KiB
JavaScript
Executable File
describe("'destroy()' Method tests", function() {
|
|
var testSlider;
|
|
|
|
it("removes the extra DOM elements associated with a slider", function() {
|
|
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider"
|
|
});
|
|
|
|
testSlider.destroy();
|
|
|
|
var sliderParentElement = $("#testSlider1").parent('div.slider').length;
|
|
var sliderChildrenElements = $("#testSlider1").siblings('div.slider-track, div.tooltip').length;
|
|
|
|
expect(sliderParentElement).toBe(0);
|
|
expect(sliderChildrenElements).toBe(0);
|
|
});
|
|
|
|
describe("unbinds all slider events", function() {
|
|
var flag, evtName;
|
|
|
|
beforeEach(function() {
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider"
|
|
});
|
|
flag = false;
|
|
});
|
|
|
|
it("unbinds from 'slideStart' event", function() {
|
|
evtName = 'slideStart';
|
|
$("#destroyMethodTestSlider").on(evtName, function() {
|
|
flag = true;
|
|
});
|
|
testSlider.destroy();
|
|
$("#destroyMethodTestSlider").trigger(evtName);
|
|
expect(flag).toBeFalsy();
|
|
});
|
|
|
|
it("unbinds from 'slide' event", function() {
|
|
evtName = 'slide';
|
|
$("#destroyMethodTestSlider").on(evtName, function() {
|
|
flag = true;
|
|
});
|
|
testSlider.destroy();
|
|
$("#destroyMethodTestSlider").trigger(evtName);
|
|
expect(flag).toBeFalsy();
|
|
});
|
|
|
|
it("unbinds from 'slideStop' event", function() {
|
|
evtName = 'slideStop';
|
|
$("#destroyMethodTestSlider").on(evtName, function() {
|
|
flag = true;
|
|
});
|
|
testSlider.destroy();
|
|
$("#destroyMethodTestSlider").trigger(evtName);
|
|
expect(flag).toBeFalsy();
|
|
});
|
|
|
|
it("unbinds from 'slideChange' event", function() {
|
|
evtName = 'slideChange';
|
|
$("#destroyMethodTestSlider").on(evtName, function() {
|
|
flag = true;
|
|
});
|
|
testSlider.destroy();
|
|
$("#destroyMethodTestSlider").trigger(evtName);
|
|
expect(flag).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
describe("DOM event listener removal tests", function() {
|
|
describe("When tooltips are always hidden for single value sliders", function() {
|
|
beforeEach(function() {
|
|
// Create slider
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider",
|
|
tooltip: "hide"
|
|
});
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseenter' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseenter", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseleave' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseleave", undefined, false);
|
|
});
|
|
});
|
|
|
|
describe("When tooltips are always shown for single value sliders", function() {
|
|
beforeEach(function() {
|
|
// Create slider
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider",
|
|
tooltip: "always"
|
|
});
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle1 when tooltip is always shown for single handle sliders", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle1 when tooltip is always shown for single handle sliders", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseenter' event listener from slider is always shown for single handle slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("mouseenter", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseleave' event listener from slider is always shown for single handle slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseleave", undefined, false);
|
|
});
|
|
});
|
|
|
|
describe("When tooltips are always hidden for range sliders", function() {
|
|
beforeEach(function() {
|
|
// Create slider
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider",
|
|
tooltip: "always",
|
|
value: [2,5]
|
|
});
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle2", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle2, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle2.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle2", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle2, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle2.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseenter' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseenter", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseleave' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseleave", undefined, false);
|
|
});
|
|
});
|
|
|
|
describe("When tooltips are always shown for range sliders", function() {
|
|
beforeEach(function() {
|
|
// Create slider
|
|
testSlider = new Slider("#testSlider1", {
|
|
id: "destroyMethodTestSlider",
|
|
tooltip: "always",
|
|
value: [2,5]
|
|
});
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'focus' event listener from handle2", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle2, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle2.removeEventListener).not.toHaveBeenCalledWith("focus", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle1", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle1, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle1.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'blur' event listener from handle1 and handle2", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.handle2, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.handle2.removeEventListener).not.toHaveBeenCalledWith("blur", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseenter' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseenter", undefined, false);
|
|
});
|
|
|
|
it("does not try to remove 'mouseleave' event listener from slider", function() {
|
|
// Set up spy on 'removeEventListener'
|
|
spyOn(testSlider.sliderElem, "removeEventListener");
|
|
|
|
// Destroy slider
|
|
testSlider.destroy();
|
|
|
|
// Assert
|
|
expect(testSlider.sliderElem.removeEventListener).not.toHaveBeenCalledWith("mouseleave", undefined, false);
|
|
});
|
|
});
|
|
});
|
|
|
|
}); |