(function() { describe('Setup', function() { it('should not allow duplicate initialization', function() { var instance_before, instance_after, test; test = setup_test('', {}); instance_before = test.$select[0].selectize; test.$select.selectize(); instance_after = test.$select[0].selectize; expect(instance_before).to.be.equal(instance_after); }); describe('', function() { it('should complete without exceptions', function() { var test = setup_test('', {}); }); it('should populate items,options from "dataAttr" if available', function() { var data = [{val: 'a', lbl: 'Hello'}, {val: 'b', lbl: 'World'}]; var test = setup_test('', { dataAttr: 'data-hydrate', valueField: 'val', labelField: 'lbl' }); expect(test.selectize.getValue()).to.be.equal('a,b'); assert.deepEqual(test.selectize.items, ['a','b']); assert.deepEqual(test.selectize.options, { 'a': {val: 'a', lbl: 'Hello', $order: 1}, 'b': {val: 'b', lbl: 'World', $order: 2} }); }); describe('getValue()', function() { it('should return value as a string', function() { var test = setup_test('', {delimiter: ','}); expect(test.selectize.getValue()).to.be.a('string'); }); it('should return "" when empty', function() { var test = setup_test('', {delimiter: ','}); expect(test.selectize.getValue()).to.be.equal(''); }); it('should return proper value when not empty', function() { var test = setup_test('', {delimiter: ','}); expect(test.selectize.getValue()).to.be.equal('a,b'); }); }); describe('', function() { it('should propagate original input attributes to the generated input', function() { var test = setup_test('', {}); expect(test.selectize.$control_input.attr('autocorrect')).to.be.equal('off'); expect(test.selectize.$control_input.attr('autocapitalize')).to.be.equal('none'); }); it('should not add attributes if not present in the original', function() { var test = setup_test('', {}); expect(test.selectize.$control_input.attr('autocorrect')).to.be.equal(undefined); expect(test.selectize.$control_input.attr('autocapitalize')).to.be.equal(undefined); }); }); }); describe('', {}); }); it('should allow for values optgroups with duplicated options', function() { var test = setup_test([''].join(''), { optgroupValueField: 'val', optgroupField: 'grp' }); assert.deepEqual(test.selectize.options, { 'a': {text: 'Item A', value: 'a', grp: ['Group 1', 'Group 2'], $order: 1}, 'b': {text: 'Item B', value: 'b', grp: ['Group 1', 'Group 2'], $order: 2} }); assert.deepEqual(test.selectize.optgroups, { 'Group 1': {label: 'Group 1', val: 'Group 1', $order: 3}, 'Group 2': {label: 'Group 2', val: 'Group 2', $order: 4} }); }); it('should add options in text form (no html entities)', function() { var test = setup_test('', {}); expect(test.selectize.options['a'].text).to.be.equal(''); }); it('should keep options in original order if no sort given', function(done) { var test = setup_test([ '' ].join(), {}); var order_expected = ['AL','AK','AZ','AR','CO','CT','DE','DC','FL','GA','HI','ID','IL','IN','IA','KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT','VA','WA','WV','WI','01','10']; var order_actual = []; test.selectize.refreshOptions(true); window.setTimeout(function() { test.selectize.$dropdown.find('[data-value]').each(function(i, el) { order_actual.push($(el).attr('data-value')); }); expect(order_actual).to.eql(order_expected); done(); }, 0); }); describe('getValue()', function() { it('should return "" when empty', function() { var test = setup_test('', {}); expect(test.selectize.getValue()).to.be.equal('a'); }); }); }); describe('', {}); }); describe('getValue()', function() { it('should return [] when empty', function() { var test = setup_test('', {}); expect(test.selectize.getValue()).to.deep.equal(['a']); }); }); }); describe('', {}); }); it('should have "disabled" class', function() { expect(test.selectize.$control.hasClass('disabled')).to.be.equal(true); }); it('should have isDisabled property set to true', function() { expect(test.selectize.isDisabled).to.be.equal(true); }); }); describe('' + '' + '' + '', {}); $form = test.$select.parents('form'); $button = $('