diff options
| author | Jacob <[email protected]> | 2014-07-17 10:07:28 -0700 |
|---|---|---|
| committer | Jacob <[email protected]> | 2014-07-17 10:07:28 -0700 |
| commit | 866ffc4f37def3d505a10a161720dc0ef9420dea (patch) | |
| tree | 9b816df3656a8a3eb84a2916db625ed8f8894dec | |
| parent | 33156dc184902ef5f62ee56fa3a712d9e52442e7 (diff) | |
| parent | 9b90b8709956ed87543ec3679a81b7448c0bf20e (diff) | |
| download | bootstrap-866ffc4f37def3d505a10a161720dc0ef9420dea.tar.xz bootstrap-866ffc4f37def3d505a10a161720dc0ef9420dea.zip | |
Merge pull request #14055 from twbs/fat-speed-up-tests
speed up js tests a bit
| -rw-r--r-- | js/tests/unit/tooltip.js | 406 |
1 files changed, 203 insertions, 203 deletions
diff --git a/js/tests/unit/tooltip.js b/js/tests/unit/tooltip.js index 6871f538e..fb1940b2d 100644 --- a/js/tests/unit/tooltip.js +++ b/js/tests/unit/tooltip.js @@ -202,134 +202,6 @@ $(function () { .bootstrapTooltip('show') }) - test('should not show tooltip if leave event occurs before delay expires', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: 200 }) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '100ms: tooltip not faded in') - $tooltip.trigger('mouseout') - }, 100) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '300ms: tooltip not faded in') - start() - }, 300) - - $tooltip.trigger('mouseenter') - }) - - test('should not show tooltip if leave event occurs before delay expires, even if hide delay is 0', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: { show: 200, hide: 0 }}) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '100ms: tooltip not faded in') - $tooltip.trigger('mouseout') - }, 100) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '300ms: tooltip not faded in') - start() - }, 300) - - $tooltip.trigger('mouseenter') - }) - - test('should wait 200 ms before hiding the tooltip', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: { show: 0, hide: 200 }}) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '1ms: tooltip faded in') - $tooltip.trigger('mouseout') - }, 1) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '100ms: tooltip still faded in') - }, 100) - - setTimeout(function () { - ok(!$('.tooltip').is('.in'), '250ms: tooltip removed') - start() - }, 250) - - $tooltip.trigger('mouseenter') - }) - - test('should not hide tooltip if leave event occurs and enter event occurs within the hide delay', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: { show: 0, hide: 200 }}) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '1ms: tooltip faded in') - $tooltip.trigger('mouseout') - }, 1) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '100ms: tooltip still faded in') - $tooltip.trigger('mouseenter') - }, 100) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '250ms: tooltip still faded in') - start() - }, 250) - - $tooltip.trigger('mouseenter') - }) - - test('should not show tooltip if leave event occurs before delay expires', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: 100 }) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '50ms: tooltip not faded in') - $tooltip.trigger('mouseout') - }, 50) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '100ms: tooltip not faded in') - start() - }, 100) - - $tooltip.trigger('mouseenter') - }) - - test('should show tooltip if leave event hasn\'t occured before delay expires', function () { - stop() - - var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') - .appendTo('#qunit-fixture') - .bootstrapTooltip({ delay: 150 }) - - setTimeout(function () { - ok(!$('.tooltip').is('.fade.in'), '100ms: tooltip is not faded in') - }, 100) - - setTimeout(function () { - ok($('.tooltip').is('.fade.in'), '200ms: tooltip is faded in') - start() - }, 200) - - $tooltip.trigger('mouseenter') - }) - test('should destroy tooltip', function () { var $tooltip = $('<div/>') .bootstrapTooltip() @@ -395,76 +267,6 @@ $(function () { equal($('body > .tooltip').length, 0, 'tooltip was removed from dom') }) - test('should place tooltip inside viewport', function () { - stop() - - var $container = $('<div/>') - .css({ - position: 'absolute', - width: 200, - height: 200, - bottom: 0, - left: 0 - }) - .appendTo(document.body) - - $('<a href="#" title="Very very very very very very very very long tooltip">Hover me</a>') - .css({ - position: 'absolute', - top: 0, - left: 0 - }) - .appendTo($container) - .bootstrapTooltip({ - placement: 'top', - animate: false - }) - .bootstrapTooltip('show') - - setTimeout(function () { - ok($('.tooltip').offset().left >= 0) - $container.remove() - start() - }, 100) - }) - - test('should place tooltip on top of element', function () { - stop() - - var containerHTML = '<div>' - + '<p style="margin-top: 200px">' - + '<a href="#" title="very very very very very very very long tooltip">Hover me</a>' - + '</p>' - + '</div>' - var $container = $(containerHTML) - .css({ - position: 'absolute', - bottom: 0, - left: 0, - textAlign: 'right', - width: 300, - height: 300 - }) - .appendTo(document.body) - - var $trigger = $container - .find('a') - .css('margin-top', 200) - .bootstrapTooltip({ - placement: 'top', - animate: false - }) - .bootstrapTooltip('show') - - var $tooltip = $container.find('.tooltip') - - setTimeout(function () { - ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) <= Math.round($trigger.offset().top)) - $container.remove() - start() - }, 100) - }) - test('should add position class before positioning so that position-specific styles are taken into account', function () { var styles = '<style>' + '.tooltip.right { white-space: nowrap; }' @@ -472,7 +274,7 @@ $(function () { + '</style>' var $styles = $(styles).appendTo('head') - var $container = $('<div/>').appendTo(document.body) + var $container = $('<div/>').appendTo('#qunit-fixture') var $target = $('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"/>') .appendTo($container) .bootstrapTooltip({ @@ -587,7 +389,7 @@ $(function () { + '</style>' var $styles = $(styles).appendTo('head') - var $container = $('<div/>').appendTo(document.body) + var $container = $('<div/>').appendTo('#qunit-fixture') var $target = $('<a href="#" rel="tooltip" title="tip" style="top: 0px; left: 0px;"/>') .appendTo($container) .bootstrapTooltip({ @@ -604,7 +406,6 @@ $(function () { $target.bootstrapTooltip('hide') equal($('.tooltip').length, 0, 'tooltip removed from dom') - $container.remove() $styles.remove() }) @@ -615,7 +416,7 @@ $(function () { + '</style>' var $styles = $(styles).appendTo('head') - var $container = $('<div/>').appendTo(document.body) + var $container = $('<div/>').appendTo('#qunit-fixture') var $target = $('<a href="#" rel="tooltip" title="tip" style="bottom: 0px; left: 0px;"/>') .appendTo($container) .bootstrapTooltip({ @@ -644,7 +445,7 @@ $(function () { + '</style>' var $styles = $(styles).appendTo('head') - var $container = $('<div/>').appendTo(document.body) + var $container = $('<div/>').appendTo('#qunit-fixture') var $target = $('<a href="#" rel="tooltip" title="tip" style="top: 0px; left: 0px;"/>') .appendTo($container) .bootstrapTooltip({ @@ -739,4 +540,203 @@ $(function () { ok(passed, '.tooltip(\'show\') should not throw an error if element no longer is in dom') }) + + test('should place tooltip on top of element', function () { + stop() + + var containerHTML = '<div>' + + '<p style="margin-top: 200px">' + + '<a href="#" title="very very very very very very very long tooltip">Hover me</a>' + + '</p>' + + '</div>' + + var $container = $(containerHTML) + .css({ + position: 'absolute', + bottom: 0, + left: 0, + textAlign: 'right', + width: 300, + height: 300 + }) + .appendTo('#qunit-fixture') + + var $trigger = $container + .find('a') + .css('margin-top', 200) + .bootstrapTooltip({ + placement: 'top', + animate: false + }) + .bootstrapTooltip('show') + + var $tooltip = $container.find('.tooltip') + + setTimeout(function () { + ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) <= Math.round($trigger.offset().top)) + start() + }, 0) + }) + + test('should place tooltip inside viewport', function () { + stop() + + var $container = $('<div/>') + .css({ + position: 'absolute', + width: 200, + height: 200, + bottom: 0, + left: 0 + }) + .appendTo('#qunit-fixture') + + $('<a href="#" title="Very very very very very very very very long tooltip">Hover me</a>') + .css({ + position: 'absolute', + top: 0, + left: 0 + }) + .appendTo($container) + .bootstrapTooltip({ + placement: 'top' + }) + .bootstrapTooltip('show') + + setTimeout(function () { + ok($('.tooltip').offset().left >= 0) + start() + }, 0) + }) + + test('should show tooltip if leave event hasn\'t occured before delay expires', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: 15 }) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '10ms: tooltip is not faded in') + }, 10) + + setTimeout(function () { + ok($('.tooltip').is('.fade.in'), '20ms: tooltip is faded in') + start() + }, 20) + + $tooltip.trigger('mouseenter') + }) + + test('should not show tooltip if leave event occurs before delay expires', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: 15 }) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '10ms: tooltip not faded in') + $tooltip.trigger('mouseout') + }, 10) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '20ms: tooltip not faded in') + start() + }, 20) + + $tooltip.trigger('mouseenter') + }) + + test('should not hide tooltip if leave event occurs and enter event occurs within the hide delay', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: { show: 0, hide: 15 }}) + + setTimeout(function () { + ok($('.tooltip').is('.fade.in'), '1ms: tooltip faded in') + $tooltip.trigger('mouseout') + + setTimeout(function () { + ok($('.tooltip').is('.fade.in'), '10ms: tooltip still faded in') + $tooltip.trigger('mouseenter') + }, 10) + + setTimeout(function () { + ok($('.tooltip').is('.fade.in'), '20ms: tooltip still faded in') + start() + }, 20) + }, 0) + + $tooltip.trigger('mouseenter') + }) + + test('should not show tooltip if leave event occurs before delay expires', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: 15 }) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '10ms: tooltip not faded in') + $tooltip.trigger('mouseout') + }, 10) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '20ms: tooltip not faded in') + start() + }, 20) + + $tooltip.trigger('mouseenter') + }) + + test('should not show tooltip if leave event occurs before delay expires, even if hide delay is 0', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: { show: 15, hide: 0 }}) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '10ms: tooltip not faded in') + $tooltip.trigger('mouseout') + }, 10) + + setTimeout(function () { + ok(!$('.tooltip').is('.fade.in'), '25ms: tooltip not faded in') + start() + }, 25) + + $tooltip.trigger('mouseenter') + }) + + test('should wait 20ms before hiding the tooltip', function () { + stop() + + var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>') + .appendTo('#qunit-fixture') + .bootstrapTooltip({ delay: { show: 0, hide: 15 }}) + + setTimeout(function () { + ok($tooltip.data('bs.tooltip').$tip.is('.fade.in'), '1ms: tooltip faded in') + + $tooltip.trigger('mouseout') + + setTimeout(function () { + ok($tooltip.data('bs.tooltip').$tip.is('.fade.in'), '10ms: tooltip still faded in') + }, 10) + + setTimeout(function () { + ok(!$tooltip.data('bs.tooltip').$tip.is('.in'), '20ms: tooltip removed') + start() + }, 20) + + }, 0) + + $tooltip.trigger('mouseenter') + }) + }) |
