| $(function () { |
| 'use strict'; |
| |
| QUnit.module('alert plugin') |
| |
| QUnit.test('should be defined on jquery object', function (assert) { |
| assert.expect(1) |
| assert.ok($(document.body).alert, 'alert method is defined') |
| }) |
| |
| QUnit.module('alert', { |
| beforeEach: function () { |
| // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode |
| $.fn.bootstrapAlert = $.fn.alert.noConflict() |
| }, |
| afterEach: function () { |
| $.fn.alert = $.fn.bootstrapAlert |
| delete $.fn.bootstrapAlert |
| } |
| }) |
| |
| QUnit.test('should provide no conflict', function (assert) { |
| assert.expect(1) |
| assert.strictEqual($.fn.alert, undefined, 'alert was set back to undefined (org value)') |
| }) |
| |
| QUnit.test('should return jquery collection containing the element', function (assert) { |
| assert.expect(2) |
| var $el = $('<div/>') |
| var $alert = $el.bootstrapAlert() |
| assert.ok($alert instanceof $, 'returns jquery collection') |
| assert.strictEqual($alert[0], $el[0], 'collection contains element') |
| }) |
| |
| QUnit.test('should fade element out on clicking .close', function (assert) { |
| assert.expect(1) |
| var alertHTML = '<div class="alert alert-danger fade in">' |
| + '<a class="close" href="#" data-dismiss="alert">×</a>' |
| + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' |
| + '</div>' |
| var $alert = $(alertHTML).bootstrapAlert() |
| |
| $alert.find('.close').trigger('click') |
| |
| assert.strictEqual($alert.hasClass('in'), false, 'remove .in class on .close click') |
| }) |
| |
| QUnit.test('should remove element when clicking .close', function (assert) { |
| assert.expect(2) |
| var done = assert.async() |
| |
| var alertHTML = '<div class="alert alert-danger fade in">' |
| + '<a class="close" href="#" data-dismiss="alert">×</a>' |
| + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>' |
| + '</div>' |
| var $alert = $(alertHTML).appendTo('#qunit-fixture').bootstrapAlert() |
| |
| assert.notEqual($('#qunit-fixture').find('.alert').length, 0, 'element added to dom') |
| |
| $alert.on('closed.bs.alert', function () { |
| assert.strictEqual($('#qunit-fixture').find('.alert').length, 0, 'element removed from dom') |
| done() |
| }) |
| |
| $alert.find('.close').trigger('click') |
| }) |
| |
| QUnit.test('should not fire closed when close is prevented', function (assert) { |
| assert.expect(1) |
| var done = assert.async() |
| $('<div class="alert"/>') |
| .on('close.bs.alert', function (e) { |
| e.preventDefault() |
| assert.ok(true, 'close event fired') |
| done() |
| }) |
| .on('closed.bs.alert', function () { |
| assert.ok(false, 'closed event fired') |
| }) |
| .bootstrapAlert('close') |
| }) |
| |
| }) |