Initial commit
This commit is contained in:
54
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/dropdownCss-tests.js
vendored
Executable file
54
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/dropdownCss-tests.js
vendored
Executable file
@ -0,0 +1,54 @@
|
||||
module('Dropdown - dropdownCssClass');
|
||||
|
||||
var $ = require('jquery');
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var DropdownCSS = Utils.Decorate(
|
||||
Dropdown,
|
||||
require('select2/dropdown/dropdownCss')
|
||||
);
|
||||
|
||||
test('all classes will be copied if :all: is used', function (assert) {
|
||||
var $element = $('<select class="test copy works"></select>');
|
||||
var options = new Options({
|
||||
dropdownCssClass: ':all:'
|
||||
});
|
||||
|
||||
var select = new DropdownCSS($element, options);
|
||||
var $dropdown = select.render();
|
||||
|
||||
assert.ok($dropdown.hasClass('test'));
|
||||
assert.ok($dropdown.hasClass('copy'));
|
||||
assert.ok($dropdown.hasClass('works'));
|
||||
assert.ok(!$dropdown.hasClass(':all:'));
|
||||
});
|
||||
|
||||
test(':all: can be used with other classes', function (assert) {
|
||||
var $element = $('<select class="test copy works"></select>');
|
||||
var options = new Options({
|
||||
dropdownCssClass: ':all: other'
|
||||
});
|
||||
|
||||
var select = new DropdownCSS($element, options);
|
||||
var $dropdown = select.render();
|
||||
|
||||
assert.ok($dropdown.hasClass('test'));
|
||||
assert.ok($dropdown.hasClass('copy'));
|
||||
assert.ok($dropdown.hasClass('works'));
|
||||
assert.ok($dropdown.hasClass('other'));
|
||||
assert.ok(!$dropdown.hasClass(':all:'));
|
||||
});
|
||||
|
||||
test('classes can be passed in as a string', function (assert) {
|
||||
var $element = $('<select class="test copy works"></select>');
|
||||
var options = new Options({
|
||||
dropdownCssClass: 'other'
|
||||
});
|
||||
|
||||
var select = new DropdownCSS($element, options);
|
||||
var $dropdown = select.render();
|
||||
|
||||
assert.ok($dropdown.hasClass('other'));
|
||||
});
|
||||
83
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/dropdownParent-tests.js
vendored
Executable file
83
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/dropdownParent-tests.js
vendored
Executable file
@ -0,0 +1,83 @@
|
||||
module('Dropdown - attachBody - dropdownParent option');
|
||||
|
||||
test('can be a selector string', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var $select = $('<select></select>');
|
||||
var $parent = $('<div id="parent"></div>');
|
||||
|
||||
$('#qunit-fixture').append($parent);
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: '#parent'
|
||||
}));
|
||||
|
||||
assert.equal(
|
||||
dropdown.$dropdownParent[0],
|
||||
$parent[0],
|
||||
'Should be parsed using the selector as a jQuery object'
|
||||
);
|
||||
});
|
||||
|
||||
test('can be a jQuery object', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var $select = $('<select></select>');
|
||||
var $parent = $('<div id="parent"></div>');
|
||||
|
||||
$('#qunit-fixture').append($parent);
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: $parent
|
||||
}));
|
||||
|
||||
assert.equal(
|
||||
dropdown.$dropdownParent[0],
|
||||
$parent[0],
|
||||
'Should just take the passed in jQuery object'
|
||||
);
|
||||
});
|
||||
|
||||
test('defaults to the document body', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var $select = $('<select></select>');
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({}));
|
||||
|
||||
assert.equal(
|
||||
dropdown.$dropdownParent[0],
|
||||
document.body,
|
||||
'Should default to wrapping document.body'
|
||||
);
|
||||
});
|
||||
226
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/positioning-tests.js
vendored
Executable file
226
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/positioning-tests.js
vendored
Executable file
@ -0,0 +1,226 @@
|
||||
module('Dropdown - attachBody - positioning');
|
||||
|
||||
test('appends to the dropdown parent', function (assert) {
|
||||
assert.expect(4);
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var $select = $('<select></select>');
|
||||
var $parent = $('<div></div>');
|
||||
|
||||
var $container = $('<span></span>');
|
||||
var container = new MockContainer();
|
||||
|
||||
$parent.appendTo($('#qunit-fixture'));
|
||||
$select.appendTo($parent);
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: $parent
|
||||
}));
|
||||
|
||||
assert.equal(
|
||||
$parent.children().length,
|
||||
1,
|
||||
'Only the select should be in the container'
|
||||
);
|
||||
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
dropdown.bind(container, $container);
|
||||
|
||||
dropdown.position($dropdown, $container);
|
||||
|
||||
assert.equal(
|
||||
$parent.children().length,
|
||||
1,
|
||||
'The dropdown should not be placed until after it is opened'
|
||||
);
|
||||
|
||||
dropdown._showDropdown();
|
||||
|
||||
assert.equal(
|
||||
$parent.children().length,
|
||||
2,
|
||||
'The dropdown should now be in the container as well'
|
||||
);
|
||||
|
||||
assert.ok(
|
||||
$.contains($parent[0], $dropdown[0]),
|
||||
'The dropdown should be contained within the parent container'
|
||||
);
|
||||
});
|
||||
|
||||
test('dropdown is positioned down with static margins', function (assert) {
|
||||
var $ = require('jquery');
|
||||
var $select = $('<select></select>');
|
||||
var $parent = $('<div></div>');
|
||||
$parent.css({
|
||||
position: 'static',
|
||||
marginTop: '5px',
|
||||
marginLeft: '10px'
|
||||
});
|
||||
|
||||
var $container = $('<span>test</span>');
|
||||
var container = new MockContainer();
|
||||
|
||||
$('#qunit-fixture').empty();
|
||||
|
||||
$parent.appendTo($('#qunit-fixture'));
|
||||
$container.appendTo($parent);
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: $parent
|
||||
}));
|
||||
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
assert.equal(
|
||||
$dropdown[0].style.top,
|
||||
0,
|
||||
'The drodpown should not have any offset before it is displayed'
|
||||
);
|
||||
|
||||
dropdown.bind(container, $container);
|
||||
dropdown.position($dropdown, $container);
|
||||
dropdown._showDropdown();
|
||||
|
||||
assert.ok(
|
||||
dropdown.$dropdown.hasClass('select2-dropdown--below'),
|
||||
'The dropdown should be forced down'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('top').replace(/\D+/, ''),
|
||||
$container.outerHeight() + 5,
|
||||
'The offset should be 5px at the top'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('left'),
|
||||
'10px',
|
||||
'The offset should be 10px on the left'
|
||||
);
|
||||
});
|
||||
|
||||
test('dropdown is positioned down with absolute offsets', function (assert) {
|
||||
var $ = require('jquery');
|
||||
var $select = $('<select></select>');
|
||||
var $parent = $('<div></div>');
|
||||
$parent.css({
|
||||
position: 'absolute',
|
||||
top: '10px',
|
||||
left: '5px'
|
||||
});
|
||||
|
||||
var $container = $('<span>test</span>');
|
||||
var container = new MockContainer();
|
||||
|
||||
$parent.appendTo($('#qunit-fixture'));
|
||||
$container.appendTo($parent);
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: $parent
|
||||
}));
|
||||
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
assert.equal(
|
||||
$dropdown[0].style.top,
|
||||
0,
|
||||
'The drodpown should not have any offset before it is displayed'
|
||||
);
|
||||
|
||||
dropdown.bind(container, $container);
|
||||
dropdown.position($dropdown, $container);
|
||||
dropdown._showDropdown();
|
||||
|
||||
assert.ok(
|
||||
dropdown.$dropdown.hasClass('select2-dropdown--below'),
|
||||
'The dropdown should be forced down'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('top').replace(/\D+/, ''),
|
||||
$container.outerHeight(),
|
||||
'There should not be an extra top offset'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('left'),
|
||||
'0px',
|
||||
'There should not be an extra left offset'
|
||||
);
|
||||
});
|
||||
|
||||
test('dropdown is positioned even when not in document', function (assert) {
|
||||
var $ = require('jquery');
|
||||
var $select = $('<select></select>');
|
||||
|
||||
var $container = $('<span>test</span>');
|
||||
var container = new MockContainer();
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var AttachBody = require('select2/dropdown/attachBody');
|
||||
|
||||
var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody);
|
||||
|
||||
var dropdown = new DropdownAdapter($select, new Options({
|
||||
dropdownParent: $('html')
|
||||
}));
|
||||
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
assert.equal(
|
||||
$dropdown[0].style.top,
|
||||
0,
|
||||
'The drodpown should not have any offset before it is displayed'
|
||||
);
|
||||
|
||||
dropdown.bind(container, $container);
|
||||
dropdown.position($dropdown, $container);
|
||||
dropdown._showDropdown();
|
||||
|
||||
assert.ok(
|
||||
dropdown.$dropdown.hasClass('select2-dropdown--below'),
|
||||
'The dropdown should be forced down'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('top'),
|
||||
'0px',
|
||||
'The offset should be 0px at the top'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$dropdown.css('left'),
|
||||
'0px',
|
||||
'The offset should be 0px on the left'
|
||||
);
|
||||
});
|
||||
201
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/search-a11y-tests.js
vendored
Executable file
201
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/search-a11y-tests.js
vendored
Executable file
@ -0,0 +1,201 @@
|
||||
module('Dropdown - Search - Accessibility');
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var DropdownSearch = Utils.Decorate(
|
||||
Dropdown,
|
||||
require('select2/dropdown/search')
|
||||
);
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var Options = require('select2/options');
|
||||
var options = new Options({});
|
||||
|
||||
test('role attribute is set to searchbox', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('input').attr('role'),
|
||||
'searchbox',
|
||||
'The search box is marked as a search box'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-autocomplete attribute is present', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('input').attr('aria-autocomplete'),
|
||||
'list',
|
||||
'The search box is marked as autocomplete'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-activedescendant should not be set initiailly', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-activedescendant'),
|
||||
'The search box should not point to anything when it is first rendered'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-activedescendant should be set after highlight', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
container.trigger('results:focus', {
|
||||
data: {
|
||||
_resultId: 'test'
|
||||
}
|
||||
});
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
|
||||
assert.equal(
|
||||
$search.attr('aria-activedescendant'),
|
||||
'test',
|
||||
'The search is pointing to the focused result'
|
||||
);
|
||||
});
|
||||
|
||||
test('activedescendant should remove if there is no ID', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
$search.attr('aria-activedescendant', 'test');
|
||||
|
||||
container.trigger('results:focus', {
|
||||
data: {}
|
||||
});
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-activedescendant'),
|
||||
'There is no result for the search to be pointing to'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-activedescendant should be removed when closed', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
$search.attr('aria-activedescendant', 'something');
|
||||
|
||||
container.trigger('close');
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-activedescendant'),
|
||||
'There is no active descendant when the dropdown is closed'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-controls should not be set initiailly', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-controls'),
|
||||
'The search box should not point to the results when it is first rendered'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-controls should be set when opened', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
|
||||
container.trigger('open');
|
||||
|
||||
assert.ok(
|
||||
$search.attr('aria-controls'),
|
||||
'The search should point to the results when it is opened'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-controls should be removed when closed', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
var $search = $dropdown.find('input');
|
||||
$search.attr('aria-controls', 'something');
|
||||
|
||||
container.trigger('close');
|
||||
|
||||
assert.ok(
|
||||
!$search.attr('aria-controls'),
|
||||
'There are no results for the search box to point to when it is closed'
|
||||
);
|
||||
});
|
||||
|
||||
test('aria-label attribute is present', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('input').attr('aria-label'),
|
||||
'Search',
|
||||
'The search box has a label'
|
||||
);
|
||||
});
|
||||
49
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/search-tests.js
vendored
Executable file
49
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/search-tests.js
vendored
Executable file
@ -0,0 +1,49 @@
|
||||
module('Dropdown - Search');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var DropdownSearch = Utils.Decorate(
|
||||
Dropdown,
|
||||
require('select2/dropdown/search')
|
||||
);
|
||||
|
||||
var $ = require('jquery');
|
||||
var Options = require('select2/options');
|
||||
var Utils = require('select2/utils');
|
||||
|
||||
var options = new Options({});
|
||||
|
||||
test('search box defaults autocomplete to off', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var dropdown = new DropdownSearch($select, options);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('input').attr('autocomplete'),
|
||||
'off',
|
||||
'The search box has autocomplete disabled'
|
||||
);
|
||||
});
|
||||
|
||||
test('search box sets autocomplete from options', function (assert) {
|
||||
var $select = $('#qunit-fixture .single');
|
||||
|
||||
var autocompleteOptions = new Options({
|
||||
autocomplete: 'country-name'
|
||||
});
|
||||
|
||||
var dropdown = new DropdownSearch($select, autocompleteOptions);
|
||||
var $dropdown = dropdown.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
dropdown.bind(container, $('<span></span>'));
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('input').attr('autocomplete'),
|
||||
'country-name',
|
||||
'The search box sets the right autocomplete attribute'
|
||||
);
|
||||
});
|
||||
137
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/selectOnClose-tests.js
vendored
Executable file
137
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/selectOnClose-tests.js
vendored
Executable file
@ -0,0 +1,137 @@
|
||||
module('Dropdown - selectOnClose');
|
||||
|
||||
var $ = require('jquery');
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
var Options = require('select2/options');
|
||||
|
||||
var SelectData = require('select2/data/select');
|
||||
|
||||
var Results = require('select2/results');
|
||||
var SelectOnClose = require('select2/dropdown/selectOnClose');
|
||||
|
||||
var ModifiedResults = Utils.Decorate(Results, SelectOnClose);
|
||||
|
||||
var options = new Options({
|
||||
selectOnClose: true
|
||||
});
|
||||
|
||||
test('will not trigger if no results were given', function (assert) {
|
||||
assert.expect(0);
|
||||
|
||||
var $element = $('<select></select>');
|
||||
var select = new ModifiedResults($element, options, new SelectData($element));
|
||||
|
||||
var $dropdown = select.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
select.bind(container, $('<div></div>'));
|
||||
|
||||
select.on('select', function () {
|
||||
assert.ok(false, 'The select event should not have been triggered');
|
||||
});
|
||||
|
||||
container.trigger('close');
|
||||
});
|
||||
|
||||
test('will not trigger if the results list is empty', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var $element = $('<select></select>');
|
||||
var select = new ModifiedResults($element, options, new SelectData($element));
|
||||
|
||||
var $dropdown = select.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
select.bind(container, $('<div></div>'));
|
||||
|
||||
select.on('select', function () {
|
||||
assert.ok(false, 'The select event should not have been triggered');
|
||||
});
|
||||
|
||||
select.append({
|
||||
results: []
|
||||
});
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('li').length,
|
||||
0,
|
||||
'There should not be any results in the dropdown'
|
||||
);
|
||||
|
||||
container.trigger('close');
|
||||
});
|
||||
|
||||
test('will not trigger if no results here highlighted', function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var $element = $('<select></select>');
|
||||
var select = new ModifiedResults($element, options, new SelectData($element));
|
||||
|
||||
var $dropdown = select.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
select.bind(container, $('<div></div>'));
|
||||
|
||||
select.on('select', function () {
|
||||
assert.ok(false, 'The select event should not have been triggered');
|
||||
});
|
||||
|
||||
select.append({
|
||||
results: [
|
||||
{
|
||||
id: '1',
|
||||
text: 'Test'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('li').length,
|
||||
1,
|
||||
'There should be one result in the dropdown'
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
$.trim($dropdown.find('li').text()),
|
||||
'Test',
|
||||
'The result should be the same as the one we appended'
|
||||
);
|
||||
|
||||
container.trigger('close');
|
||||
});
|
||||
|
||||
test('will trigger if there is a highlighted result', function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var $element = $('<select></select>');
|
||||
var select = new ModifiedResults($element, options, new SelectData($element));
|
||||
|
||||
var $dropdown = select.render();
|
||||
|
||||
var container = new MockContainer();
|
||||
select.bind(container, $('<div></div>'));
|
||||
|
||||
select.on('select', function () {
|
||||
assert.ok(true, 'The select event should have been triggered');
|
||||
});
|
||||
|
||||
select.append({
|
||||
results: [
|
||||
{
|
||||
id: '1',
|
||||
text: 'Test'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
assert.equal(
|
||||
$dropdown.find('li').length,
|
||||
1,
|
||||
'There should be one result in the dropdown'
|
||||
);
|
||||
|
||||
$dropdown.find('li').addClass('select2-results__option--highlighted');
|
||||
|
||||
container.trigger('close');
|
||||
});
|
||||
33
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/stopPropagation-tests.js
vendored
Executable file
33
public/assets/vendor/select2-4.1.0-rc.0/tests/dropdown/stopPropagation-tests.js
vendored
Executable file
@ -0,0 +1,33 @@
|
||||
module('Dropdown - Stoping event propagation');
|
||||
|
||||
var Dropdown = require('select2/dropdown');
|
||||
var StopPropagation = require('select2/dropdown/stopPropagation');
|
||||
|
||||
var $ = require('jquery');
|
||||
var Options = require('select2/options');
|
||||
var Utils = require('select2/utils');
|
||||
|
||||
var CustomDropdown = Utils.Decorate(Dropdown, StopPropagation);
|
||||
|
||||
var options = new Options();
|
||||
|
||||
test('click event does not propagate', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
var $container = $('#qunit-fixture .event-container');
|
||||
var container = new MockContainer();
|
||||
|
||||
var dropdown = new CustomDropdown($('#qunit-fixture select'), options);
|
||||
|
||||
var $dropdown = dropdown.render();
|
||||
dropdown.bind(container, $container);
|
||||
|
||||
$container.append($dropdown);
|
||||
$container.on('click', function () {
|
||||
assert.ok(false, 'The click event should have been stopped');
|
||||
});
|
||||
|
||||
$dropdown.trigger('click');
|
||||
|
||||
assert.ok(true, 'Something went wrong if this failed');
|
||||
});
|
||||
Reference in New Issue
Block a user