123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- 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();
- });
-
- test('searching tags does not loose focus', function (assert) {
- assert.expect(1);
-
- var asyncDone = assert.async();
- var $ = require('jquery');
- var Options = require('select2/options');
- var Select2 = require('select2/core');
-
- var $select = $(
- '<select multiple="multiple">' +
- ' <option value="1">Text1</option>' +
- ' <option value="2">Text2</option>' +
- '</select>'
- );
-
- $('#qunit-fixture').append($select);
-
- var select = new Select2($select, {tags: true});
-
- var inputEl = select.selection.$search[0];
- inputEl.focus();
-
- select.on('selection:update', function() {
- assert.equal(document.activeElement, inputEl);
- asyncDone();
- });
-
- select.selection.trigger('query', {term: 'f'});
- select.selection.trigger('query', {term: 'ff'});
- });
|