describe("Namespace Tests", function() { var sourceJS = "temp/bootstrap-slider.js"; var defaultNamespace = 'slider'; var alternateNamespace = 'bootstrapSlider'; it("should always set the plugin namespace to 'bootstrapSlider'", function(done) { $.getScript(sourceJS, function() { expect($.fn.bootstrapSlider).toBeDefined(); done(); }); }); it("should set the plugin namespace to 'slider' if the namespace is available", function(done) { $.getScript(sourceJS, function() { expect($.fn.slider).toBeDefined(); done(); }); }); it("should print a console warning if the 'slider' namespace is already bound", function(done) { $.fn.slider = function() {}; spyOn(window.console, "warn"); $.getScript(sourceJS, function() { var expectedWarningMessage = "bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead."; expect(window.console.warn).toHaveBeenCalledWith(expectedWarningMessage); done(); }); }); it("Should not create instance when 'slider' namespace is in use", function(done) { $.fn.slider = function() {}; // Overwrite temporarily $.getScript(sourceJS, function() { var $testSlider = $('#testSlider1').bootstrapSlider(); var sliderInst = $testSlider.data(defaultNamespace); expect(sliderInst).toBeUndefined(); $testSlider.bootstrapSlider('destroy'); done(); }); }); it("Should create instance associated with the alternate 'bootstrapSlider' namespace", function(done) { $.fn.slider = function() {}; $.getScript(sourceJS, function() { var $testSlider = $('#testSlider1').bootstrapSlider(); var sliderInst = $testSlider.data(alternateNamespace); expect(sliderInst).toBeTruthy(); $testSlider.bootstrapSlider('destroy'); done(); }); }); afterEach(function(done) { /* Set the namespaces back to undefined and reload slider So that namespace is returned to $.fn.slider */ $.fn.bootstrapSlider = undefined; $.fn.slider = undefined; $.getScript(sourceJS, function() { done(); }); }); });