From bedc96e48bebb7a1124a97833794a8047a1e3b95 Mon Sep 17 00:00:00 2001 From: Johann-S Date: Tue, 20 Mar 2018 11:07:58 +0100 Subject: Use transitionEnd in QUnit since we moved away from PhantomJS --- js/tests/unit/tooltip.js | 163 +++++++++++++++++++++++++++++++---------------- 1 file changed, 108 insertions(+), 55 deletions(-) (limited to 'js/tests/unit/tooltip.js') diff --git a/js/tests/unit/tooltip.js b/js/tests/unit/tooltip.js index bdccd3a38d..20d022c5dc 100644 --- a/js/tests/unit/tooltip.js +++ b/js/tests/unit/tooltip.js @@ -77,15 +77,21 @@ $(function () { QUnit.test('should remove aria-describedby from trigger on hide', function (assert) { assert.expect(2) + var done = assert.async() var $trigger = $('') .bootstrapTooltip() .appendTo('#qunit-fixture') - $trigger.bootstrapTooltip('show') - assert.ok($trigger[0].hasAttribute('aria-describedby'), 'trigger has aria-describedby') - - $trigger.bootstrapTooltip('hide') - assert.ok(!$trigger[0].hasAttribute('aria-describedby'), 'trigger does not have aria-describedby') + $trigger + .one('shown.bs.tooltip', function () { + assert.ok($trigger[0].hasAttribute('aria-describedby'), 'trigger has aria-describedby') + $trigger.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.ok(!$trigger[0].hasAttribute('aria-describedby'), 'trigger does not have aria-describedby') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should assign a unique id tooltip element', function (assert) { @@ -102,40 +108,51 @@ $(function () { QUnit.test('should place tooltips relative to placement option', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ placement: 'bottom' }) - $tooltip.bootstrapTooltip('show') - - assert - .ok($('.tooltip') - .is('.fade.bs-tooltip-bottom.show'), 'has correct classes applied') - - $tooltip.bootstrapTooltip('hide') + $tooltip + .one('shown.bs.tooltip', function () { + assert.ok($('.tooltip') + .is('.fade.bs-tooltip-bottom.show'), 'has correct classes applied') - assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should allow html entities', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ html: true }) - $tooltip.bootstrapTooltip('show') - assert.notEqual($('.tooltip b').length, 0, 'b tag was inserted') - - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + $tooltip + .one('shown.bs.tooltip', function () { + assert.notEqual($('.tooltip b').length, 0, 'b tag was inserted') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should allow DOMElement title (html: false)', function (assert) { assert.expect(3) + var done = assert.async() var title = document.createTextNode('<3 writing tests') var $tooltip = $('') .appendTo('#qunit-fixture') @@ -143,15 +160,19 @@ $(function () { title: title }) - $tooltip.bootstrapTooltip('show') - - assert.notEqual($('.tooltip').length, 0, 'tooltip inserted') - assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted') - assert.ok(!$.contains($('.tooltip').get(0), title), 'title node copied, not moved') + $tooltip + .one('shown.bs.tooltip', function () { + assert.notEqual($('.tooltip').length, 0, 'tooltip inserted') + assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted') + assert.ok(!$.contains($('.tooltip').get(0), title), 'title node copied, not moved') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should allow DOMElement title (html: true)', function (assert) { assert.expect(3) + var done = assert.async() var title = document.createTextNode('<3 writing tests') var $tooltip = $('') .appendTo('#qunit-fixture') @@ -160,26 +181,35 @@ $(function () { title: title }) - $tooltip.bootstrapTooltip('show') - - assert.notEqual($('.tooltip').length, 0, 'tooltip inserted') - assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted') - assert.ok($.contains($('.tooltip').get(0), title), 'title node moved, not copied') + $tooltip + .one('shown.bs.tooltip', function () { + assert.notEqual($('.tooltip').length, 0, 'tooltip inserted') + assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted') + assert.ok($.contains($('.tooltip').get(0), title), 'title node moved, not copied') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should respect custom classes', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ template: '
' }) - $tooltip.bootstrapTooltip('show') - assert.ok($('.tooltip').hasClass('some-class'), 'custom class is present') - - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + $tooltip + .one('shown.bs.tooltip', function () { + assert.ok($('.tooltip').hasClass('some-class'), 'custom class is present') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should fire show event', function (assert) { @@ -363,18 +393,24 @@ $(function () { QUnit.test('should place tooltips inside body when container is body', function (assert) { assert.expect(3) + var done = assert.async() var $tooltip = $('
') .appendTo('#qunit-fixture') .bootstrapTooltip({ container: 'body' }) - .bootstrapTooltip('show') - - assert.notEqual($('body > .tooltip').length, 0, 'tooltip is direct descendant of body') - assert.strictEqual($('#qunit-fixture > .tooltip').length, 0, 'tooltip is not in parent') - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($('body > .tooltip').length, 0, 'tooltip was removed from dom') + $tooltip + .one('shown.bs.tooltip', function () { + assert.notEqual($('body > .tooltip').length, 0, 'tooltip is direct descendant of body') + assert.strictEqual($('#qunit-fixture > .tooltip').length, 0, 'tooltip is not in parent') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($('body > .tooltip').length, 0, 'tooltip was removed from dom') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should add position class before positioning so that position-specific styles are taken into account', function (assert) { @@ -405,45 +441,63 @@ $(function () { QUnit.test('should use title attribute for tooltip text', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip() - $tooltip.bootstrapTooltip('show') - assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title from title attribute is set') - - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + $tooltip + .one('shown.bs.tooltip', function () { + assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title from title attribute is set') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should prefer title attribute over title option', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ title: 'This is a tooltip with some content' }) - $tooltip.bootstrapTooltip('show') - assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title is set from title attribute while preferred over title option') - - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + $tooltip + .one('shown.bs.tooltip', function () { + assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title is set from title attribute while preferred over title option') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should use title option', function (assert) { assert.expect(2) + var done = assert.async() var $tooltip = $('') .appendTo('#qunit-fixture') .bootstrapTooltip({ title: 'This is a tooltip with some content' }) - $tooltip.bootstrapTooltip('show') - assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'This is a tooltip with some content', 'title from title option is set') - - $tooltip.bootstrapTooltip('hide') - assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + $tooltip + .one('shown.bs.tooltip', function () { + assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'This is a tooltip with some content', 'title from title option is set') + $tooltip.bootstrapTooltip('hide') + }) + .one('hidden.bs.tooltip', function () { + assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom') + done() + }) + .bootstrapTooltip('show') }) QUnit.test('should not error when trying to show an top-placed tooltip that has been removed from the dom', function (assert) { @@ -869,7 +923,6 @@ $(function () { var done = assert.async() var $el = $('') .appendTo('#qunit-fixture') - .bootstrapTooltip('show') .on('shown.bs.tooltip', function () { var tooltip = $el.data('bs.tooltip') var $tooltip = $(tooltip.getTipElement()) -- cgit v1.2.3