From 7627b24c1e6aa5301ee3f525dd931c2852e7ff0a Mon Sep 17 00:00:00 2001 From: breaddevil Date: Sun, 4 May 2014 11:24:31 +0200 Subject: replace js scrollspy test for default behavior --- js/tests/unit/scrollspy.js | 54 +++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 17 deletions(-) (limited to 'js/tests') diff --git a/js/tests/unit/scrollspy.js b/js/tests/unit/scrollspy.js index 90c95d769..a36749f2e 100644 --- a/js/tests/unit/scrollspy.js +++ b/js/tests/unit/scrollspy.js @@ -25,23 +25,6 @@ $(function () { ok($(document.body).bootstrapScrollspy()[0] == document.body, 'document.body returned') }) - test('should switch active class on scroll', function () { - var sectionHTML = '
', - topbarHTML = '
' + - '
' + - '
' + - '

Bootstrap

' + - '
  • Overview
  • ' + - '' + - '
    ' + - '
    ' + - '
    ', - $topbar = $(topbarHTML).bootstrapScrollspy() - - $(sectionHTML).append('#qunit-fixture') - ok($topbar.find('.active', true)) - }) - test('should only switch active class on current target', function () { var sectionHTML = '
    ' + '
    ' + @@ -78,4 +61,41 @@ $(function () { $scrollSpy.scrollTop(350); ok($section.hasClass('active'), 'Active class still on root node') }) + + test('should add the active class to the correct element', function () { + var navbarHtml = + '' + var contentHtml = + '
    ' + + '
    div 1
    ' + + '
    div 2
    ' + + '
    ' + + $(navbarHtml).appendTo('#qunit-fixture') + var $content = $(contentHtml) + .appendTo('#qunit-fixture') + .bootstrapScrollspy({offset: 0, target: '.navbar'}) + + var testElementIsActiveAfterScroll = function (element, target) { + var deferred = $.Deferred() + var scrollHeight = $content.scrollTop() + $(target).position().top + stop() + $content.one('scroll', function () { + ok($(element).hasClass('active'), 'target:' + target + ', element' + element) + start() + deferred.resolve() + }) + $content.scrollTop(scrollHeight) + return deferred.promise() + } + + $.when(testElementIsActiveAfterScroll('#li-1', '#div-1')) + .then(function () { return testElementIsActiveAfterScroll('#li-2', '#div-2') }) + }) + }) -- cgit v1.2.3 From 282f8fc04b3f138b2676a8e345883bd00f8f7599 Mon Sep 17 00:00:00 2001 From: Heinrich Fenkart Date: Fri, 13 Jun 2014 14:07:34 +0200 Subject: Add a few more cases to the visual test tab page --- js/tests/visual/tab.html | 109 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 105 insertions(+), 4 deletions(-) (limited to 'js/tests') diff --git a/js/tests/visual/tab.html b/js/tests/visual/tab.html index 37921afec..28757df6e 100644 --- a/js/tests/visual/tab.html +++ b/js/tests/visual/tab.html @@ -4,6 +4,9 @@ Tab ') - - var container = $('
    ').appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'right', viewport: null }) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + var styles = '' + var $styles = $(styles).appendTo(document.head) + + var $container = $('
    ').appendTo(document.body) + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'right', + viewport: null + }) + .bootstrapTooltip('show') + var $tooltip = $container.find('.tooltip') // this is some dumb hack shit because sub pixels in firefox - var top = Math.round(target.offset().top + (target[0].offsetHeight / 2) - (tooltip[0].offsetHeight / 2)) - var top2 = Math.round(tooltip.offset().top) + var top = Math.round($target.offset().top + ($target[0].offsetHeight / 2) - ($tooltip[0].offsetHeight / 2)) + var top2 = Math.round($tooltip.offset().top) var topDiff = top - top2 ok(topDiff <= 1 && topDiff >= -1) - target.bootstrapTooltip('hide') - $('head #test').remove() + $target.bootstrapTooltip('hide') + + $container.remove() + $styles.remove() }) - test('tooltip title test #1', function () { - var tooltip = $('') + test('should use title attribute for tooltip text', function () { + var $tooltip = $('') .appendTo('#qunit-fixture') - .bootstrapTooltip({}) - .bootstrapTooltip('show') + .bootstrapTooltip() + + $tooltip.bootstrapTooltip('show') equal($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title from title attribute is set') - tooltip.bootstrapTooltip('hide') - ok(!$('.tooltip').length, 'tooltip removed') + + $tooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') }) - test('tooltip title test #2', function () { - var tooltip = $('') + test('should prefer title attribute over title option', function () { + var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ title: 'This is a tooltip with some content' }) - .bootstrapTooltip('show') + + $tooltip.bootstrapTooltip('show') equal($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title is set from title attribute while prefered over title option') - tooltip.bootstrapTooltip('hide') - ok(!$('.tooltip').length, 'tooltip removed') + + $tooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') }) - test('tooltip title test #3', function () { - var tooltip = $('') + test('should use title option', function () { + var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ title: 'This is a tooltip with some content' }) - .bootstrapTooltip('show') + + $tooltip.bootstrapTooltip('show') equal($('.tooltip').children('.tooltip-inner').text(), 'This is a tooltip with some content', 'title from title option is set') - tooltip.bootstrapTooltip('hide') - ok(!$('.tooltip').length, 'tooltip removed') - }) - - test('tooltips should be placed dynamically, with the dynamic placement option', function () { - $.support.transition = false - var ttContainer = $('
    ').css({ - height: 400, - overflow: 'hidden', - position: 'absolute', - top: 0, - left: 0, - width: 600 - }) - .appendTo('body') - - var topTooltip = $('
    Top Dynamic Tooltip
    ') - .appendTo('#dynamic-tt-test') + + $tooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') + }) + + test('should be placed dynamically with the dynamic placement option', function () { + var $style = $('') + var $container = $('
    ') + .css({ + position: 'absolute', + overflow: 'hidden', + width: 600, + height: 400, + top: 0, + left: 0 + }) + .appendTo(document.body) + + var $topTooltip = $('
    Top Dynamic Tooltip
    ') + .appendTo($container) .bootstrapTooltip({ placement: 'auto' }) - .bootstrapTooltip('show') - ok($('.tooltip').is('.bottom'), 'top positioned tooltip is dynamically positioned bottom') + $topTooltip.bootstrapTooltip('show') + ok($('.tooltip').is('.bottom'), 'top positioned tooltip is dynamically positioned to bottom') - topTooltip.bootstrapTooltip('hide') + $topTooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'top positioned tooltip removed from dom') - var rightTooltip = $('
    Right Dynamic Tooltip
    ') - .appendTo('#dynamic-tt-test') + var $rightTooltip = $('
    Right Dynamic Tooltip
    ') + .appendTo($container) .bootstrapTooltip({ placement: 'right auto' }) - .bootstrapTooltip('show') + $rightTooltip.bootstrapTooltip('show') ok($('.tooltip').is('.left'), 'right positioned tooltip is dynamically positioned left') - rightTooltip.bootstrapTooltip('hide') - var leftTooltip = $('
    Left Dynamic Tooltip
    ') - .appendTo('#dynamic-tt-test') + $rightTooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'right positioned tooltip removed from dom') + + var $leftTooltip = $('
    Left Dynamic Tooltip
    ') + .appendTo($container) .bootstrapTooltip({ placement: 'auto left' }) - .bootstrapTooltip('show') + $leftTooltip.bootstrapTooltip('show') ok($('.tooltip').is('.right'), 'left positioned tooltip is dynamically positioned right') - leftTooltip.bootstrapTooltip('hide') - ttContainer.remove() + $leftTooltip.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'left positioned tooltip removed from dom') + + $container.remove() + $style.remove() }) - test('should adjust the tip\'s top when up against the top of the viewport', function () { - $('head').append('') + test('should adjust the tip\'s top position when up against the top of the viewport', function () { + var styles = '' + var $styles = $(styles).appendTo(document.head) + + var $container = $('
    ').appendTo(document.body) + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'right', + viewport: { + selector: 'body', + padding: 12 + } + }) + + $target.bootstrapTooltip('show') + equal(Math.round($container.find('.tooltip').offset().top), 12) - var container = $('
    ').appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }}) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + $target.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') - ok(Math.round(tooltip.offset().top) === 12) - target.bootstrapTooltip('hide') - $('head #test').remove() + $container.remove() + $styles.remove() }) - test('should adjust the tip\'s top when up against the bottom of the viewport', function () { - $('head').append('') + test('should adjust the tip\'s top position when up against the bottom of the viewport', function () { + var styles = '' + var $styles = $(styles).appendTo(document.head) + + var $container = $('
    ').appendTo(document.body) + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'right', + viewport: { + selector: 'body', + padding: 12 + } + }) - var container = $('
    ').appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'right', viewport: { selector: 'body', padding: 12 }}) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + $target.bootstrapTooltip('show') + var $tooltip = $container.find('.tooltip') + strictEqual(Math.round($tooltip.offset().top), Math.round($(window).height() - 12 - $tooltip[0].offsetHeight)) - ok(Math.round(tooltip.offset().top) === Math.round($(window).height() - 12 - tooltip[0].offsetHeight)) - target.bootstrapTooltip('hide') - $('head #test').remove() + $target.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') + + $container.remove() + $styles.remove() }) - test('should adjust the tip\'s left when up against the left of the viewport', function () { - $('head').append('') + test('should adjust the tip\'s left position when up against the left of the viewport', function () { + var styles = '' + var $styles = $(styles).appendTo(document.head) + + var $container = $('
    ').appendTo(document.body) + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'bottom', + viewport: { + selector: 'body', + padding: 12 + } + }) + + $target.bootstrapTooltip('show') + strictEqual(Math.round($container.find('.tooltip').offset().left), 12) - var container = $('
    ').appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }}) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + $target.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') - ok(Math.round(tooltip.offset().left) === 12) - target.bootstrapTooltip('hide') - $('head #test').remove() + $container.remove() + $styles.remove() }) - test('should adjust the tip\'s left when up against the right of the viewport', function () { - $('head').append('') + test('should adjust the tip\'s left position when up against the right of the viewport', function () { + var styles = '' + var $styles = $(styles).appendTo(document.head) - var container = $('
    ').appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'bottom', viewport: { selector: 'body', padding: 12 }}) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + var $container = $('
    ').appendTo('body') + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'bottom', + viewport: { + selector: 'body', + padding: 12 + } + }) + + $target.bootstrapTooltip('show') + var $tooltip = $container.find('.tooltip') + strictEqual(Math.round($tooltip.offset().left), Math.round($(window).width() - 12 - $tooltip[0].offsetWidth)) - ok(Math.round(tooltip.offset().left) === Math.round($(window).width() - 12 - tooltip[0].offsetWidth)) - target.bootstrapTooltip('hide') - $('head #test').remove() + $target.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') + + $container.remove() + $styles.remove() }) test('should adjust the tip when up against the right of an arbitrary viewport', function () { - $('head').append('') - $('head').append('') + var styles = '' + var $styles = $(styles).appendTo(document.head) + + var $container = $('
    ').appendTo(document.body) + var $target = $('') + .appendTo($container) + .bootstrapTooltip({ + placement: 'bottom', + viewport: '.container-viewport' + }) + + $target.bootstrapTooltip('show') + var $tooltip = $container.find('.tooltip') + strictEqual(Math.round($tooltip.offset().left), Math.round(60 + $container.width() - $tooltip[0].offsetWidth)) - var container = $('
    ', { 'class': 'container-viewport' }).appendTo('body') - var target = $('') - .appendTo(container) - .bootstrapTooltip({ placement: 'bottom', viewport: '.container-viewport' }) - .bootstrapTooltip('show') - var tooltip = container.find('.tooltip') + $target.bootstrapTooltip('hide') + equal($('.tooltip').length, 0, 'tooltip removed from dom') - ok(Math.round(tooltip.offset().left) === Math.round(60 + container.width() - tooltip[0].offsetWidth)) - target.bootstrapTooltip('hide') - $('head #test').remove() - $('head #viewport-style').remove() + $container.remove() + $styles.remove() }) test('should not error when trying to show an auto-placed tooltip that has been removed from the dom', function () { - var tooltip = $('').appendTo('#qunit-fixture') - - tooltip + var passed = true + var $tooltip = $('') + .appendTo('#qunit-fixture') .one('show.bs.tooltip', function () { - tooltip.remove() + $(this).remove() }) .bootstrapTooltip({ placement: 'auto' }) - var passed = true try { - tooltip.bootstrapTooltip('show') - } - catch (err) { + $tooltip.bootstrapTooltip('show') + } catch (err) { passed = false console.log(err) } - ok(passed, '.tooltip(\'show\') should not throw an error in this case') - try { - tooltip.remove() - } - catch (err) { - // tooltip may have already been removed - } + ok(passed, '.tooltip(\'show\') should not throw an error if element no longer is in dom') }) }) -- cgit v1.2.3 From 8ff099585f5aaf3330c6a8d15f513075c03c433a Mon Sep 17 00:00:00 2001 From: Heinrich Fenkart Date: Sun, 6 Jul 2014 09:23:09 +0200 Subject: Mention #13500 in comment for ScrollSpy test --- js/tests/unit/scrollspy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/tests') diff --git a/js/tests/unit/scrollspy.js b/js/tests/unit/scrollspy.js index 98c1d6396..3cfde85f7 100644 --- a/js/tests/unit/scrollspy.js +++ b/js/tests/unit/scrollspy.js @@ -29,7 +29,7 @@ $(function () { strictEqual($scrollspy[0], $el[0], 'collection contains element') }) - // FIXME + // Does not work properly ATM, #13500 will fix this test('should switch "active" class on scroll', function () { var topbarHTML = '
    ' + '
    ' + -- cgit v1.2.3 From dad56be96c5bbecf331c279e82db1dc6211616d2 Mon Sep 17 00:00:00 2001 From: Heinrich Fenkart Date: Sun, 6 Jul 2014 09:23:41 +0200 Subject: Move to 16ms from 18ms based on the Paul Irish's rAF polyfill --- js/tests/unit/affix.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/tests') diff --git a/js/tests/unit/affix.js b/js/tests/unit/affix.js index f93dd62d2..67a49bf6a 100644 --- a/js/tests/unit/affix.js +++ b/js/tests/unit/affix.js @@ -65,7 +65,7 @@ $(function () { setTimeout(function () { window.scroll(0, 0) - }, 18) // for testing in a browser + }, 16) // for testing in a browser }, 0) }) }) -- cgit v1.2.3 From 58eb8b2ae39baeb37514e5bf5ffcaf2a7c221202 Mon Sep 17 00:00:00 2001 From: Heinrich Fenkart Date: Sun, 6 Jul 2014 11:56:12 +0200 Subject: Move to leading pluses --- js/tests/unit/affix.js | 14 +- js/tests/unit/alert.js | 16 +- js/tests/unit/button.js | 22 +-- js/tests/unit/carousel.js | 396 ++++++++++++++++++++++----------------------- js/tests/unit/collapse.js | 20 +-- js/tests/unit/dropdown.js | 186 ++++++++++----------- js/tests/unit/scrollspy.js | 96 +++++------ js/tests/unit/tab.js | 32 ++-- js/tests/unit/tooltip.js | 60 +++---- 9 files changed, 421 insertions(+), 421 deletions(-) (limited to 'js/tests') diff --git a/js/tests/unit/affix.js b/js/tests/unit/affix.js index 67a49bf6a..ef6ef74b9 100644 --- a/js/tests/unit/affix.js +++ b/js/tests/unit/affix.js @@ -38,13 +38,13 @@ $(function () { test('should trigger affixed event after affix', function () { stop() - var templateHTML = '
    ' + - '
      ' + - '
    • Please affix
    • ' + - '
    • And unaffix
    • ' + - '
    ' + - '
    ' + - '
    ' + var templateHTML = '
    ' + + '
      ' + + '
    • Please affix
    • ' + + '
    • And unaffix
    • ' + + '
    ' + + '
    ' + + '
    ' $(templateHTML).appendTo(document.body) $('#affixTarget').bootstrapAffix({ diff --git a/js/tests/unit/alert.js b/js/tests/unit/alert.js index 9e5f9a12e..52505c828 100644 --- a/js/tests/unit/alert.js +++ b/js/tests/unit/alert.js @@ -30,10 +30,10 @@ $(function () { }) test('should fade element out on clicking .close', function () { - var alertHTML = '
    ' + - '×' + - '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' + - '
    ' + var alertHTML = '
    ' + + '×' + + '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' + + '
    ' var $alert = $(alertHTML).bootstrapAlert() $alert.find('.close').click() @@ -42,10 +42,10 @@ $(function () { }) test('should remove element when clicking .close', function () { - var alertHTML = '
    ' + - '×' + - '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' + - '
    ' + var alertHTML = '
    ' + + '×' + + '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' + + '
    ' var $alert = $(alertHTML).appendTo('#qunit-fixture').bootstrapAlert() notEqual($('#qunit-fixture').find('.alert-message').length, 0, 'element added to dom') diff --git a/js/tests/unit/button.js b/js/tests/unit/button.js index 04457010e..bd431d546 100644 --- a/js/tests/unit/button.js +++ b/js/tests/unit/button.js @@ -115,17 +115,17 @@ $(function () { }) test('should check for closest matching toggle', function () { - var groupHTML = '
    ' + - '' + - '' + - '' + - '
    ' + var groupHTML = '
    ' + + '' + + '' + + '' + + '
    ' var $group = $(groupHTML).appendTo('#qunit-fixture') var $btn1 = $group.children().eq(0) diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js index 1f2fce30b..51872c57b 100644 --- a/js/tests/unit/carousel.js +++ b/js/tests/unit/carousel.js @@ -44,26 +44,26 @@ $(function () { }) test('should reset when slide is prevented', function () { - var carouselHTML = '