diff --git a/bootstrap-3.0.0/js/tests/unit/collapse.js b/bootstrap-3.0.0/js/tests/unit/collapse.js new file mode 100644 index 0000000000000000000000000000000000000000..11b2cf83839c5a2ba319d2cafe1d7fbf409925ad --- /dev/null +++ b/bootstrap-3.0.0/js/tests/unit/collapse.js @@ -0,0 +1,164 @@ +$(function () { + + module("collapse") + + test("should provide no conflict", function () { + var collapse = $.fn.collapse.noConflict() + ok(!$.fn.collapse, 'collapse was set back to undefined (org value)') + $.fn.collapse = collapse + }) + + test("should be defined on jquery object", function () { + ok($(document.body).collapse, 'collapse method is defined') + }) + + test("should return element", function () { + ok($(document.body).collapse()[0] == document.body, 'document.body returned') + }) + + test("should show a collapsed element", function () { + var el = $('
').collapse('show') + ok(el.hasClass('in'), 'has class in') + ok(/height/.test(el.attr('style')), 'has height set') + }) + + test("should hide a collapsed element", function () { + var el = $('
').collapse('hide') + ok(!el.hasClass('in'), 'does not have class in') + ok(/height/.test(el.attr('style')), 'has height set') + }) + + test("should not fire shown when show is prevented", function () { + $.support.transition = false + stop() + $('
') + .on('show.bs.collapse', function (e) { + e.preventDefault(); + ok(true); + start(); + }) + .on('shown.bs.collapse', function () { + ok(false); + }) + .collapse('show') + }) + + test("should reset style to auto after finishing opening collapse", function () { + $.support.transition = false + stop() + $('
') + .on('show.bs.collapse', function () { + ok(this.style.height == '0px') + }) + .on('shown.bs.collapse', function () { + ok(this.style.height == 'auto') + start() + }) + .collapse('show') + }) + + test("should add active class to target when collapse shown", function () { + $.support.transition = false + stop() + + var target = $('') + .appendTo($('#qunit-fixture')) + + var collapsible = $('
') + .appendTo($('#qunit-fixture')) + .on('show.bs.collapse', function () { + ok(!target.hasClass('collapsed')) + start() + }) + + target.click() + }) + + test("should remove active class to target when collapse hidden", function () { + $.support.transition = false + stop() + + var target = $('') + .appendTo($('#qunit-fixture')) + + var collapsible = $('
') + .appendTo($('#qunit-fixture')) + .on('hide.bs.collapse', function () { + ok(target.hasClass('collapsed')) + start() + }) + + target.click() + }) + + test("should remove active class from inactive accordion targets", function () { + $.support.transition = false + stop() + + var accordion = $('
') + .appendTo($('#qunit-fixture')) + + var target1 = $('') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var collapsible1 = $('
') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var target2 = $('') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var collapsible2 = $('
') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var target3 = $('') + .appendTo(accordion.find('.accordion-group').eq(2)) + + var collapsible3 = $('
') + .appendTo(accordion.find('.accordion-group').eq(2)) + .on('show.bs.collapse', function () { + ok(target1.hasClass('collapsed')) + ok(target2.hasClass('collapsed')) + ok(!target3.hasClass('collapsed')) + + start() + }) + + target3.click() + }) + + test("should allow dots in data-parent", function () { + $.support.transition = false + stop() + + var accordion = $('
') + .appendTo($('#qunit-fixture')) + + var target1 = $('') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var collapsible1 = $('
') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var target2 = $('') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var collapsible2 = $('
') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var target3 = $('') + .appendTo(accordion.find('.accordion-group').eq(2)) + + var collapsible3 = $('
') + .appendTo(accordion.find('.accordion-group').eq(2)) + .on('show.bs.collapse', function () { + ok(target1.hasClass('collapsed')) + ok(target2.hasClass('collapsed')) + ok(!target3.hasClass('collapsed')) + + start() + }) + + target3.click() + }) + +})