diff options
author | Johann-S <johann.servoire@gmail.com> | 2019-01-04 19:15:01 +0300 |
---|---|---|
committer | XhmikosR <xhmikosr@gmail.com> | 2019-01-04 19:15:01 +0300 |
commit | 89a73f100e7a3c765314e5cff0eeaf9c051f2944 (patch) | |
tree | 7acd975e91e78372af7cb234e94a54056aa93a61 /js | |
parent | d4b5b4b78c936f9a9d38d52ca5be1cbdee26ee54 (diff) |
carousel should not cycle when there is no data-ride on init (#27968)
Diffstat (limited to 'js')
-rw-r--r-- | js/src/carousel.js | 2 | ||||
-rw-r--r-- | js/tests/unit/carousel.js | 47 |
2 files changed, 48 insertions, 1 deletions
diff --git a/js/src/carousel.js b/js/src/carousel.js index 21ec57a2e3..a43d86b189 100644 --- a/js/src/carousel.js +++ b/js/src/carousel.js @@ -531,7 +531,7 @@ class Carousel { throw new TypeError(`No method named "${action}"`) } data[action]() - } else if (_config.interval) { + } else if (_config.interval && _config.ride) { data.pause() data.cycle() } diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js index d6fea2f34e..6c28b67214 100644 --- a/js/tests/unit/carousel.js +++ b/js/tests/unit/carousel.js @@ -1270,4 +1270,51 @@ $(function () { assert.strictEqual(spy.called, true) sandbox.restore() }) + + QUnit.test('should not cycle when there is no attribute data-ride', function (assert) { + assert.expect(1) + + var spy = sinon.spy(Carousel.prototype, 'cycle') + + var carouselHTML = '<div class="carousel"></div>' + var $carousel = $(carouselHTML) + $carousel.appendTo('#qunit-fixture') + $carousel.bootstrapCarousel() + + assert.strictEqual(spy.called, false) + spy.restore() + }) + + QUnit.test('should cycle when there is data-ride attribute', function (assert) { + assert.expect(1) + + var spy = sinon.spy(Carousel.prototype, 'cycle') + + var carouselHTML = '<div class="carousel" data-ride="carousel"></div>' + var $carousel = $(carouselHTML) + $carousel.appendTo('#qunit-fixture') + $carousel.bootstrapCarousel() + + assert.strictEqual(spy.called, true) + spy.restore() + }) + + QUnit.test('should init carousels with data-ride on load event', function (assert) { + assert.expect(1) + + var done = assert.async() + var spy = sinon.spy(Carousel, '_jQueryInterface') + + var carouselHTML = '<div class="carousel" data-ride="carousel"></div>' + var $carousel = $(carouselHTML) + $carousel.appendTo('#qunit-fixture') + + $(window).trigger($.Event('load')) + + setTimeout(function () { + assert.strictEqual(spy.called, true) + spy.restore() + done() + }, 5) + }) }) |