aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/select2/tests/integration
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/integration
parentdfd839f27146df0ad0494e11734fc7d310c70ebf (diff)
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/select2/tests/integration')
-rw-r--r--public/bower_components/select2/tests/integration/dom-changes.js257
-rw-r--r--public/bower_components/select2/tests/integration/jquery-calls.js30
-rw-r--r--public/bower_components/select2/tests/integration/select2-methods.js139
3 files changed, 426 insertions, 0 deletions
diff --git a/public/bower_components/select2/tests/integration/dom-changes.js b/public/bower_components/select2/tests/integration/dom-changes.js
new file mode 100644
index 0000000..2d89ae2
--- /dev/null
+++ b/public/bower_components/select2/tests/integration/dom-changes.js
@@ -0,0 +1,257 @@
+module('DOM integration');
+
+test('adding a new unselected option changes nothing', function (assert) {
+ // Any browsers which support mutation observers will not trigger the event
+ var expected = 4;
+ if (window.MutationObserver) {
+ expected = 2;
+ } else if (!window.addEventListener) {
+ expected = 2;
+ }
+
+ assert.expect(expected);
+
+ var asyncDone = null;
+ var syncDone = assert.async();
+
+ if (expected != 2) {
+ asyncDone = assert.async();
+ }
+
+ var $ = require('jquery');
+ var Options = require('select2/options');
+ var Select2 = require('select2/core');
+
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '</select>'
+ );
+
+ $('#qunit-fixture').append($select);
+
+ var select = new Select2($select);
+
+ select.on('selection:update', function (args) {
+ assert.equal(
+ args.data.length,
+ 1,
+ 'There was more than one selection'
+ );
+
+ assert.equal(
+ args.data[0].id,
+ 'One',
+ 'The selection changed to something other than One'
+ );
+
+ if (expected != 2) {
+ asyncDone();
+ }
+ });
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ var $option = $('<option>Three</option>');
+
+ $select.append($option);
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ syncDone();
+});
+
+test('adding a new selected option changes the value', function (assert) {
+ // handle IE 8 not being supported
+ var expected = 4;
+ if (!window.MutationObserver && !window.addEventListener) {
+ expected = 2;
+ }
+
+ assert.expect(expected);
+
+ var asyncDone = null;
+ var syncDone = assert.async();
+
+ if (expected != 2) {
+ asyncDone = assert.async();
+ }
+
+ var $ = require('jquery');
+ var Options = require('select2/options');
+ var Select2 = require('select2/core');
+
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '</select>'
+ );
+
+ $('#qunit-fixture').append($select);
+
+ var select = new Select2($select);
+
+ select.on('selection:update', function (args) {
+ assert.equal(
+ args.data.length,
+ 1,
+ 'There was more than one selection'
+ );
+
+ assert.equal(
+ args.data[0].id,
+ 'Three',
+ 'The selection did not change to Three'
+ );
+
+ if (expected != 2) {
+ asyncDone();
+ }
+ });
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ var $option = $('<option selected>Three</option>');
+
+ $select.append($option);
+
+ assert.equal(
+ $select.val(),
+ 'Three'
+ );
+
+ syncDone();
+});
+
+test('removing an unselected option changes nothing', function (assert) {
+ // Any browsers which support mutation observers will not trigger the event
+ var expected = 4;
+ if (!window.MutationObserver && !window.addEventListener) {
+ expected = 2;
+ }
+
+ assert.expect(expected);
+
+ var asyncDone = null;
+ var syncDone = assert.async();
+
+ if (expected != 2) {
+ asyncDone = assert.async();
+ }
+
+ var $ = require('jquery');
+ var Options = require('select2/options');
+ var Select2 = require('select2/core');
+
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '</select>'
+ );
+
+ $('#qunit-fixture').append($select);
+
+ var select = new Select2($select);
+
+ select.on('selection:update', function (args) {
+ assert.equal(
+ args.data.length,
+ 1,
+ 'There was more than one selection'
+ );
+
+ assert.equal(
+ args.data[0].id,
+ 'One',
+ 'The selection changed to something other than One'
+ );
+
+ if (expected != 2) {
+ asyncDone();
+ }
+ });
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ $select.children().eq(1).remove();
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ syncDone();
+});
+
+test('removing a selected option changes the value', function (assert) {
+ // handle IE 8 not being supported
+ var expected = 3;
+ if (!window.MutationObserver && !window.addEventListener) {
+ expected = 2;
+ }
+
+ assert.expect(expected);
+
+ var asyncDone = null;
+ var syncDone = assert.async();
+
+ if (expected != 2) {
+ asyncDone = assert.async();
+ }
+
+ var $ = require('jquery');
+ var Options = require('select2/options');
+ var Select2 = require('select2/core');
+
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '</select>'
+ );
+
+ $('#qunit-fixture').append($select);
+
+ var select = new Select2($select);
+
+ select.on('selection:update', function (args) {
+ assert.equal(
+ args.data.length,
+ 1,
+ 'There was more than one selection'
+ );
+
+ if (expected != 2) {
+ asyncDone();
+ }
+ });
+
+ assert.equal(
+ $select.val(),
+ 'One'
+ );
+
+ $select.children().eq(0).remove();
+
+ assert.equal(
+ $select.val(),
+ 'Two'
+ );
+
+ syncDone();
+}); \ No newline at end of file
diff --git a/public/bower_components/select2/tests/integration/jquery-calls.js b/public/bower_components/select2/tests/integration/jquery-calls.js
new file mode 100644
index 0000000..6a30137
--- /dev/null
+++ b/public/bower_components/select2/tests/integration/jquery-calls.js
@@ -0,0 +1,30 @@
+module('select2(val)');
+
+test('multiple elements with arguments works', function (assert) {
+ var $ = require('jquery');
+ require('jquery.select2');
+
+ var $first = $(
+ '<select>' +
+ '<option>1</option>' +
+ '<option>2</option>' +
+ '</select>'
+ );
+ var $second = $first.clone();
+
+ var $both = $first.add($second);
+ $both.select2();
+
+ $both.select2('val', '2');
+
+ assert.equal(
+ $first.val(),
+ '2',
+ 'The call should change the value on the first element'
+ );
+ assert.equal(
+ $second.val(),
+ '2',
+ 'The call should also change the value on the second element'
+ );
+}); \ No newline at end of file
diff --git a/public/bower_components/select2/tests/integration/select2-methods.js b/public/bower_components/select2/tests/integration/select2-methods.js
new file mode 100644
index 0000000..b1e344a
--- /dev/null
+++ b/public/bower_components/select2/tests/integration/select2-methods.js
@@ -0,0 +1,139 @@
+module('select2(data)');
+
+var $ = require('jquery');
+var Select2 = require('select2/core');
+var Options = require('select2/options');
+
+test('single default selection returned', function (assert) {
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '<option value="3" selected>Three</option>' +
+ '</select>'
+ );
+ var options = new Options({});
+
+ var select = new Select2($select, options);
+
+ var items = select.data();
+
+ assert.equal(
+ items.length,
+ 1,
+ 'The one selected item should be returned'
+ );
+
+ var first = items[0];
+
+ assert.equal(
+ first.id,
+ '3',
+ 'The first option was correct'
+ );
+
+ assert.equal(
+ first.text,
+ 'Three',
+ 'The first option was correct'
+ );
+});
+
+test('multiple default selections returned', function (assert) {
+ var $select = $(
+ '<select multiple>' +
+ '<option selected>One</option>' +
+ '<option>Two</option>' +
+ '<option value="3" selected>Three</option>' +
+ '</select>'
+ );
+ var options = new Options({});
+
+ var select = new Select2($select, options);
+
+ var items = select.data();
+
+ assert.equal(
+ items.length,
+ 2,
+ 'The two selected items should be returned'
+ );
+
+ var first = items[0];
+
+ assert.equal(
+ first.id,
+ 'One',
+ 'The first option was correct'
+ );
+
+ var second = items[1];
+
+ assert.equal(
+ second.id,
+ '3',
+ 'The option value should be pulled correctly'
+ );
+});
+
+module('select2(val)');
+
+test('single value matches jquery value', function (assert) {
+ var $select = $(
+ '<select>' +
+ '<option>One</option>' +
+ '<option>Two</option>' +
+ '<option value="3" selected>Three</option>' +
+ '</select>'
+ );
+ var options = new Options({});
+
+ var select = new Select2($select, options);
+
+ var value = select.val();
+
+ assert.equal(
+ value,
+ '3',
+ 'The value should match the option tag attribute'
+ );
+
+ assert.equal(
+ value,
+ $select.val(),
+ 'The value should match the jquery value'
+ );
+});
+
+test('multiple value matches the jquery value', function (assert) {
+ var $select = $(
+ '<select multiple>' +
+ '<option selected>One</option>' +
+ '<option>Two</option>' +
+ '<option value="3" selected>Three</option>' +
+ '</select>'
+ );
+ var options = new Options({});
+
+ var select = new Select2($select, options);
+
+ var value = select.val();
+
+ assert.equal(
+ value.length,
+ 2,
+ 'Two options should be selected'
+ );
+
+ assert.deepEqual(
+ value,
+ ['One', '3'],
+ 'The values should match the option tag attribute'
+ );
+
+ assert.deepEqual(
+ value,
+ $select.val(),
+ 'The values should match the jquery values'
+ );
+});