b9b55cec44
As jQuery 1.7.2 is the lowest version of jQuery supported by Select2, it makes sense to run the tests on it. For the most part, we can assume that the newer versions of Select2 are backwards compatible enough such that this isn't an issue. The recommended version of jQuery to use is the latest though, which is why the jQuery file is only included in the tests. This revealed a few issues with our data fallbacks and `.append` functionality that was introduced in jQuery 1.8.
73 lines
1.5 KiB
JavaScript
73 lines
1.5 KiB
JavaScript
module('Selection containers - Multiple');
|
|
|
|
var MultipleSelection = require('select2/selection/multiple');
|
|
|
|
var $ = require('jquery');
|
|
var Options = require('select2/options');
|
|
var Utils = require('select2/utils');
|
|
|
|
var options = new Options({});
|
|
|
|
test('display uses templateSelection', function (assert) {
|
|
var called = false;
|
|
|
|
var templateOptions = new Options({
|
|
templateSelection: function (data) {
|
|
called = true;
|
|
|
|
return data.text;
|
|
}
|
|
});
|
|
|
|
var selection = new MultipleSelection(
|
|
$('#qunit-fixture .multiple'),
|
|
templateOptions
|
|
);
|
|
|
|
var out = selection.display({
|
|
text: 'test'
|
|
});
|
|
|
|
assert.ok(called);
|
|
|
|
assert.equal(out, 'test');
|
|
});
|
|
|
|
test('empty update clears the selection', function (assert) {
|
|
var selection = new MultipleSelection(
|
|
$('#qunit-fixture .multiple'),
|
|
options
|
|
);
|
|
|
|
var $selection = selection.render();
|
|
var $rendered = $selection.find('.select2-selection__rendered');
|
|
|
|
$rendered.text('testing');
|
|
|
|
selection.update([]);
|
|
|
|
assert.equal($rendered.text(), '');
|
|
});
|
|
|
|
test('escapeMarkup is being used', function (assert) {
|
|
var selection = new MultipleSelection(
|
|
$('#qunit-fixture .multiple'),
|
|
options
|
|
);
|
|
|
|
var $selection = selection.render();
|
|
var $rendered = $selection.find('.select2-selection__rendered');
|
|
|
|
var unescapedText = '<script>bad("stuff");</script>';
|
|
|
|
selection.update([{
|
|
text: unescapedText
|
|
}]);
|
|
|
|
assert.equal(
|
|
$rendered.text().substr(1),
|
|
unescapedText,
|
|
'The text should be escaped by default to prevent injection'
|
|
);
|
|
});
|