Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJohann-S <johann.servoire@gmail.com>2018-10-29 16:27:19 +0300
committerJohann-S <johann.servoire@gmail.com>2018-10-29 16:49:29 +0300
commit91f8077ed5cfff2ee61e50a39a25982ef8c4b01f (patch)
tree07940c92446a0213a50ac186536e2bc6e54007d4 /js
parentbb0d6bf178de310176d914f73f2f649c229d8c4e (diff)
add unit tests for our carousel
Diffstat (limited to 'js')
-rw-r--r--js/src/carousel.js15
-rw-r--r--js/tests/unit/carousel.js44
2 files changed, 50 insertions, 9 deletions
diff --git a/js/src/carousel.js b/js/src/carousel.js
index 989390aa0a..3c7e2b2d91 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -289,15 +289,13 @@ class Carousel {
}
const move = (event) => {
- if (!this._pointerEvent) {
- event.preventDefault()
+ event.preventDefault()
- // ensure swiping with one touch and not pinching
- if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
- this.touchDeltaX = 0
- } else {
- this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX
- }
+ // ensure swiping with one touch and not pinching
+ if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
+ this.touchDeltaX = 0
+ } else {
+ this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX
}
}
@@ -307,7 +305,6 @@ class Carousel {
}
this._handleSwipe()
-
if (this._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
diff --git a/js/tests/unit/carousel.js b/js/tests/unit/carousel.js
index d7d9ad2508..d6fea2f34e 100644
--- a/js/tests/unit/carousel.js
+++ b/js/tests/unit/carousel.js
@@ -1226,4 +1226,48 @@ $(function () {
done()
})
})
+
+ QUnit.test('should not call _slide if the carousel is sliding', function (assert) {
+ assert.expect(1)
+
+ var carouselHTML = '<div class="carousel" data-interval="false"></div>'
+ var $carousel = $(carouselHTML)
+ $carousel.appendTo('#qunit-fixture')
+ $carousel.bootstrapCarousel()
+
+ var carousel = $carousel.data('bs.carousel')
+
+ var spy = sinon.spy(carousel, '_slide')
+
+ carousel._isSliding = true
+
+ carousel.next()
+
+ assert.strictEqual(spy.called, false)
+ })
+
+ QUnit.test('should call next when the page is visible', function (assert) {
+ assert.expect(1)
+
+ var carouselHTML = '<div class="carousel" data-interval="false"></div>'
+ var $carousel = $(carouselHTML)
+ $carousel.appendTo('#qunit-fixture')
+ $carousel.bootstrapCarousel()
+
+ var carousel = $carousel.data('bs.carousel')
+
+ var spy = sinon.spy(carousel, 'next')
+ var sandbox = sinon.createSandbox()
+
+ sandbox.replaceGetter(document, 'hidden', function () {
+ return false
+ })
+ sandbox.stub($carousel, 'is').returns(true)
+ sandbox.stub($carousel, 'css').returns('block')
+
+ carousel.nextWhenVisible()
+
+ assert.strictEqual(spy.called, true)
+ sandbox.restore()
+ })
})