|
@@ -25,4 +25,32 @@ test('multiple elements with arguments works', function (assert) {
|
|
'2',
|
|
'2',
|
|
'The call should also change the value on the second element'
|
|
'The call should also change the value on the second element'
|
|
);
|
|
);
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('initializes correctly when jQuery $.data contains cyclic reference object', function (assert) {
|
|
|
|
+ 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 = {};
|
|
|
|
+
|
|
|
|
+ recursiveObject['same'] = recursiveObject;
|
|
|
|
+
|
|
|
|
+ $select.data('same', recursiveObject);
|
|
|
|
+
|
|
|
|
+ $select.select2();
|
|
|
|
+
|
|
|
|
+ assert.equal(
|
|
|
|
+ $select.val(),
|
|
|
|
+ '3',
|
|
|
|
+ 'The option value should be pulled correctly'
|
|
|
|
+ );
|
|
});
|
|
});
|