diff --git a/js/tests/unit/affix.js b/js/tests/unit/affix.js index 1cdfc7f907111f8db9571b627ca7f14e1ff6105a..f93dd62d2b91a94eab5cee0fed0730821f163f64 100644 --- a/js/tests/unit/affix.js +++ b/js/tests/unit/affix.js @@ -19,15 +19,18 @@ $(function () { }) test('should provide no conflict', function () { - ok(!$.fn.affix, 'affix was set back to undefined (org value)') + strictEqual($.fn.affix, undefined, 'affix was set back to undefined (org value)') }) - test('should return element', function () { - ok($(document.body).bootstrapAffix()[0] == document.body, 'document.body returned') + test('should return jquery collection containing the element', function () { + var $el = $('<div/>') + var $affix = $el.bootstrapAffix() + ok($affix instanceof $, 'returns jquery collection') + strictEqual($affix[0], $el[0], 'collection contains element') }) test('should exit early if element is not visible', function () { - var $affix = $('<div style="display: none"></div>').bootstrapAffix() + var $affix = $('<div style="display: none"/>').bootstrapAffix() $affix.data('bs.affix').checkPosition() ok(!$affix.hasClass('affix'), 'affix class was not added') }) @@ -35,8 +38,14 @@ $(function () { test('should trigger affixed event after affix', function () { stop() - var template = $('<div id="affixTarget"><ul><li>Please affix</li><li>And unaffix</li></ul></div><div id="affixAfter" style="height: 20000px; display:block;"></div>') - template.appendTo('body') + var templateHTML = '<div id="affixTarget">' + + '<ul>' + + '<li>Please affix</li>' + + '<li>And unaffix</li>' + + '</ul>' + + '</div>' + + '<div id="affixAfter" style="height: 20000px; display: block;"/>' + $(templateHTML).appendTo(document.body) $('#affixTarget').bootstrapAffix({ offset: $('#affixTarget ul').position() @@ -44,19 +53,19 @@ $(function () { $('#affixTarget') .on('affix.bs.affix', function () { - ok(true, 'affix event triggered') + ok(true, 'affix event fired') }).on('affixed.bs.affix', function () { - ok(true, 'affixed event triggered') - $('#affixTarget').remove() - $('#affixAfter').remove() + ok(true, 'affixed event fired') + $('#affixTarget, #affixAfter').remove() start() }) setTimeout(function () { window.scrollTo(0, document.body.scrollHeight) + setTimeout(function () { window.scroll(0, 0) - }, 0) + }, 18) // for testing in a browser }, 0) }) })