mirror of
https://github.com/twbs/bootstrap.git
synced 2025-02-06 04:08:22 +01:00
fix(selector-engine): increase coverage for selector engine
This commit is contained in:
parent
4510e7e61d
commit
096413a994
@ -3,7 +3,7 @@ import Util from '../util'
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Bootstrap (v4.0.0-beta): dom/selectorEngine.js
|
* Bootstrap (v4.1.1): dom/selectorEngine.js
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -69,6 +69,10 @@ const SelectorEngine = (() => {
|
|||||||
},
|
},
|
||||||
|
|
||||||
closest(element, selector) {
|
closest(element, selector) {
|
||||||
|
if (typeof selector !== 'string') {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
return closest(element, selector)
|
return closest(element, selector)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -119,6 +119,7 @@
|
|||||||
<script src="unit/dom/eventHandler.js"></script>
|
<script src="unit/dom/eventHandler.js"></script>
|
||||||
<script src="unit/dom/manipulator.js"></script>
|
<script src="unit/dom/manipulator.js"></script>
|
||||||
<script src="unit/dom/data.js"></script>
|
<script src="unit/dom/data.js"></script>
|
||||||
|
<script src="unit/dom/selectorEngine.js"></script>
|
||||||
<script src="unit/alert.js"></script>
|
<script src="unit/alert.js"></script>
|
||||||
<script src="unit/button.js"></script>
|
<script src="unit/button.js"></script>
|
||||||
<script src="unit/carousel.js"></script>
|
<script src="unit/carousel.js"></script>
|
||||||
|
@ -15,7 +15,8 @@
|
|||||||
"Simulator": false,
|
"Simulator": false,
|
||||||
"Toast": false,
|
"Toast": false,
|
||||||
"EventHandler": false,
|
"EventHandler": false,
|
||||||
"Manipulator": false
|
"Manipulator": false,
|
||||||
|
"SelectorEngine": false
|
||||||
},
|
},
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 5,
|
"ecmaVersion": 5,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
$(function () {
|
$(function () {
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
QUnit.module('event handler')
|
QUnit.module('eventHandler')
|
||||||
|
|
||||||
QUnit.test('should be defined', function (assert) {
|
QUnit.test('should be defined', function (assert) {
|
||||||
assert.expect(1)
|
assert.expect(1)
|
||||||
|
77
js/tests/unit/dom/selectorEngine.js
Normal file
77
js/tests/unit/dom/selectorEngine.js
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
$(function () {
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
QUnit.module('selectorEngine')
|
||||||
|
|
||||||
|
QUnit.test('should be defined', function (assert) {
|
||||||
|
assert.expect(1)
|
||||||
|
assert.ok(SelectorEngine, 'Manipulator is defined')
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should determine if an element match the selector', function (assert) {
|
||||||
|
assert.expect(2)
|
||||||
|
$('<input type="checkbox" /> <button class="btn"></button>').appendTo('#qunit-fixture')
|
||||||
|
|
||||||
|
assert.ok(!SelectorEngine.matches($('#qunit-fixture')[0], '.btn'))
|
||||||
|
assert.ok(SelectorEngine.matches($('.btn')[0], '.btn'))
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should find the selector, according to an element or not', function (assert) {
|
||||||
|
assert.expect(3)
|
||||||
|
$('<input type="checkbox" /> <button class="btn"></button>').appendTo('#qunit-fixture')
|
||||||
|
|
||||||
|
var btn = $('.btn').first()[0]
|
||||||
|
assert.strictEqual(SelectorEngine.find($('.btn')), null)
|
||||||
|
assert.equal(SelectorEngine.find('.btn')[0], btn)
|
||||||
|
assert.equal(SelectorEngine.find('.btn', $('#qunit-fixture')[0])[0], btn)
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should find the first element which match the selector, according to an element or not', function (assert) {
|
||||||
|
assert.expect(3)
|
||||||
|
$('<button class="btn">btn1</button> <button class="btn">btn2</button>').appendTo('#qunit-fixture')
|
||||||
|
|
||||||
|
var btn = $('.btn').first()[0]
|
||||||
|
assert.strictEqual(SelectorEngine.findOne($('.btn')), null)
|
||||||
|
assert.equal(SelectorEngine.findOne('.btn'), btn)
|
||||||
|
assert.equal(SelectorEngine.findOne('.btn', $('#qunit-fixture')[0]), btn)
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should find children', function (assert) {
|
||||||
|
assert.expect(2)
|
||||||
|
$('<button class="btn">btn1</button> <button class="btn">btn2</button> <input type="text" />').appendTo('#qunit-fixture')
|
||||||
|
|
||||||
|
assert.strictEqual(SelectorEngine.children($('.btn')), null)
|
||||||
|
assert.equal(SelectorEngine.children($('#qunit-fixture')[0], '.btn').length, 2)
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should find the selector in parents', function (assert) {
|
||||||
|
assert.expect(2)
|
||||||
|
|
||||||
|
$('<input type="text" />').appendTo('#qunit-fixture')
|
||||||
|
assert.strictEqual(SelectorEngine.parents($('.container')[0], {}), null)
|
||||||
|
assert.strictEqual(SelectorEngine.parents($('input')[0], 'body').length, 1)
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should find the closest element according to the selector', function (assert) {
|
||||||
|
assert.expect(2)
|
||||||
|
var html =
|
||||||
|
'<div class="test">' +
|
||||||
|
' <button class="btn"></button>' +
|
||||||
|
'</div>'
|
||||||
|
|
||||||
|
$(html).appendTo('#qunit-fixture')
|
||||||
|
assert.strictEqual(SelectorEngine.closest($('.btn')[0], {}), null)
|
||||||
|
assert.strictEqual(SelectorEngine.closest($('.btn')[0], '.test'), $('.test')[0])
|
||||||
|
})
|
||||||
|
|
||||||
|
QUnit.test('should fin previous element', function (assert) {
|
||||||
|
assert.expect(2)
|
||||||
|
var html =
|
||||||
|
'<div class="test"></div>' +
|
||||||
|
'<button class="btn"></button>'
|
||||||
|
|
||||||
|
$(html).appendTo('#qunit-fixture')
|
||||||
|
assert.strictEqual(SelectorEngine.prev($('.btn')[0], {}), null)
|
||||||
|
assert.strictEqual(SelectorEngine.prev($('.btn')[0], '.test')[0], $('.test')[0])
|
||||||
|
})
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user