diff --git a/js/tests/unit/tooltip.js b/js/tests/unit/tooltip.js
index 57a59db183..21d2641951 100644
--- a/js/tests/unit/tooltip.js
+++ b/js/tests/unit/tooltip.js
@@ -362,23 +362,19 @@ $(function () {
assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
})
- QUnit.test('should be placed dynamically with the dynamic placement option', function (assert) {
+ QUnit.test('should be placed dynamically to viewport with the dynamic placement option', function (assert) {
assert.expect(6)
- var $style = $('')
+ var $style = $('').appendTo('head')
var $container = $('
')
.css({
- position: 'absolute',
- overflow: 'hidden',
- width: 600,
- height: 400,
- top: 0,
- left: 0
+ position: 'relative',
+ height: '100%'
})
- .appendTo(document.body)
+ .appendTo('#qunit-fixture')
var $topTooltip = $('Top Dynamic Tooltip
')
.appendTo($container)
- .bootstrapTooltip({ placement: 'auto' })
+ .bootstrapTooltip({ placement: 'auto', viewport: '#qunit-fixture' })
$topTooltip.bootstrapTooltip('show')
assert.ok($('.tooltip').is('.bottom'), 'top positioned tooltip is dynamically positioned to bottom')
@@ -388,7 +384,7 @@ $(function () {
var $rightTooltip = $('Right Dynamic Tooltip
')
.appendTo($container)
- .bootstrapTooltip({ placement: 'right auto' })
+ .bootstrapTooltip({ placement: 'right auto', viewport: '#qunit-fixture' })
$rightTooltip.bootstrapTooltip('show')
assert.ok($('.tooltip').is('.left'), 'right positioned tooltip is dynamically positioned left')
@@ -398,7 +394,7 @@ $(function () {
var $leftTooltip = $('Left Dynamic Tooltip
')
.appendTo($container)
- .bootstrapTooltip({ placement: 'auto left' })
+ .bootstrapTooltip({ placement: 'auto left', viewport: '#qunit-fixture' })
$leftTooltip.bootstrapTooltip('show')
assert.ok($('.tooltip').is('.right'), 'left positioned tooltip is dynamically positioned right')
@@ -436,6 +432,31 @@ $(function () {
$styles.remove()
})
+ QUnit.test('should position tip on top if viewport has enough space and is not parent', function (assert) {
+ assert.expect(2)
+ var styles = ''
+ var $styles = $(styles).appendTo('head')
+
+ var $container = $('').appendTo('#qunit-fixture')
+ var $target = $('')
+ .appendTo($container)
+ .bootstrapTooltip({
+ placement: 'auto top',
+ viewport: '#qunit-fixture'
+ })
+
+ $target.bootstrapTooltip('show')
+ assert.ok($('.tooltip').is('.top'), 'top positioned tooltip is dynamically positioned to top')
+
+ $target.bootstrapTooltip('hide')
+ assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
+
+ $styles.remove()
+ })
+
QUnit.test('should position tip on bottom if the tip\'s dimension exceeds the viewport area and placement is "auto top"', function (assert) {
assert.expect(2)
var styles = '