QUnit.module('select2(val)'); var Utils = require('select2/utils'); QUnit.test('multiple elements with arguments works', function (assert) { var $ = require('jquery'); require('jquery.select2'); var $first = $( '' ); 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' ); }); QUnit.test('initializes when jQuery $.data contains' + ' cyclic reference', function (assert) { var $ = require('jquery'); require('jquery.select2'); var $select = $( '' ); // Add a circular reference object using jQuery. var recursiveObject = {}; recursiveObject.same = recursiveObject; $select.data('same', recursiveObject); $select.select2(); assert.equal( $select.val(), '3', 'The option value should be pulled correctly' ); }); QUnit.test('$element.data returns instance and options correctly', function (assert) { var $ = require('jquery'); require('jquery.select2'); var $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); });