2016-05-24 06:32:02 +03:00
|
|
|
module('select2(val)');
|
|
|
|
|
2017-11-19 20:51:07 +03:00
|
|
|
var Utils = require('select2/utils');
|
|
|
|
|
2016-03-27 22:16:22 +03:00
|
|
|
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'
|
|
|
|
);
|
2016-05-09 05:32:41 +03:00
|
|
|
});
|
|
|
|
|
2016-05-09 05:51:46 +03:00
|
|
|
test('initializes when jQuery $.data contains' +
|
|
|
|
' cyclic reference', function (assert) {
|
2016-05-09 05:32:41 +03:00
|
|
|
var $ = require('jquery');
|
|
|
|
require('jquery.select2');
|
|
|
|
|
|
|
|
var $select = $(
|
|
|
|
'<select>' +
|
|
|
|
'<option>One</option>' +
|
|
|
|
'<option>Two</option>' +
|
|
|
|
'<option value="3" selected>Three</option>' +
|
|
|
|
'</select>'
|
|
|
|
);
|
|
|
|
|
|
|
|
// Add a circular reference object using jQuery.
|
|
|
|
var recursiveObject = {};
|
|
|
|
|
2016-05-09 05:45:58 +03:00
|
|
|
recursiveObject.same = recursiveObject;
|
2016-05-09 05:32:41 +03:00
|
|
|
|
|
|
|
$select.data('same', recursiveObject);
|
|
|
|
|
|
|
|
$select.select2();
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
$select.val(),
|
|
|
|
'3',
|
|
|
|
'The option value should be pulled correctly'
|
|
|
|
);
|
2017-11-19 20:51:07 +03:00
|
|
|
});
|
|
|
|
|
|
|
|
test('$element.data returns instance and options correctly',
|
|
|
|
function (assert) {
|
|
|
|
var $ = require('jquery');
|
|
|
|
require('jquery.select2');
|
|
|
|
|
|
|
|
var $select = $(
|
|
|
|
'<select>' +
|
|
|
|
'<option value="1">One</option>' +
|
|
|
|
'<option value="2">Two</option>' +
|
|
|
|
'<option value="3" selected>Three</option>' +
|
|
|
|
'</select>'
|
|
|
|
);
|
|
|
|
|
|
|
|
// Initialize.
|
|
|
|
$select.select2({maximumSelectionLength: 2, multiple: true});
|
|
|
|
|
|
|
|
assert.equal(
|
|
|
|
$select.val(),
|
|
|
|
'3',
|
|
|
|
'Only 1 option should be pulled.'
|
|
|
|
);
|
|
|
|
|
|
|
|
// Try to resolve instance via .data('select2').
|
|
|
|
var $instance = $select.data('select2');
|
|
|
|
assert.ok($instance);
|
|
|
|
assert.ok($instance.options);
|
|
|
|
|
|
|
|
// Ensure $select.data('select2') is the same instance
|
|
|
|
// created by .select2()
|
|
|
|
assert.equal($instance, Utils.GetData($instance.$element[0],
|
|
|
|
'select2'));
|
|
|
|
|
|
|
|
// Ensure initialized property matches.
|
|
|
|
assert.equal($instance.options.options.maximumSelectionLength,
|
|
|
|
2);
|
2016-03-27 22:16:22 +03:00
|
|
|
});
|