github.com/kayoticsully/syncthing@v0.8.9-0.20140724133906-c45a2fdc03f8/assets/bootstrap-3.1.1/js/tests/unit/modal.js (about)

     1  $(function () {
     2  
     3    module('modal')
     4  
     5      test('should provide no conflict', function () {
     6        var modal = $.fn.modal.noConflict()
     7        ok(!$.fn.modal, 'modal was set back to undefined (org value)')
     8        $.fn.modal = modal
     9      })
    10  
    11      test('should be defined on jquery object', function () {
    12        var div = $('<div id="modal-test"></div>')
    13        ok(div.modal, 'modal method is defined')
    14      })
    15  
    16      test('should return element', function () {
    17        var div = $('<div id="modal-test"></div>')
    18        ok(div.modal() == div, 'document.body returned')
    19        $('#modal-test').remove()
    20      })
    21  
    22      test('should expose defaults var for settings', function () {
    23        ok($.fn.modal.Constructor.DEFAULTS, 'default object exposed')
    24      })
    25  
    26      test('should insert into dom when show method is called', function () {
    27        stop()
    28        $.support.transition = false
    29        $('<div id="modal-test"></div>')
    30          .on('shown.bs.modal', function () {
    31            ok($('#modal-test').length, 'modal inserted into dom')
    32            $(this).remove()
    33            start()
    34          })
    35          .modal('show')
    36      })
    37  
    38      test('should fire show event', function () {
    39        stop()
    40        $.support.transition = false
    41        $('<div id="modal-test"></div>')
    42          .on('show.bs.modal', function () {
    43            ok(true, 'show was called')
    44          })
    45          .on('shown.bs.modal', function () {
    46            $(this).remove()
    47            start()
    48          })
    49          .modal('show')
    50      })
    51  
    52      test('should not fire shown when default prevented', function () {
    53        stop()
    54        $.support.transition = false
    55        $('<div id="modal-test"></div>')
    56          .on('show.bs.modal', function (e) {
    57            e.preventDefault()
    58            ok(true, 'show was called')
    59            start()
    60          })
    61          .on('shown.bs.modal', function () {
    62            ok(false, 'shown was called')
    63          })
    64          .modal('show')
    65      })
    66  
    67      test('should hide modal when hide is called', function () {
    68        stop()
    69        $.support.transition = false
    70  
    71        $('<div id="modal-test"></div>')
    72          .on('shown.bs.modal', function () {
    73            ok($('#modal-test').is(':visible'), 'modal visible')
    74            ok($('#modal-test').length, 'modal inserted into dom')
    75            $(this).modal('hide')
    76          })
    77          .on('hidden.bs.modal', function () {
    78            ok(!$('#modal-test').is(':visible'), 'modal hidden')
    79            $('#modal-test').remove()
    80            start()
    81          })
    82          .modal('show')
    83      })
    84  
    85      test('should toggle when toggle is called', function () {
    86        stop()
    87        $.support.transition = false
    88        var div = $('<div id="modal-test"></div>')
    89        div
    90          .on('shown.bs.modal', function () {
    91            ok($('#modal-test').is(':visible'), 'modal visible')
    92            ok($('#modal-test').length, 'modal inserted into dom')
    93            div.modal('toggle')
    94          })
    95          .on('hidden.bs.modal', function () {
    96            ok(!$('#modal-test').is(':visible'), 'modal hidden')
    97            div.remove()
    98            start()
    99          })
   100          .modal('toggle')
   101      })
   102  
   103      test('should remove from dom when click [data-dismiss=modal]', function () {
   104        stop()
   105        $.support.transition = false
   106        var div = $('<div id="modal-test"><span class="close" data-dismiss="modal"></span></div>')
   107        div
   108          .on('shown.bs.modal', function () {
   109            ok($('#modal-test').is(':visible'), 'modal visible')
   110            ok($('#modal-test').length, 'modal inserted into dom')
   111            div.find('.close').click()
   112          })
   113          .on('hidden.bs.modal', function () {
   114            ok(!$('#modal-test').is(':visible'), 'modal hidden')
   115            div.remove()
   116            start()
   117          })
   118          .modal('toggle')
   119      })
   120  
   121      test('should allow modal close with "backdrop:false"', function () {
   122        stop()
   123        $.support.transition = false
   124        var div = $('<div>', { id: 'modal-test', 'data-backdrop': false })
   125        div
   126          .on('shown.bs.modal', function () {
   127            ok($('#modal-test').is(':visible'), 'modal visible')
   128            div.modal('hide')
   129          })
   130          .on('hidden.bs.modal', function () {
   131            ok(!$('#modal-test').is(':visible'), 'modal hidden')
   132            div.remove()
   133            start()
   134          })
   135          .modal('show')
   136      })
   137  
   138      test('should close modal when clicking outside of modal-content', function () {
   139        stop()
   140        $.support.transition = false
   141        var div = $('<div id="modal-test"><div class="contents"></div></div>')
   142        div
   143          .bind('shown.bs.modal', function () {
   144            ok($('#modal-test').length, 'modal insterted into dom')
   145            $('.contents').click()
   146            ok($('#modal-test').is(':visible'), 'modal visible')
   147            $('#modal-test').click()
   148          })
   149          .bind('hidden.bs.modal', function () {
   150            ok(!$('#modal-test').is(':visible'), 'modal hidden')
   151            div.remove()
   152            start()
   153          })
   154          .modal('show')
   155      })
   156  
   157      test('should trigger hide event once when clicking outside of modal-content', function () {
   158        stop()
   159        $.support.transition = false
   160  
   161        var triggered
   162        var div = $('<div id="modal-test"><div class="contents"></div></div>')
   163  
   164        div
   165          .bind('shown.bs.modal', function () {
   166            triggered = 0
   167            $('#modal-test').click()
   168          })
   169          .bind('hide.bs.modal', function () {
   170            triggered += 1
   171            ok(triggered === 1, 'modal hide triggered once')
   172            start()
   173          })
   174          .modal('show')
   175      })
   176  
   177      test('should close reopened modal with [data-dismiss=modal] click', function () {
   178        stop()
   179        $.support.transition = false
   180        var div = $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"></div></div></div>')
   181        div
   182          .bind('shown.bs.modal', function () {
   183            $('#close').click()
   184            ok(!$('#modal-test').is(':visible'), 'modal hidden')
   185          })
   186          .one('hidden.bs.modal', function () {
   187            div.one('hidden.bs.modal', function () {
   188              start()
   189            }).modal('show')
   190          })
   191          .modal('show')
   192  
   193        div.remove()
   194      })
   195  })