$(function () { 'use strict'; module('button plugin') test('should be defined on jquery object', function () { ok($(document.body).button, 'button method is defined') }) module('button', { setup: function () { // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode $.fn.bootstrapButton = $.fn.button.noConflict() }, teardown: function () { $.fn.button = $.fn.bootstrapButton delete $.fn.bootstrapButton } }) test('should provide no conflict', function () { ok(!$.fn.button, 'button was set back to undefined (org value)') }) test('should return element', function () { ok($(document.body).bootstrapButton()[0] == document.body, 'document.body returned') }) test('should return set state to loading', function () { var btn = $('') equal(btn.html(), 'mdo', 'btn text equals mdo') btn.bootstrapButton('loading') equal(btn.html(), 'fat', 'btn text equals fat') stop() setTimeout(function () { ok(btn.attr('disabled'), 'btn is disabled') ok(btn.hasClass('disabled'), 'btn has disabled class') start() }, 0) }) test('should return reset state', function () { var btn = $('') equal(btn.html(), 'mdo', 'btn text equals mdo') btn.bootstrapButton('loading') equal(btn.html(), 'fat', 'btn text equals fat') stop() setTimeout(function () { ok(btn.attr('disabled'), 'btn is disabled') ok(btn.hasClass('disabled'), 'btn has disabled class') start() stop() btn.bootstrapButton('reset') equal(btn.html(), 'mdo', 'btn text equals mdo') setTimeout(function () { ok(!btn.attr('disabled'), 'btn is not disabled') ok(!btn.hasClass('disabled'), 'btn does not have disabled class') start() }, 0) }, 0) }) test('should work with an empty string as reset state', function () { var btn = $('') equal(btn.html(), '', 'btn text equals ""') btn.bootstrapButton('loading') equal(btn.html(), 'fat', 'btn text equals fat') stop() setTimeout(function () { ok(btn.attr('disabled'), 'btn is disabled') ok(btn.hasClass('disabled'), 'btn has disabled class') start() stop() btn.bootstrapButton('reset') equal(btn.html(), '', 'btn text equals ""') setTimeout(function () { ok(!btn.attr('disabled'), 'btn is not disabled') ok(!btn.hasClass('disabled'), 'btn does not have disabled class') start() }, 0) }, 0) }) test('should toggle active', function () { var btn = $('') ok(!btn.hasClass('active'), 'btn does not have active class') btn.bootstrapButton('toggle') ok(btn.hasClass('active'), 'btn has class active') }) test('should toggle active when btn children are clicked', function () { var btn = $('') var inner = $('') btn .append(inner) .appendTo($('#qunit-fixture')) ok(!btn.hasClass('active'), 'btn does not have active class') inner.click() ok(btn.hasClass('active'), 'btn has class active') }) test('should toggle active when btn children are clicked within btn-group', function () { var btngroup = $('
') var btn = $('') var inner = $('') btngroup .append(btn.append(inner)) .appendTo($('#qunit-fixture')) ok(!btn.hasClass('active'), 'btn does not have active class') inner.click() ok(btn.hasClass('active'), 'btn has class active') }) test('should check for closest matching toggle', function () { var group = '