aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/select2/tests/selection/multiple-tests.js
diff options
context:
space:
mode:
authorMarvin Borner2018-07-13 19:06:45 +0200
committerMarvin Borner2018-07-13 19:06:45 +0200
commit6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch)
treedbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/select2/tests/selection/multiple-tests.js
parentdfd839f27146df0ad0494e11734fc7d310c70ebf (diff)
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/select2/tests/selection/multiple-tests.js')
-rw-r--r--public/bower_components/select2/tests/selection/multiple-tests.js149
1 files changed, 149 insertions, 0 deletions
diff --git a/public/bower_components/select2/tests/selection/multiple-tests.js b/public/bower_components/select2/tests/selection/multiple-tests.js
new file mode 100644
index 0000000..0d0f9c2
--- /dev/null
+++ b/public/bower_components/select2/tests/selection/multiple-tests.js
@@ -0,0 +1,149 @@
+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('templateSelection can addClass', function (assert) {
+ var called = false;
+
+ var templateOptions = new Options({
+ templateSelection: function (data, container) {
+ called = true;
+ container.addClass('testclass');
+ return data.text;
+ }
+ });
+
+ var selection = new MultipleSelection(
+ $('#qunit-fixture .multiple'),
+ templateOptions
+ );
+
+ var $container = selection.selectionContainer();
+
+ var out = selection.display({
+ text: 'test'
+ }, $container);
+
+ assert.ok(called);
+
+ assert.equal(out, 'test');
+
+ assert.ok($container.hasClass('testclass'));
+});
+
+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'
+ );
+});
+
+test('clear button respects the disabled state', function (assert) {
+ var options = new Options({
+ disabled: true
+ });
+
+ var $select = $('#qunit-fixture .multiple');
+
+ var container = new MockContainer();
+ var $container = $('<div></div>');
+
+ var selection = new MultipleSelection(
+ $select,
+ options
+ );
+
+ var $selection = selection.render();
+ $container.append($selection);
+
+ selection.bind(container, $container);
+
+ // Select an option
+ selection.update([{
+ text: 'Test'
+ }]);
+
+ var $rendered = $selection.find('.select2-selection__rendered');
+
+ var $pill = $rendered.find('.select2-selection__choice');
+
+ assert.equal($pill.length, 1, 'There should only be one selection');
+
+ var $remove = $pill.find('.select2-selection__choice__remove');
+
+ assert.equal(
+ $remove.length,
+ 1,
+ 'The remove icon is displayed for the selection'
+ );
+
+ // Set up the unselect handler
+ selection.on('unselect', function (params) {
+ assert.ok(false, 'The unselect handler should not be triggered');
+ });
+
+ // Trigger the handler for the remove icon
+ $remove.trigger('click');
+});