checklist test
This commit is contained in:
src
test
@ -43,6 +43,7 @@
|
||||
<script src="unit/select.js"></script>
|
||||
<script src="unit/textarea.js"></script>
|
||||
<script src="unit/api.js"></script>
|
||||
<script src="unit/checklist.js"></script>
|
||||
<script>
|
||||
if(fc.f === 'bootstrap') {
|
||||
loadJs('unit/date.js');
|
||||
|
@ -1,7 +1,7 @@
|
||||
var timeout = 200;
|
||||
$(function () {
|
||||
|
||||
$.mockjaxSettings.responseTime = 50;
|
||||
$.mockjaxSettings.responseTime = 50;
|
||||
|
||||
$.mockjax({
|
||||
url: 'post.php',
|
||||
@ -23,6 +23,38 @@ $(function () {
|
||||
this.responseText = settings;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
window.groups = {
|
||||
0: 'Guest',
|
||||
1: 'Service',
|
||||
2: 'Customer',
|
||||
3: 'Operator',
|
||||
4: 'Support',
|
||||
5: 'Admin',
|
||||
6: '',
|
||||
'': 'Nothing'
|
||||
};
|
||||
|
||||
//groups as array
|
||||
window.groupsArr = [];
|
||||
for(var i in groups) {
|
||||
groupsArr.push({value: i, text: groups[i]});
|
||||
}
|
||||
|
||||
window.size = groupsArr.length;
|
||||
|
||||
$.mockjax({
|
||||
url: 'groups.php',
|
||||
responseText: groups
|
||||
});
|
||||
|
||||
$.mockjax({
|
||||
url: 'groups-error.php',
|
||||
status: 500,
|
||||
responseText: 'Internal Server Error'
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// usefull functions
|
||||
|
96
test/unit/checklist.js
Normal file
96
test/unit/checklist.js
Normal file
@ -0,0 +1,96 @@
|
||||
$(function () {
|
||||
|
||||
module("checklist", {
|
||||
setup: function(){
|
||||
sfx = $('#qunit-fixture'),
|
||||
fx = $('#async-fixture');
|
||||
$.fn.editable.defaults.name = 'name2';
|
||||
//clear cache
|
||||
$(document).removeData('groups.php-'+$.fn.editable.defaults.name);
|
||||
$.support.transition = false;
|
||||
}
|
||||
});
|
||||
|
||||
asyncTest("should load options, set correct value and save new value", function () {
|
||||
var sep = '-',
|
||||
newValue,
|
||||
e = $('<a href="#" data-type="checklist" data-url="post.php"></a>').appendTo(fx).editable({
|
||||
pk: 1,
|
||||
source: groupsArr,
|
||||
value: [2, 3],
|
||||
viewseparator: sep
|
||||
});
|
||||
|
||||
equal(e.text(), groups[2]+sep+groups[3], 'autotext ok');
|
||||
|
||||
e.click();
|
||||
var p = tip(e);
|
||||
equal(p.find('input[type="checkbox"]').length, groupsArr.length, 'checkboxes rendered');
|
||||
equal(p.find('input[type="checkbox"]:checked').length, 2, 'checked count ok');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(0).val(), 2, '1st checked');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(1).val(), 3, '2nd checked');
|
||||
|
||||
//set new value
|
||||
p.find('input[type="checkbox"]:checked').eq(0).click();
|
||||
p.find('input[type="checkbox"]').first().click();
|
||||
newValue = p.find('input[type="checkbox"]').first().val();
|
||||
|
||||
//submit
|
||||
p.find('form').submit();
|
||||
|
||||
setTimeout(function() {
|
||||
ok(!p.is(':visible'), 'popup closed');
|
||||
|
||||
equal(e.data('editable').value.join(''), [newValue, 3].join(''), 'new value ok')
|
||||
equal(e.text(), groups[newValue]+sep+groups[3], 'new text ok');
|
||||
|
||||
// open container again to see what checked
|
||||
e.click()
|
||||
p = tip(e);
|
||||
|
||||
equal(p.find('input[type="checkbox"]').length, groupsArr.length, 'checkboxes rendered');
|
||||
equal(p.find('input[type="checkbox"]:checked').length, 2, 'checked count ok');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(0).val(), newValue, '1st checked');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(1).val(), 3, '2nd checked');
|
||||
|
||||
e.remove();
|
||||
start();
|
||||
}, timeout);
|
||||
});
|
||||
|
||||
asyncTest("test limit", function () {
|
||||
var e = $('<a href="#" data-type="checklist" data-value="2,3" data-url="post.php"></a>').appendTo(fx).editable({
|
||||
pk: 1,
|
||||
source: groupsArr,
|
||||
limit: 1,
|
||||
limitText: '{checked} of {count}'
|
||||
});
|
||||
|
||||
equal(e.text(), '2 of '+groupsArr.length, 'autotext ok');
|
||||
|
||||
e.click();
|
||||
var p = tip(e);
|
||||
|
||||
equal(p.find('input[type="checkbox"]:checked').length, 2, 'checked count ok');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(0).val(), 2, '1st checked');
|
||||
equal(p.find('input[type="checkbox"]:checked').eq(1).val(), 3, '2nd checked');
|
||||
|
||||
//set new value
|
||||
p.find('input[type="checkbox"]').first().click();
|
||||
newValue = p.find('input[type="checkbox"]').first().val();
|
||||
|
||||
//submit
|
||||
p.find('form').submit();
|
||||
|
||||
setTimeout(function() {
|
||||
ok(!p.is(':visible'), 'popup closed');
|
||||
|
||||
equal(e.text(), '3 of '+groupsArr.length, 'autotext ok');
|
||||
|
||||
e.remove();
|
||||
start();
|
||||
}, timeout);
|
||||
});
|
||||
|
||||
|
||||
});
|
@ -1,34 +1,4 @@
|
||||
$(function () {
|
||||
|
||||
window.groups = {
|
||||
0: 'Guest',
|
||||
1: 'Service',
|
||||
2: 'Customer',
|
||||
3: 'Operator',
|
||||
4: 'Support',
|
||||
5: 'Admin',
|
||||
6: '',
|
||||
'': 'Nothing'
|
||||
};
|
||||
|
||||
//groups as array
|
||||
window.groupsArr = [];
|
||||
for(var i in groups) {
|
||||
groupsArr.push({value: i, text: groups[i]});
|
||||
}
|
||||
|
||||
window.size = groupsArr.length;
|
||||
|
||||
$.mockjax({
|
||||
url: 'groups.php',
|
||||
responseText: groups
|
||||
});
|
||||
|
||||
$.mockjax({
|
||||
url: 'groups-error.php',
|
||||
status: 500,
|
||||
responseText: 'Internal Server Error'
|
||||
});
|
||||
|
||||
module("select", {
|
||||
setup: function(){
|
||||
|
Reference in New Issue
Block a user