mirror of
https://github.com/owncloudarchive/contacts.git
synced 2025-02-11 05:54:27 +01:00
Remove old combobox user bower for onfontresize Add jcrop + md5 Add files to scrutinizer ignore list Remove misplaced text Selected the right MultiSelect library via bower Move bower dependencies to correct location
193 lines
6.3 KiB
JavaScript
193 lines
6.3 KiB
JavaScript
var el;
|
|
var body = document.body;
|
|
|
|
function button(){
|
|
return el.next();
|
|
}
|
|
|
|
function menu(){
|
|
return el.multiselect("widget");
|
|
}
|
|
|
|
function header(){
|
|
return menu().find('.ui-multiselect-header');
|
|
}
|
|
|
|
QUnit.done = function(){
|
|
$("select").hide();
|
|
};
|
|
|
|
(function($){
|
|
|
|
module("core");
|
|
|
|
test("init", function(){
|
|
expect(6);
|
|
|
|
el = $("select").multiselect(), $header = header();
|
|
ok( $header.find('a.ui-multiselect-all').css('display') !== 'none', 'select all is visible' );
|
|
ok( $header.find('a.ui-multiselect-none').css('display') !== 'none', 'select none is visible' );
|
|
ok( $header.find('a.ui-multiselect-close').css('display') !== 'none', 'close link is visible' );
|
|
ok( menu().is(':hidden'), 'menu is hidden');
|
|
ok( el.is(":hidden"), 'the original select is hidden');
|
|
ok( el.attr('tabIndex') == 2, 'button inherited the correct tab index');
|
|
el.multiselect("destroy");
|
|
});
|
|
|
|
test("form submission", function(){
|
|
expect(3);
|
|
|
|
var form = $('<form></form>').appendTo(body),
|
|
data;
|
|
|
|
el = $('<select id="test" name="test" multiple="multiple"><option value="foo" selected="selected">foo</option><option value="bar">bar</option></select>')
|
|
.appendTo(form)
|
|
.multiselect()
|
|
.multiselect("checkAll");
|
|
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=bar', 'after checking all and serializing the form, the correct keys were serialized');
|
|
|
|
el.multiselect("uncheckAll");
|
|
data = form.serialize();
|
|
equals( data.length, 0, 'after unchecking all and serializing the form, nothing was serialized');
|
|
|
|
// re-check all and destroy, exposing original select
|
|
el.multiselect("checkAll").multiselect("destroy");
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=bar', 'after checking all, destroying the widget, and serializing the form, the correct keys were serialized');
|
|
|
|
form.remove();
|
|
});
|
|
|
|
test("form submission, optgroups", function(){
|
|
expect(4);
|
|
|
|
var form = $('<form></form>').appendTo(body),
|
|
data;
|
|
|
|
el = $('<select id="test" name="test" multiple="multiple"><optgroup label="foo"><option value="foo">foo</option><option value="bar">bar</option></optgroup><optgroup label="bar"><option value="baz">baz</option><option value="bax">bax</option></optgroup></select>')
|
|
.appendTo(form)
|
|
.multiselect()
|
|
.multiselect("checkAll");
|
|
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=bar&test=baz&test=bax', 'after checking all and serializing the form, the correct keys were serialized');
|
|
|
|
el.multiselect("uncheckAll");
|
|
data = form.serialize();
|
|
equals( data.length, 0, 'after unchecking all and serializing the form, nothing was serialized');
|
|
|
|
// re-check all and destroy, exposing original select
|
|
el.multiselect("checkAll").multiselect("destroy");
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=bar&test=baz&test=bax', 'after checking all, destroying the widget, and serializing the form, the correct keys were serialized');
|
|
|
|
// reset option tags
|
|
el.find("option").each(function(){
|
|
this.selected = false;
|
|
});
|
|
|
|
// test checking one option in both optgroups
|
|
el.multiselect();
|
|
|
|
// finds the first input in each optgroup (assumes 2 options per optgroup)
|
|
el.multiselect("widget").find('.ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup-label) input:even').each(function( i ){
|
|
this.click();
|
|
});
|
|
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=baz', 'after manually checking one input in each group, the correct two are serialized');
|
|
|
|
el.multiselect('destroy');
|
|
form.remove();
|
|
});
|
|
|
|
test("form submission, single select", function(){
|
|
expect(7);
|
|
|
|
var form = $('<form></form>').appendTo("body"),
|
|
radios, data;
|
|
|
|
el = $('<select id="test" name="test" multiple="multiple"><option value="foo">foo</option><option value="bar">bar</option><option value="baz">baz</option></select>')
|
|
.appendTo(form)
|
|
.multiselect({ multiple: false });
|
|
|
|
// select multiple radios to ensure that, in the underlying select, only one
|
|
// will remain selected
|
|
radios = menu().find(":radio");
|
|
radios[0].click();
|
|
radios[2].click();
|
|
radios[1].click();
|
|
|
|
data = form.serialize();
|
|
equals( data, 'test=bar', 'the form serializes correctly after clicking on multiple radio buttons');
|
|
equals( radios.filter(":checked").length, 1, 'Only one radio button is selected');
|
|
|
|
// uncheckAll method
|
|
el.multiselect("uncheckAll");
|
|
data = form.serialize();
|
|
equals( data.length, 0, 'After unchecking all, nothing was serialized');
|
|
equals( radios.filter(":checked").length, 0, 'No radio buttons are selected');
|
|
|
|
// checkAll method
|
|
el.multiselect("checkAll");
|
|
data = form.serialize();
|
|
equals( el.multiselect("getChecked").length, 1, 'After checkAll, only one radio is selected');
|
|
equals( radios.filter(":checked").length, 1, 'One radio is selected');
|
|
|
|
// expose original
|
|
el.multiselect("destroy");
|
|
data = form.serialize();
|
|
equals( data, 'test=foo&test=bar&test=baz', 'after destroying the widget and serializing the form, the correct key was serialized: ' + data);
|
|
|
|
form.remove();
|
|
});
|
|
|
|
asyncTest("form reset, nothing pre-selected", function(){
|
|
expect(2);
|
|
|
|
var form = $('<form></form>').appendTo(body),
|
|
noneSelected = 'Please check something';
|
|
|
|
el = $('<select name="test" multiple="multiple"><option value="foo">foo</option><option value="bar">bar</option></select>')
|
|
.appendTo(form)
|
|
.multiselect({ noneSelectedText: noneSelected })
|
|
.multiselect("checkAll");
|
|
|
|
// trigger reset
|
|
form.trigger("reset");
|
|
|
|
setTimeout(function(){
|
|
equals( menu().find(":checked").length, 0, "no checked checkboxes" );
|
|
equals( button().text(), noneSelected, "none selected text");
|
|
el.multiselect('destroy');
|
|
form.remove();
|
|
start();
|
|
}, 10);
|
|
});
|
|
|
|
asyncTest("form reset, pre-selected options", function(){
|
|
expect(2);
|
|
|
|
var form = $('<form></form>').appendTo(body);
|
|
|
|
el = $('<select name="test" multiple="multiple"><option value="foo" selected="selected">foo</option><option value="bar" selected="selected">bar</option></select>')
|
|
.appendTo(form)
|
|
.multiselect({ selectedText: '# of # selected' })
|
|
.multiselect("uncheckAll");
|
|
|
|
// trigger reset
|
|
form.trigger("reset");
|
|
|
|
setTimeout(function(){
|
|
equals( menu().find(":checked").length, 2, "two checked checkboxes" );
|
|
equals( button().text(), "2 of 2 selected", "selected text" );
|
|
el.multiselect('destroy');
|
|
form.remove();
|
|
start();
|
|
}, 10);
|
|
});
|
|
|
|
})(jQuery);
|