2011-09-10 07:47:49 +02:00
$ ( function ( ) {
2016-11-21 15:36:00 +01:00
'use strict'
2011-09-10 07:47:49 +02:00
2015-05-06 22:34:14 +02:00
QUnit . module ( 'modal plugin' )
2014-02-13 08:55:12 +01:00
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should be defined on jquery object' , function ( assert ) {
assert . expect ( 1 )
assert . ok ( $ ( document . body ) . modal , 'modal method is defined' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . module ( 'modal' , {
beforeEach : function ( ) {
2014-04-22 07:03:33 +02:00
// Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
$ . fn . bootstrapModal = $ . fn . modal . noConflict ( )
} ,
2015-05-06 22:34:14 +02:00
afterEach : function ( ) {
2014-04-22 07:03:33 +02:00
$ . fn . modal = $ . fn . bootstrapModal
delete $ . fn . bootstrapModal
}
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should provide no conflict' , function ( assert ) {
assert . expect ( 1 )
assert . strictEqual ( $ . fn . modal , undefined , 'modal was set back to undefined (orig value)' )
2014-04-22 07:03:33 +02:00
} )
2015-09-16 10:35:29 +02:00
QUnit . test ( 'should throw explicit error on undefined method' , function ( assert ) {
assert . expect ( 1 )
var $el = $ ( '<div id="modal-test"/>' )
$el . bootstrapModal ( )
try {
$el . bootstrapModal ( 'noMethod' )
}
catch ( err ) {
assert . strictEqual ( err . message , 'No method named "noMethod"' )
}
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should return jquery collection containing the element' , function ( assert ) {
assert . expect ( 2 )
2014-06-18 21:34:21 +02:00
var $el = $ ( '<div id="modal-test"/>' )
var $modal = $el . bootstrapModal ( )
2015-05-06 22:34:14 +02:00
assert . ok ( $modal instanceof $ , 'returns jquery collection' )
assert . strictEqual ( $modal [ 0 ] , $el [ 0 ] , 'collection contains element' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should expose defaults var for settings' , function ( assert ) {
assert . expect ( 1 )
2015-05-11 04:45:38 +02:00
assert . ok ( $ . fn . bootstrapModal . Constructor . Default , 'default object exposed' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should insert into dom when show method is called' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . notEqual ( $ ( '#modal-test' ) . length , 0 , 'modal inserted into dom' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should fire show event' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'show.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( true , 'show event fired' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should not fire shown when show was prevented' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'show.bs.modal' , function ( e ) {
e . preventDefault ( )
2015-05-06 22:34:14 +02:00
assert . ok ( true , 'show event fired' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( false , 'shown event fired' )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should hide modal when hide is called' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-02-13 08:55:12 +01:00
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
assert . notEqual ( $ ( '#modal-test' ) . length , 0 , 'modal inserted into dom' )
2014-04-22 07:03:33 +02:00
$ ( this ) . bootstrapModal ( 'hide' )
2014-02-13 08:55:12 +01:00
} )
. on ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should toggle when toggle is called' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
assert . notEqual ( $ ( '#modal-test' ) . length , 0 , 'modal inserted into dom' )
2014-06-18 21:34:21 +02:00
$ ( this ) . bootstrapModal ( 'toggle' )
2014-02-13 08:55:12 +01:00
} )
. on ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'toggle' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should remove from dom when click [data-dismiss="modal"]' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"><span class="close" data-dismiss="modal"/></div>' )
2014-02-13 08:55:12 +01:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
assert . notEqual ( $ ( '#modal-test' ) . length , 0 , 'modal inserted into dom' )
$ ( this ) . find ( '.close' ) . trigger ( 'click' )
2014-02-13 08:55:12 +01:00
} )
. on ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'toggle' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should allow modal close with "backdrop:false"' , function ( assert ) {
assert . expect ( 2 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test" data-backdrop="false"/>' )
2014-02-13 08:55:12 +01:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
2014-06-18 21:34:21 +02:00
$ ( this ) . bootstrapModal ( 'hide' )
2014-02-13 08:55:12 +01:00
} )
. on ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should close modal when clicking outside of modal-content' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"><div class="contents"/></div>' )
2014-04-04 03:13:16 +02:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . notEqual ( $ ( '#modal-test' ) . length , 0 , 'modal inserted into dom' )
$ ( '.contents' ) . trigger ( 'click' )
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
$ ( '#modal-test' ) . trigger ( 'click' )
2014-02-13 08:55:12 +01:00
} )
2014-04-04 03:13:16 +02:00
. on ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2016-11-26 07:57:20 +01:00
QUnit . test ( 'should not close modal when clicking outside of modal-content if data-backdrop="true"' , function ( assert ) {
assert . expect ( 1 )
var done = assert . async ( )
$ ( '<div id="modal-test" data-backdrop="false"><div class="contents"/></div>' )
. on ( 'shown.bs.modal' , function ( ) {
$ ( '#modal-test' ) . trigger ( 'click' )
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal not hidden' )
done ( )
} )
. bootstrapModal ( 'show' )
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should close modal when escape key is pressed via keydown' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-07-01 05:50:31 +02:00
2015-05-06 22:34:14 +02:00
var $div = $ ( '<div id="modal-test"/>' )
$div
2014-07-01 05:50:31 +02:00
. on ( 'shown.bs.modal' , function ( ) {
2015-12-23 01:11:21 +01:00
assert . ok ( $ ( '#modal-test' ) . length , 'modal inserted into dom' )
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
$div . trigger ( $ . Event ( 'keydown' , { which : 27 } ) )
2014-07-01 05:50:31 +02:00
setTimeout ( function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
$div . remove ( )
2015-01-21 04:40:50 +01:00
done ( )
2014-07-01 05:50:31 +02:00
} , 0 )
} )
. bootstrapModal ( 'show' )
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should not close modal when escape key is pressed via keyup' , function ( assert ) {
assert . expect ( 3 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-07-01 05:50:31 +02:00
2015-05-06 22:34:14 +02:00
var $div = $ ( '<div id="modal-test"/>' )
$div
2014-07-01 05:50:31 +02:00
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( '#modal-test' ) . length , 'modal inserted into dom' )
assert . ok ( $ ( '#modal-test' ) . is ( ':visible' ) , 'modal visible' )
$div . trigger ( $ . Event ( 'keyup' , { which : 27 } ) )
2014-07-01 05:50:31 +02:00
setTimeout ( function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $div . is ( ':visible' ) , 'modal still visible' )
$div . remove ( )
2015-01-21 04:40:50 +01:00
done ( )
2014-07-01 05:50:31 +02:00
} , 0 )
} )
. bootstrapModal ( 'show' )
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should trigger hide event once when clicking outside of modal-content' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-02-13 08:55:12 +01:00
var triggered
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"><div class="contents"/></div>' )
2014-04-04 03:13:16 +02:00
. on ( 'shown.bs.modal' , function ( ) {
2014-02-13 08:55:12 +01:00
triggered = 0
2015-05-06 22:34:14 +02:00
$ ( '#modal-test' ) . trigger ( 'click' )
2014-02-13 08:55:12 +01:00
} )
2014-04-04 03:13:16 +02:00
. on ( 'hide.bs.modal' , function ( ) {
2014-02-13 08:55:12 +01:00
triggered += 1
2015-05-06 22:34:14 +02:00
assert . strictEqual ( triggered , 1 , 'modal hide triggered once' )
2015-01-21 04:40:50 +01:00
done ( )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2016-05-11 00:53:49 +02:00
QUnit . test ( 'should remove aria-hidden attribute when shown, add it back when hidden' , function ( assert ) {
assert . expect ( 3 )
var done = assert . async ( )
$ ( '<div id="modal-test" aria-hidden="true"/>' )
. on ( 'shown.bs.modal' , function ( ) {
assert . notOk ( $ ( '#modal-test' ) . is ( '[aria-hidden]' ) , 'aria-hidden attribute removed' )
$ ( this ) . bootstrapModal ( 'hide' )
} )
. on ( 'hidden.bs.modal' , function ( ) {
assert . ok ( $ ( '#modal-test' ) . is ( '[aria-hidden]' ) , 'aria-hidden attribute added' )
assert . strictEqual ( $ ( '#modal-test' ) . attr ( 'aria-hidden' ) , 'true' , 'correct aria-hidden="true" added' )
done ( )
} )
. bootstrapModal ( 'show' )
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should close reopened modal with [data-dismiss="modal"] click' , function ( assert ) {
assert . expect ( 2 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
$ ( '<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>' )
2015-01-21 05:18:33 +01:00
. one ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
$ ( '#close' ) . trigger ( 'click' )
2014-02-13 08:55:12 +01:00
} )
. one ( 'hidden.bs.modal' , function ( ) {
2015-01-21 05:18:33 +01:00
// after one open-close cycle
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2014-06-18 21:34:21 +02:00
$ ( this )
2015-01-21 05:18:33 +01:00
. one ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
$ ( '#close' ) . trigger ( 'click' )
2015-01-21 05:18:33 +01:00
} )
2014-06-18 21:34:21 +02:00
. one ( 'hidden.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( ! $ ( '#modal-test' ) . is ( ':visible' ) , 'modal hidden' )
2015-01-21 04:40:50 +01:00
done ( )
2014-06-18 21:34:21 +02:00
} )
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2014-04-22 07:03:33 +02:00
. bootstrapModal ( 'show' )
2014-02-13 08:55:12 +01:00
} )
2014-05-19 10:25:52 +02:00
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should restore focus to toggling element when modal is hidden after having been opened via data-api' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
var $toggleBtn = $ ( '<button data-toggle="modal" data-target="#modal-test"/>' ) . appendTo ( '#qunit-fixture' )
$ ( '<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>' )
2014-05-19 10:25:52 +02:00
. on ( 'hidden.bs.modal' , function ( ) {
2014-06-18 21:34:21 +02:00
setTimeout ( function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( document . activeElement ) . is ( $toggleBtn ) , 'toggling element is once again focused' )
2015-01-21 04:40:50 +01:00
done ( )
2014-05-19 10:25:52 +02:00
} , 0 )
} )
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
$ ( '#close' ) . trigger ( 'click' )
2014-05-19 10:25:52 +02:00
} )
. appendTo ( '#qunit-fixture' )
2014-06-18 21:34:21 +02:00
2015-05-06 22:34:14 +02:00
$toggleBtn . trigger ( 'click' )
2014-05-19 10:25:52 +02:00
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should not restore focus to toggling element if the associated show event gets prevented' , function ( assert ) {
assert . expect ( 1 )
2015-01-21 04:40:50 +01:00
var done = assert . async ( )
2014-06-18 21:34:21 +02:00
var $toggleBtn = $ ( '<button data-toggle="modal" data-target="#modal-test"/>' ) . appendTo ( '#qunit-fixture' )
var $otherBtn = $ ( '<button id="other-btn"/>' ) . appendTo ( '#qunit-fixture' )
$ ( '<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div>' )
2014-05-19 10:25:52 +02:00
. one ( 'show.bs.modal' , function ( e ) {
e . preventDefault ( )
2015-05-06 22:34:14 +02:00
$otherBtn . trigger ( 'focus' )
2014-06-18 21:34:21 +02:00
setTimeout ( $ . proxy ( function ( ) {
$ ( this ) . bootstrapModal ( 'show' )
} , this ) , 0 )
2014-05-19 10:25:52 +02:00
} )
. on ( 'hidden.bs.modal' , function ( ) {
2014-06-18 21:34:21 +02:00
setTimeout ( function ( ) {
2015-05-06 22:34:14 +02:00
assert . ok ( $ ( document . activeElement ) . is ( $otherBtn ) , 'focus returned to toggling element' )
2015-01-21 04:40:50 +01:00
done ( )
2014-05-19 10:25:52 +02:00
} , 0 )
} )
. on ( 'shown.bs.modal' , function ( ) {
2015-05-06 22:34:14 +02:00
$ ( '#close' ) . trigger ( 'click' )
2014-05-19 10:25:52 +02:00
} )
. appendTo ( '#qunit-fixture' )
2014-06-18 21:34:21 +02:00
2015-05-06 22:34:14 +02:00
$toggleBtn . trigger ( 'click' )
} )
QUnit . test ( 'should restore inline body padding after closing' , function ( assert ) {
assert . expect ( 2 )
var done = assert . async ( )
var originalBodyPad = 0
var $body = $ ( document . body )
$body . css ( 'padding-right' , originalBodyPad )
$ ( '<div id="modal-test"/>' )
. on ( 'hidden.bs.modal' , function ( ) {
var currentBodyPad = parseInt ( $body . css ( 'padding-right' ) , 10 )
assert . notStrictEqual ( $body . attr ( 'style' ) , '' , 'body has non-empty style attribute' )
assert . strictEqual ( currentBodyPad , originalBodyPad , 'original body padding was not changed' )
$body . removeAttr ( 'style' )
done ( )
} )
. on ( 'shown.bs.modal' , function ( ) {
$ ( this ) . bootstrapModal ( 'hide' )
} )
. bootstrapModal ( 'show' )
} )
QUnit . test ( 'should ignore values set via CSS when trying to restore body padding after closing' , function ( assert ) {
assert . expect ( 1 )
var done = assert . async ( )
var $body = $ ( document . body )
var $style = $ ( '<style>body { padding-right: 42px; }</style>' ) . appendTo ( 'head' )
$ ( '<div id="modal-test"/>' )
. on ( 'hidden.bs.modal' , function ( ) {
assert . ok ( ! $body . attr ( 'style' ) , 'body does not have inline padding set' )
$style . remove ( )
done ( )
} )
. on ( 'shown.bs.modal' , function ( ) {
$ ( this ) . bootstrapModal ( 'hide' )
} )
. bootstrapModal ( 'show' )
} )
2015-09-09 09:26:14 +02:00
QUnit . test ( 'should have a paddingRight when the modal is taller than the viewport' , function ( assert ) {
assert . expect ( 2 )
var done = assert . async ( )
2017-01-02 20:52:38 +01:00
$ ( '<div class="fixed-top fixed-bottom sticky-top is-fixed">@Johann-S</div>' ) . appendTo ( '#qunit-fixture' )
$ ( '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' ) . css ( 'padding-right' , '10px' )
2015-09-09 09:26:14 +02:00
$ ( '<div id="modal-test"/>' )
. on ( 'shown.bs.modal' , function ( ) {
var paddingRight = parseInt ( $ ( document . body ) . css ( 'padding-right' ) , 10 )
assert . strictEqual ( isNaN ( paddingRight ) , false )
assert . strictEqual ( paddingRight !== 0 , true )
2016-11-21 15:36:00 +01:00
$ ( document . body ) . css ( 'padding-right' , '' ) // Because test case "should ignore other inline styles when trying to restore body padding after closing" fail if not
2015-09-09 09:26:14 +02:00
done ( )
} )
. bootstrapModal ( 'show' )
} )
QUnit . test ( 'should remove padding-right on modal after closing' , function ( assert ) {
assert . expect ( 3 )
var done = assert . async ( )
2017-01-02 20:52:38 +01:00
$ ( '<div class="fixed-top fixed-bottom is-fixed sticky-top">@Johann-S</div>' ) . appendTo ( '#qunit-fixture' )
$ ( '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' ) . css ( 'padding-right' , '10px' )
2015-09-09 09:26:14 +02:00
$ ( '<div id="modal-test"/>' )
. on ( 'shown.bs.modal' , function ( ) {
var paddingRight = parseInt ( $ ( document . body ) . css ( 'padding-right' ) , 10 )
assert . strictEqual ( isNaN ( paddingRight ) , false )
assert . strictEqual ( paddingRight !== 0 , true )
$ ( this ) . bootstrapModal ( 'hide' )
} )
. on ( 'hidden.bs.modal' , function ( ) {
var paddingRight = parseInt ( $ ( document . body ) . css ( 'padding-right' ) , 10 )
assert . strictEqual ( paddingRight , 0 )
done ( )
} )
. bootstrapModal ( 'show' )
} )
2015-05-06 22:34:14 +02:00
QUnit . test ( 'should ignore other inline styles when trying to restore body padding after closing' , function ( assert ) {
assert . expect ( 2 )
var done = assert . async ( )
var $body = $ ( document . body )
var $style = $ ( '<style>body { padding-right: 42px; }</style>' ) . appendTo ( 'head' )
$body . css ( 'color' , 'red' )
$ ( '<div id="modal-test"/>' )
. on ( 'hidden.bs.modal' , function ( ) {
assert . strictEqual ( $body [ 0 ] . style . paddingRight , '' , 'body does not have inline padding set' )
assert . strictEqual ( $body [ 0 ] . style . color , 'red' , 'body still has other inline styles set' )
$body . removeAttr ( 'style' )
$style . remove ( )
done ( )
} )
. on ( 'shown.bs.modal' , function ( ) {
$ ( this ) . bootstrapModal ( 'hide' )
} )
. bootstrapModal ( 'show' )
} )
QUnit . test ( 'should properly restore non-pixel inline body padding after closing' , function ( assert ) {
assert . expect ( 1 )
var done = assert . async ( )
var $body = $ ( document . body )
$body . css ( 'padding-right' , '5%' )
$ ( '<div id="modal-test"/>' )
. on ( 'hidden.bs.modal' , function ( ) {
assert . strictEqual ( $body [ 0 ] . style . paddingRight , '5%' , 'body does not have inline padding set' )
$body . removeAttr ( 'style' )
done ( )
} )
. on ( 'shown.bs.modal' , function ( ) {
$ ( this ) . bootstrapModal ( 'hide' )
} )
. bootstrapModal ( 'show' )
2014-05-19 10:25:52 +02:00
} )
2016-08-04 22:47:30 +02:00
QUnit . test ( 'should not follow link in area tag' , function ( assert ) {
assert . expect ( 2 )
var done = assert . async ( )
$ ( '<map><area id="test" shape="default" data-toggle="modal" data-target="#modal-test" href="demo.html"/></map>' )
. appendTo ( '#qunit-fixture' )
$ ( '<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>' )
. appendTo ( '#qunit-fixture' )
$ ( '#test' )
. on ( 'click.bs.modal.data-api' , function ( event ) {
assert . notOk ( event . isDefaultPrevented ( ) , 'navigating to href will happen' )
setTimeout ( function ( ) {
assert . ok ( event . isDefaultPrevented ( ) , 'model shown instead of navigating to href' )
done ( )
} , 1 )
} )
. trigger ( 'click' )
} )
2013-04-23 09:34:27 +02:00
} )