Files
dist
src
test
libs
unit
api.js
checklist.js
combodate.js
common.js
date.js
datefield.js
datetime.js
datetimefield.js
dateui.js
dateuifield.js
select.js
select2.js
text.js
textarea.js
typeahead.js
typeaheadjs.js
wysihtml5.js
coverage
index.html
loader.js
main.js
mocks.js
require.js
style.css
.gitignore
CHANGELOG.txt
Gruntfile.js
LICENSE-MIT
Package.nuspec
README.md
bower.json
composer.json
package.json
x-editable/test/unit/combodate.js
2013-08-31 15:18:30 +04:00

120 lines
4.5 KiB
JavaScript

$(function () {
//formats
var
fd = 'DD.MM.YYYY', vfd = 'DD-MM-YYYY', vd = '15-05-1984',
fdt = 'DD-MM-YYYY hh:mm:ss A', vfdt = 'DD MMM YYYY h:m:s a', vdt = '15-05-1984 08:20:30 PM';
module("combodate", {
setup: function(){
fx = $('#async-fixture');
$.support.transition = false;
}
});
test("combodate options can be defined in data-combodate param", function () {
var e = $('<a href="#" data-type="combodate" data-combodate="{minYear: 2000, maxYear: 2001}" data-pk="1" data-url="/combodate"></a>').appendTo('#qunit-fixture').editable({
format: fd,
viewformat: vfd,
template: fd
}),
m = moment(vd, vfd);
e.click();
var p = tip(e);
equal(p.find('.year option').length, 3, 'years applied correct');
});
asyncTest("container should contain combodate and save new value (date)", function () {
var e = $('<a href="#" data-type="combodate" data-pk="1" data-url="/combodate">'+vd+'</a>').appendTo(fx).editable({
format: fd,
viewformat: vfd,
template: fd
}),
m = moment(vd, vfd);
$.mockjax({
url: '/combodate',
response: function(settings) {
equal(settings.data.value, m.format(fd), 'submitted value correct');
}
});
equal(e.data('editable').value.format(fd), m.format(fd), 'init value correct');
e.click();
var p = tip(e);
ok(p.is(':visible'), 'container visible');
equal(p.find('.day, .month, .year, .hour, .minute').filter(':visible').length, 3, 'combos correct');
equal(p.find('.day').val(), m.date(), 'day set correct');
equal(p.find('.month').val(), m.month(), 'month set correct');
equal(p.find('.year').val(), m.year(), 'year set correct');
//set new day
p.find('.day').val(16).trigger('change');
m.date(16);
p.find('form').submit();
setTimeout(function() {
ok(!p.is(':visible'), 'container closed');
equal(e.data('editable').value.format(fd), m.format(fd), 'new value correct');
equal(e.text(), m.format(vfd), 'new text correct');
e.remove();
start();
}, timeout);
});
asyncTest("container should contain combodate and save new value (datetime)", function () {
var e = $('<a href="#" data-type="combodate" data-pk="1" data-url="/combodate-dt" data-value="'+vdt+'"></a>').appendTo(fx).editable({
format: fdt,
viewformat: vfdt,
template: fdt
}),
m = moment(vdt, fdt);
$.mockjax({
url: '/combodate-dt',
response: function(settings) {
equal(settings.data.value, m.format(fdt), 'submitted value correct');
}
});
equal(e.data('editable').value.format(fdt), m.format(fdt), 'init value correct');
equal(e.text(), m.format(vfdt), 'init text correct');
e.click();
var p = tip(e);
ok(p.is(':visible'), 'container visible');
equal(p.find('.day, .month, .year, .hour, .minute, .second, .ampm').filter(':visible').length, 7, 'combos correct');
equal(p.find('.day').val(), m.date(), 'day set correct');
equal(p.find('.month').val(), m.month(), 'month set correct');
equal(p.find('.year').val(), m.year(), 'year set correct');
equal(p.find('.hour').val(), m.hours()-12, 'hour set correct');
equal(p.find('.minute').val(), m.minutes(), 'minute set correct');
equal(p.find('.second').val(), m.seconds(), 'second set correct');
equal(p.find('.ampm').val(), 'pm', 'ampm set correct');
//set new day
p.find('.day').val(16).trigger('change');
p.find('.hour').val(9).trigger('change');
m.date(16);
m.hours(21);
p.find('form').submit();
setTimeout(function() {
ok(!p.is(':visible'), 'container closed');
equal(e.data('editable').value.format(fdt), m.format(fdt), 'new value correct');
equal(e.text(), m.format(vfdt), 'new text correct');
e.remove();
start();
}, timeout);
});
});