modal.js 6.00 KiB
$(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 = $("<div id='modal-test'></div>")
      ok(div.modal, 'modal method is defined')
    test("should return element", function () {
      var div = $("<div id='modal-test'></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
      $("<div id='modal-test'></div>")
        .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
      $("<div id='modal-test'></div>")
        .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
      $("<div id='modal-test'></div>")
        .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
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
$("<div id='modal-test'></div>") .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 id='modal-test'></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 id='modal-test'><span class='close' data-dismiss='modal'></span></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 = $("<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
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
var div = $("<div id='modal-test'><div class='contents'></div></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 = $("<div id='modal-test'><div class='contents'></div></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 id='modal-test'><div class='contents'><div id='close' data-dismiss='modal'></div></div></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() }) })