diff options
author | Louis Cuny <louiscuny@gmail.com> | 2012-07-26 12:26:57 +0200 |
---|---|---|
committer | Louis Cuny <louiscuny@gmail.com> | 2012-07-26 12:26:57 +0200 |
commit | e8abd1eaf4979316d82abac7ecb71418b43c0ff0 (patch) | |
tree | e02c5f9dce44e510e2a91a9c9c402c67863527fc /test/spec/multiSelectSpec.js | |
parent | 37305b1ae00565d4b328da4dbe93109571bd744c (diff) | |
download | multi-select-e8abd1eaf4979316d82abac7ecb71418b43c0ff0.zip multi-select-e8abd1eaf4979316d82abac7ecb71418b43c0ff0.tar.gz multi-select-e8abd1eaf4979316d82abac7ecb71418b43c0ff0.tar.bz2 |
replace attr by prop() methodto determine if option is selected
Diffstat (limited to 'test/spec/multiSelectSpec.js')
-rw-r--r-- | test/spec/multiSelectSpec.js | 59 |
1 files changed, 53 insertions, 6 deletions
diff --git a/test/spec/multiSelectSpec.js b/test/spec/multiSelectSpec.js index eca1b3c..65cbea8 100644 --- a/test/spec/multiSelectSpec.js +++ b/test/spec/multiSelectSpec.js @@ -5,14 +5,17 @@ describe("multiSelect", function() { beforeEach(function() { $('<select id="multi-select" multiple="multiple" name="test[]"></select>').appendTo('body'); for (var i=1; i <= 10; i++) { - $('<option value="value'+i+'">text'+i+'</option>').appendTo('#multi-select'); + $('<option value="value'+i+'">text'+i+'</option>').appendTo($("#multi-select")); }; select = $("#multi-select"); - select.multiSelect(); - msContainer = select.next(); }); - describe('init', function(){ + describe('init without options', function(){ + + beforeEach(function() { + select.multiSelect(); + msContainer = select.next(); + }); it('should hide the standard select', function(){ expect(select.css('position')).toBe('absolute'); @@ -39,13 +42,53 @@ describe("multiSelect", function() { expect($('.ms-selection ul.ms-list li').length).toEqual(0); }); + }); + + describe('init with pre-selected options', function(){ + + var selectedValues = []; + + beforeEach(function() { + var firstOption = select.children('option').first(); + var lastOption = select.children('option').last(); + firstOption.prop('selected', true); + lastOption.prop('selected', true); + selectedValues.push(firstOption.val(), lastOption.val()); + select.multiSelect(); + msContainer = select.next(); + }); + + it ('should select the pre-selected options', function(){ + $.each(selectedValues, function(index, value){ + expect($('.ms-selectable ul.ms-list li[ms-value="'+value+'"]')).toBe('.ms-selected'); + }); + expect($('.ms-selectable ul.ms-list li.ms-selected').length).toEqual(2); + }); + }); + + describe('init with keepOrder option activated', function(){ + beforeEach(function() { + $('#multi-select').multiSelect({ keepOrder: true }); + msContainer = select.next(); + firstItem = $('.ms-selectable ul.ms-list li').first() + lastItem = $('.ms-selectable ul.ms-list li').last(); + lastItem.trigger('click'); + firstItem.trigger('click'); + }); + it('should keep order on selection list', function(){ + expect($('.ms-selection li', msContainer).first().attr('ms-value')).toBe('value1'); + expect($('.ms-selection li', msContainer).last().attr('ms-value')).toBe('value10'); + }); }); + + describe("When selectable item is clicked", function(){ var clickedItem; - beforeEach(function(){ + beforeEach(function() { + $('#multi-select').multiSelect(); clickedItem = $('.ms-selectable ul.ms-list li').first(); spyOnEvent(select, 'change'); clickedItem.trigger('click'); @@ -70,10 +113,14 @@ describe("multiSelect", function() { it('should trigger the standard select change event', function(){ expect('change').toHaveBeenTriggeredOn("#multi-select"); }); + + afterEach(function(){ + select.multiSelect('deselect_all'); + }); + }); afterEach(function () { $("#multi-select, .ms-container").remove(); }); - });
\ No newline at end of file |