Skip to content

Commit

Permalink
Merge branch 'master' into master-xmr-examples
Browse files Browse the repository at this point in the history
  • Loading branch information
XhmikosR committed May 19, 2019
2 parents 15eabe6 + 1a41b0f commit 11d71df
Show file tree
Hide file tree
Showing 15 changed files with 781 additions and 388 deletions.
12 changes: 10 additions & 2 deletions js/src/toast.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,11 @@ class Toast {
// Public

show() {
EventHandler.trigger(this._element, Event.SHOW)
const showEvent = EventHandler.trigger(this._element, Event.SHOW)

if (showEvent.defaultPrevented) {
return
}

if (this._config.animation) {
this._element.classList.add(ClassName.FADE)
Expand Down Expand Up @@ -126,7 +130,11 @@ class Toast {
return
}

EventHandler.trigger(this._element, Event.HIDE)
const hideEvent = EventHandler.trigger(this._element, Event.HIDE)

if (hideEvent.defaultPrevented) {
return
}

const complete = () => {
this._element.classList.add(ClassName.HIDE)
Expand Down
71 changes: 71 additions & 0 deletions js/tests/unit/toast.js
Original file line number Diff line number Diff line change
Expand Up @@ -255,4 +255,75 @@ $(function () {
var toast = Toast._getInstance($toast[0])
assert.strictEqual(toast._config.delay, defaultDelay)
})

QUnit.test('should not trigger shown if show is prevented', function (assert) {
assert.expect(1)
var done = assert.async()

var toastHtml =
'<div class="toast" data-delay="1" data-autohide="false">' +
'<div class="toast-body">' +
'a simple toast' +
'</div>' +
'</div>'

var $toast = $(toastHtml)
.bootstrapToast()
.appendTo($('#qunit-fixture'))

var shownCalled = false
function assertDone() {
setTimeout(function () {
assert.strictEqual(shownCalled, false)
done()
}, 20)
}

$toast
.on('show.bs.toast', function (event) {
event.preventDefault()
assertDone()
})
.on('shown.bs.toast', function () {
shownCalled = true
})
.bootstrapToast('show')
})

QUnit.test('should not trigger hidden if hide is prevented', function (assert) {
assert.expect(1)
var done = assert.async()

var toastHtml =
'<div class="toast" data-delay="1" data-autohide="false">' +
'<div class="toast-body">' +
'a simple toast' +
'</div>' +
'</div>'

var $toast = $(toastHtml)
.bootstrapToast()
.appendTo($('#qunit-fixture'))

var hiddenCalled = false
function assertDone() {
setTimeout(function () {
assert.strictEqual(hiddenCalled, false)
done()
}, 20)
}

$toast
.on('shown.bs.toast', function () {
$toast.bootstrapToast('hide')
})
.on('hide.bs.toast', function (event) {
event.preventDefault()
assertDone()
})
.on('hidden.bs.toast', function () {
hiddenCalled = true
})
.bootstrapToast('show')
})
})

0 comments on commit 11d71df

Please sign in to comment.