From b11d6e20b08f995e53a80a70f0929ba3af6ee1e9 Mon Sep 17 00:00:00 2001 From: Julian Yuste Date: Wed, 25 Oct 2017 18:25:50 +0200 Subject: [PATCH] Fix for issue #4632 --- src/js/select2/data/select.js | 2 +- tests/data/array-tests.js | 14 ++++++-- tests/data/select-tests.js | 65 +++++++++++++++++++++++++++++++++++ tests/unit.html | 2 ++ 4 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/js/select2/data/select.js b/src/js/select2/data/select.js index 6865a47daf..b36b97609c 100644 --- a/src/js/select2/data/select.js +++ b/src/js/select2/data/select.js @@ -244,7 +244,7 @@ define([ }; SelectAdapter.prototype._normalizeItem = function (item) { - if (!$.isPlainObject(item)) { + if(item !== Object(item)){ item = { id: item, text: item diff --git a/tests/data/array-tests.js b/tests/data/array-tests.js index 65a6e32c3d..cbea97c504 100644 --- a/tests/data/array-tests.js +++ b/tests/data/array-tests.js @@ -4,6 +4,15 @@ var ArrayData = require('select2/data/array'); var $ = require('jquery'); var Options = require('select2/options'); +var UserDefinedType = function( id, text ){ + var self=this; + + self.id=id; + self.text=text; + + return self; +}; + var arrayOptions = new Options({ data: [ { @@ -17,7 +26,8 @@ var arrayOptions = new Options({ { id: '2', text: '2' - } + }, + new UserDefinedType(1, 'aaaaaa') ] }); @@ -216,7 +226,7 @@ test('option tags are automatically generated', function (assert) { assert.equal( $select.find('option').length, - 3, + 4, 'An + +