Fix Carousel's touch option to not add touch listeners when set to false (#28046)

This commit is contained in:
Johann-S 2019-01-14 17:53:54 +01:00 committed by XhmikosR
parent 3d350c3b34
commit d51ee0dcf1
2 changed files with 18 additions and 3 deletions

View File

@ -268,7 +268,9 @@ class Carousel {
.on(Event.MOUSELEAVE, (event) => this.cycle(event))
}
this._addTouchEventListeners()
if (this._config.touch) {
this._addTouchEventListeners()
}
}
_addTouchEventListeners() {

View File

@ -948,7 +948,7 @@ $(function () {
$textArea.trigger(eventKeyDown)
})
QUnit.test('Should not go to the next item when the carousel is not visible', function (assert) {
QUnit.test('should not go to the next item when the carousel is not visible', function (assert) {
assert.expect(2)
var done = assert.async()
var html = '<div id="myCarousel" class="carousel slide" data-interval="50" style="display: none;">' +
@ -985,7 +985,7 @@ $(function () {
}, 80)
})
QUnit.test('Should not go to the next item when the parent of the carousel is not visible', function (assert) {
QUnit.test('should not go to the next item when the parent of the carousel is not visible', function (assert) {
assert.expect(2)
var done = assert.async()
var html = '<div id="parent" style="display: none;">' +
@ -1317,4 +1317,17 @@ $(function () {
done()
}, 5)
})
QUnit.test('should not add touch event listeners when touch option set to false', function (assert) {
assert.expect(1)
var spy = sinon.spy(Carousel.prototype, '_addTouchEventListeners')
var $carousel = $('<div class="carousel" data-ride="carousel" data-touch="false"></div>')
$carousel.appendTo('#qunit-fixture')
$carousel.bootstrapCarousel()
assert.strictEqual(spy.called, false)
spy.restore()
})
})