|
@@ -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'
|
|
|
+ );
|
|
|
+});
|