$(function () { module("bootstrap-tooltip") test("should be defined on jquery object", function () { var div = $("
") ok(div.tooltip, 'popover method is defined') }) test("should return element", function () { var div = $("
") ok(div.tooltip() == div, 'document.body returned') }) test("should expose default settings", function () { ok(!!$.fn.tooltip.defaults, 'defaults is defined') }) test("should remove title attribute", function () { var tooltip = $('').tooltip() ok(!tooltip.attr('title'), 'title tag was removed') }) test("should add data attribute for referencing original title", function () { var tooltip = $('').tooltip() equals(tooltip.attr('data-original-title'), 'Another tooltip', 'original title preserved in data attribute') }) test("should place tooltips relative to placement option", function () { $.support.transition = false var tooltip = $('') .appendTo('#qunit-fixture') .tooltip({placement: 'bottom'}) .tooltip('show') ok($(".tooltip").hasClass('fade bottom in'), 'has correct classes applied') tooltip.tooltip('hide') }) test("should always allow html entities", function () { $.support.transition = false var tooltip = $('') .appendTo('#qunit-fixture') .tooltip('show') ok($('.tooltip b').length, 'b tag was inserted') tooltip.tooltip('hide') ok(!$(".tooltip").length, 'tooltip removed') }) test("should respect custom classes", function () { var tooltip = $('') .appendTo('#qunit-fixture') .tooltip({ template: '
'}) .tooltip('show') ok($('.tooltip').hasClass('some-class'), 'custom class is present') tooltip.tooltip('hide') ok(!$(".tooltip").length, 'tooltip removed') }) test("should not show tooltip if leave event occurs before delay expires", function () { var tooltip = $('') .appendTo('#qunit-fixture') .tooltip({ delay: 200 }) stop() tooltip.trigger('mouseenter') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip is not faded in') tooltip.trigger('mouseout') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip is not faded in') start() }, 200) }, 100) }) test("should not show tooltip if leave event occurs before delay expires", function () { var tooltip = $('') .appendTo('#qunit-fixture') .tooltip({ delay: 100 }) stop() tooltip.trigger('mouseenter') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip is not faded in') tooltip.trigger('mouseout') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip is not faded in') start() }, 100) }, 50) }) test("should show tooltip if leave event hasn't occured before delay expires", function () { var tooltip = $('') .appendTo('#qunit-fixture') .tooltip({ delay: 200 }) stop() tooltip.trigger('mouseenter') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip is not faded in') setTimeout(function () { ok(!$(".tooltip").hasClass('fade in'), 'tooltip has faded in') start() }, 200) }, 100) }) test("should detect if title string is html or text: foo", function () { ok(!$.fn.tooltip.Constructor.prototype.isHTML('foo'), 'correctly detected html') }) test("should detect if title string is html or text: &lt;foo&gt;", function () { ok(!$.fn.tooltip.Constructor.prototype.isHTML('<foo>'), 'correctly detected html') }) test("should detect if title string is html or text: <div>foo</div>", function () { ok($.fn.tooltip.Constructor.prototype.isHTML('
foo
'), 'correctly detected html') }) test("should detect if title string is html or text: asdfa<div>foo</div>asdfasdf", function () { ok($.fn.tooltip.Constructor.prototype.isHTML('asdfa
foo
asdfasdf'), 'correctly detected html') }) test("should detect if title string is html or text: document.createElement('div')", function () { ok($.fn.tooltip.Constructor.prototype.isHTML(document.createElement('div')), 'correctly detected html') }) test("should detect if title string is html or text: $('<div />)", function () { ok($.fn.tooltip.Constructor.prototype.isHTML($('
')), 'correctly detected html') }) })