@@ -376,23 +376,19 @@ $(function () {
376
376
assert . strictEqual ( $ ( '.tooltip' ) . length , 0 , 'tooltip removed from dom' )
377
377
} )
378
378
379
- QUnit . test ( 'should be placed dynamically with the dynamic placement option' , function ( assert ) {
379
+ QUnit . test ( 'should be placed dynamically to viewport with the dynamic placement option' , function ( assert ) {
380
380
assert . expect ( 6 )
381
- var $style = $ ( '<style> a [rel="tooltip"] { display: inline-block; position: absolute; } </style>' )
381
+ var $style = $ ( '<style> div [rel="tooltip"] { position: absolute; } #qunit-fixture { top: inherit; left: inherit } </style>' ) . appendTo ( 'head ')
382
382
var $container = $ ( '<div/>' )
383
383
. css ( {
384
- position : 'absolute' ,
385
- overflow : 'hidden' ,
386
- width : 600 ,
387
- height : 400 ,
388
- top : 0 ,
389
- left : 0
384
+ position : 'relative' ,
385
+ height : '100%'
390
386
} )
391
- . appendTo ( document . body )
387
+ . appendTo ( '#qunit-fixture' )
392
388
393
389
var $topTooltip = $ ( '<div style="left: 0; top: 0;" rel="tooltip" title="Top tooltip">Top Dynamic Tooltip</div>' )
394
390
. appendTo ( $container )
395
- . bootstrapTooltip ( { placement : 'auto' } )
391
+ . bootstrapTooltip ( { placement : 'auto' , viewport : '#qunit-fixture' } )
396
392
397
393
$topTooltip . bootstrapTooltip ( 'show' )
398
394
assert . ok ( $ ( '.tooltip' ) . is ( '.bottom' ) , 'top positioned tooltip is dynamically positioned to bottom' )
@@ -402,7 +398,7 @@ $(function () {
402
398
403
399
var $rightTooltip = $ ( '<div style="right: 0;" rel="tooltip" title="Right tooltip">Right Dynamic Tooltip</div>' )
404
400
. appendTo ( $container )
405
- . bootstrapTooltip ( { placement : 'right auto' } )
401
+ . bootstrapTooltip ( { placement : 'right auto' , viewport : '#qunit-fixture' } )
406
402
407
403
$rightTooltip . bootstrapTooltip ( 'show' )
408
404
assert . ok ( $ ( '.tooltip' ) . is ( '.left' ) , 'right positioned tooltip is dynamically positioned left' )
@@ -412,7 +408,7 @@ $(function () {
412
408
413
409
var $leftTooltip = $ ( '<div style="left: 0;" rel="tooltip" title="Left tooltip">Left Dynamic Tooltip</div>' )
414
410
. appendTo ( $container )
415
- . bootstrapTooltip ( { placement : 'auto left' } )
411
+ . bootstrapTooltip ( { placement : 'auto left' , viewport : '#qunit-fixture' } )
416
412
417
413
$leftTooltip . bootstrapTooltip ( 'show' )
418
414
assert . ok ( $ ( '.tooltip' ) . is ( '.right' ) , 'left positioned tooltip is dynamically positioned right' )
@@ -450,6 +446,31 @@ $(function () {
450
446
$styles . remove ( )
451
447
} )
452
448
449
+ QUnit . test ( 'should position tip on top if viewport has enough space and is not parent' , function ( assert ) {
450
+ assert . expect ( 2 )
451
+ var styles = '<style>'
452
+ + '#section { height: 300px; border: 1px solid red; margin-top: 100px; }'
453
+ + 'div[rel="tooltip"] { width: 150px; border: 1px solid blue; }'
454
+ + '</style>'
455
+ var $styles = $ ( styles ) . appendTo ( 'head' )
456
+
457
+ var $container = $ ( '<div id="section"/>' ) . appendTo ( '#qunit-fixture' )
458
+ var $target = $ ( '<div rel="tooltip" title="tip"/>' )
459
+ . appendTo ( $container )
460
+ . bootstrapTooltip ( {
461
+ placement : 'auto top' ,
462
+ viewport : '#qunit-fixture'
463
+ } )
464
+
465
+ $target . bootstrapTooltip ( 'show' )
466
+ assert . ok ( $ ( '.tooltip' ) . is ( '.top' ) , 'top positioned tooltip is dynamically positioned to top' )
467
+
468
+ $target . bootstrapTooltip ( 'hide' )
469
+ assert . strictEqual ( $ ( '.tooltip' ) . length , 0 , 'tooltip removed from dom' )
470
+
471
+ $styles . remove ( )
472
+ } )
473
+
453
474
QUnit . test ( 'should position tip on bottom if the tip\'s dimension exceeds the viewport area and placement is "auto top"' , function ( assert ) {
454
475
assert . expect ( 2 )
455
476
var styles = '<style>'
0 commit comments