diff --git a/bootstrap-3.0.0/js/tests/unit/modal.js b/bootstrap-3.0.0/js/tests/unit/modal.js new file mode 100644 index 0000000000000000000000000000000000000000..5755d2751143d11f3321e00c9584543c1f59cbd4 --- /dev/null +++ b/bootstrap-3.0.0/js/tests/unit/modal.js @@ -0,0 +1,196 @@ +$(function () { + + module("modal") + + test("should provide no conflict", function () { + var modal = $.fn.modal.noConflict() + ok(!$.fn.modal, 'modal was set back to undefined (org value)') + $.fn.modal = modal + }) + + test("should be defined on jquery object", function () { + var div = $("") + ok(div.modal, 'modal method is defined') + }) + + test("should return element", function () { + var div = $("") + ok(div.modal() == div, 'document.body returned') + $('#modal-test').remove() + }) + + test("should expose defaults var for settings", function () { + ok($.fn.modal.Constructor.DEFAULTS, 'default object exposed') + }) + + test("should insert into dom when show method is called", function () { + stop() + $.support.transition = false + $("") + .on("shown.bs.modal", function () { + ok($('#modal-test').length, 'modal inserted into dom') + $(this).remove() + start() + }) + .modal("show") + }) + + test("should fire show event", function () { + stop() + $.support.transition = false + $("") + .on("show.bs.modal", function () { + ok(true, "show was called") + }) + .on("shown.bs.modal", function () { + $(this).remove() + start() + }) + .modal("show") + }) + + test("should not fire shown when default prevented", function () { + stop() + $.support.transition = false + $("") + .on("show.bs.modal", function (e) { + e.preventDefault() + ok(true, "show was called") + start() + }) + .on("shown.bs.modal", function () { + ok(false, "shown was called") + }) + .modal("show") + }) + + test("should hide modal when hide is called", function () { + stop() + $.support.transition = false + + $("") + .on("shown.bs.modal", function () { + ok($('#modal-test').is(":visible"), 'modal visible') + ok($('#modal-test').length, 'modal inserted into dom') + $(this).modal("hide") + }) + .on("hidden.bs.modal", function() { + ok(!$('#modal-test').is(":visible"), 'modal hidden') + $('#modal-test').remove() + start() + }) + .modal("show") + }) + + test("should toggle when toggle is called", function () { + stop() + $.support.transition = false + var div = $("") + div + .on("shown.bs.modal", function () { + ok($('#modal-test').is(":visible"), 'modal visible') + ok($('#modal-test').length, 'modal inserted into dom') + div.modal("toggle") + }) + .on("hidden.bs.modal", function() { + ok(!$('#modal-test').is(":visible"), 'modal hidden') + div.remove() + start() + }) + .modal("toggle") + }) + + test("should remove from dom when click [data-dismiss=modal]", function () { + stop() + $.support.transition = false + var div = $("") + div + .on("shown.bs.modal", function () { + ok($('#modal-test').is(":visible"), 'modal visible') + ok($('#modal-test').length, 'modal inserted into dom') + div.find('.close').click() + }) + .on("hidden.bs.modal", function() { + ok(!$('#modal-test').is(":visible"), 'modal hidden') + div.remove() + start() + }) + .modal("toggle") + }) + + test("should allow modal close with 'backdrop:false'", function () { + stop() + $.support.transition = false + var div = $("
", { id: 'modal-test', "data-backdrop": false }) + div + .on("shown.bs.modal", function () { + ok($('#modal-test').is(":visible"), 'modal visible') + div.modal("hide") + }) + .on("hidden.bs.modal", function() { + ok(!$('#modal-test').is(":visible"), 'modal hidden') + div.remove() + start() + }) + .modal("show") + }) + + test("should close modal when clicking outside of modal-content", function () { + stop() + $.support.transition = false + var div = $("") + div + .bind("shown.bs.modal", function () { + ok($('#modal-test').length, 'modal insterted into dom') + $('.contents').click() + ok($('#modal-test').is(":visible"), 'modal visible') + $('#modal-test').click() + }) + .bind("hidden.bs.modal", function() { + ok(!$('#modal-test').is(":visible"), 'modal hidden') + div.remove() + start() + }) + .modal("show") + }) + + test("should trigger hide event once when clicking outside of modal-content", function () { + stop() + $.support.transition = false + var div = $("") + var triggered + div + .bind("shown.bs.modal", function () { + triggered = 0 + $('#modal-test').click() + }) + .one("hidden.bs.modal", function() { + div.modal("show") + }) + .bind("hide.bs.modal", function () { + triggered += 1 + ok(triggered === 1, 'modal hide triggered once') + start() + }) + .modal("show") + }) + + test("should close reopened modal with [data-dismiss=modal] click", function () { + stop() + $.support.transition = false + var div = $("") + div + .bind("shown.bs.modal", function () { + $('#close').click() + ok(!$('#modal-test').is(":visible"), 'modal hidden') + }) + .one("hidden.bs.modal", function() { + div.one('hidden.bs.modal', function () { + start() + }).modal("show") + }) + .modal("show") + + div.remove() + }) +})