diff options
Diffstat (limited to 'public/bower_components/select2/tests/data/inputData-tests.js')
-rw-r--r-- | public/bower_components/select2/tests/data/inputData-tests.js | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/public/bower_components/select2/tests/data/inputData-tests.js b/public/bower_components/select2/tests/data/inputData-tests.js new file mode 100644 index 0000000..f2124ef --- /dev/null +++ b/public/bower_components/select2/tests/data/inputData-tests.js @@ -0,0 +1,158 @@ +module('Data adapters - <input> compatibility'); + +var $ = require('jquery'); + +var Options = require('select2/options'); +var Utils = require('select2/utils'); + +var ArrayData = require('select2/data/array'); +var InputData = require('select2/compat/inputData'); + +var InputAdapter = Utils.Decorate(ArrayData, InputData); + +test('test that options can be selected', function (assert) { + var options = new Options({ + data: [ + { + id: 'test', + text: 'Test' + } + ] + }); + var $element = $('<input />'); + + var adapter = new InputAdapter($element, options); + + adapter.select({ + id: 'test' + }); + + assert.equal( + $element.val(), + 'test', + 'The id of the item should be the value' + ); +}); + +test('unselect the single selected option clears the value', function (assert) { + var options = new Options({ + data: [ + { + id: 'test', + text: 'Test', + selected: true + } + ] + }); + var $element = $('<input />'); + + var adapter = new InputAdapter($element, options); + + adapter.unselect({ + id: 'test' + }); + + assert.equal( + $element.val(), + '', + 'The id should no longer be in the value' + ); +}); + +test('options can be unselected individually', function (assert) { + var options = new Options({ + data: [ + { + id: 'test', + text: 'Test' + }, + { + id: 'test2', + text: 'Test2' + }, + { + id: 'test3', + text: 'Test3' + } + ] + }); + var $element = $('<input />'); + $element.val('test,test2,test3'); + + var adapter = new InputAdapter($element, options); + + adapter.unselect({ + id: 'test2' + }); + + assert.equal( + $element.val(), + 'test,test3', + 'The value should contain all the still selected options' + ); +}); + +test('default values can be set', function (assert) { + assert.expect(4); + + var options = new Options({ + data: [ + { + id: 'test', + text: 'Test' + } + ] + }); + var $element = $('<input value="test" />'); + + var adapter = new InputAdapter($element, options); + + adapter.current(function (data) { + assert.equal( + data.length, + 1, + 'There should only be a single selected option' + ); + + var item = data[0]; + + assert.equal(item.id, 'test'); + assert.equal(item.text, 'Test'); + }); + + assert.equal( + $element.val(), + 'test', + 'The value should not have been altered' + ); +}); + +test('no default value', function (assert) { + assert.expect(2); + + var options = new Options({ + data: [ + { + id: 'test', + text: 'Test' + } + ] + }); + var $element = $('<input />'); + + var adapter = new InputAdapter($element, options); + + adapter.current(function (data) { + assert.equal( + data.length, + 0, + 'There should be no selected options' + ); + }); + + assert.equal( + $element.val(), + '', + 'The value should not have been altered' + ); +}); |