(function() { describe("Bootstrap Switch:", function() { var createCheckbox, createRadio, getOptions; beforeEach(function() { $.support.transition = false; return $.fx.off = true; }); afterEach(function() { return $("." + $.fn.bootstrapSwitch.defaults.baseClass).bootstrapSwitch("destroy"); }); createCheckbox = function() { return $("", { type: "checkbox", "class": "switch" }).appendTo("body"); }; createRadio = function() { return $("", { type: "radio", name: "name", "class": "switch" }).appendTo("body"); }; getOptions = function($element) { return $element.data("bootstrap-switch").options; }; it("should set the default options as element options, except state", function() { var $switch; $switch = createCheckbox().prop("checked", true).bootstrapSwitch(); return expect(getOptions($switch)).toEqual($.fn.bootstrapSwitch.defaults); }); it("should override default options with initialization ones", function() { var $switch, $switch2; $switch = createCheckbox().prop("checked", false).bootstrapSwitch(); $switch2 = createCheckbox().bootstrapSwitch({ state: false }); expect(getOptions($switch).state).toBe(false); return expect(getOptions($switch2).state).toBe(false); }); it("should something", function() { var $switch, eventDoc, eventElement; eventDoc = eventElement = 0; $switch = createCheckbox().bootstrapSwitch(); $(document).on("switchChange.bootstrapSwitch", ":checkbox", function(event, state) { return eventDoc++; }); $(":checkbox").on("switchChange.bootstrapSwitch", function(event, state) { return eventElement++; }); $switch.click(); expect(eventElement).toEqual(eventDoc); return expect(eventElement).toEqual(1); }); describe("The Checkbox Bootstrap Switch", function() { it("should conserve its state if onSwitchChange returns false", function() { var $indeterminateSwitch, $switch; $switch = createCheckbox().bootstrapSwitch({ onSwitchChange: function(e, s) { expect(s).toEqual(true); return false; } }); $indeterminateSwitch = createCheckbox().data("indeterminate", true).bootstrapSwitch({ onSwitchChange: function(e, s) { expect(s).toEqual(true); return false; } }); $switch.click(); $indeterminateSwitch.click(); expect($switch.bootstrapSwitch('state')).toEqual(false); return expect($indeterminateSwitch.bootstrapSwitch('state')).toEqual(false); }); return it("should change its state if onSwitchChange not returns false", function() { var $switch; $switch = createCheckbox().bootstrapSwitch({ onSwitchChange: function(e, s) { return expect(s).toEqual(true); } }); $switch.click(); return expect($switch.bootstrapSwitch('state')).toEqual(true); }); }); return describe("The Radio Bootstrap Switch", function() { it("should conserve its state if onSwitchChange returns false", function() { var $radio1, $radio2, $radio3; $radio1 = createRadio().prop("checked", true); $radio2 = createRadio().prop("checked", false); $radio3 = createRadio().prop("checked", false); $('[name="name"]').bootstrapSwitch({ onSwitchChange: function(e, s) { expect(s).toEqual(true); return false; } }); $radio2.click(); expect($radio1.bootstrapSwitch('state')).toEqual(true); expect($radio2.bootstrapSwitch('state')).toEqual(false); return expect($radio3.bootstrapSwitch('state')).toEqual(false); }); return it("should change its state if onSwitchChange not returns false", function() { var $radio1, $radio2, $radio3; $radio1 = createRadio().prop("checked", true); $radio2 = createRadio().prop("checked", false); $radio3 = createRadio().prop("checked", false); $('[name="name"]').bootstrapSwitch({ onSwitchChange: function(e, s) { return expect(s).toEqual(true); } }); $radio2.click(); expect($radio1.bootstrapSwitch('state')).toEqual(false); expect($radio2.bootstrapSwitch('state')).toEqual(true); return expect($radio3.bootstrapSwitch('state')).toEqual(false); }); }); }); }).call(this);