Browse Source

Added an integration test to ensure issue does not come back in the future.

Nadim Afana 9 years ago
parent
commit
5fd270c9e4
1 changed files with 28 additions and 0 deletions
  1. 28 0
      tests/integration/jquery-calls.js

+ 28 - 0
tests/integration/jquery-calls.js

@@ -25,4 +25,32 @@ test('multiple elements with arguments works', function (assert) {
     '2',
     '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'
+  );
 });