diff --git a/test/main.js b/test/main.js
index 667c8e3..e6023f3 100644
--- a/test/main.js
+++ b/test/main.js
@@ -35,7 +35,7 @@ require(["loader", jqurl], function(loader) {
break;
default:
- date = ['test/unit/dateui'];
+ date = ['test/unit/dateuifield', 'test/unit/dateui'];
}
var tests = [
diff --git a/test/unit/dateui.js b/test/unit/dateui.js
index 6fd592e..b3f6479 100644
--- a/test/unit/dateui.js
+++ b/test/unit/dateui.js
@@ -1,12 +1,18 @@
$(function () {
- var dpg;
+ var dpg, mode;
module("dateui", {
setup: function(){
fx = $('#async-fixture');
$.support.transition = false;
- }
+ mode = $.fn.editable.defaults.mode;
+ $.fn.editable.defaults.mode = 'popup';
+ },
+ teardown: function() {
+ //restore mode
+ $.fn.editable.defaults.mode = mode;
+ }
});
function frmt(date, format) {
@@ -17,7 +23,7 @@ $(function () {
asyncTest("container should contain datepicker with value and save new entered date", function () {
var d = '15.05.1984',
dview = '15/05/1984',
- e = $(''+dview+'').appendTo(fx).editable({
+ e = $(''+dview+'').appendTo(fx).editable({
format: 'dd.mm.yyyy',
viewformat: 'dd/mm/yyyy',
datepicker: {
@@ -28,7 +34,7 @@ $(function () {
nextDview = '16/05/1984';
$.mockjax({
- url: 'post-date.php',
+ url: 'post-dateui.php',
response: function(settings) {
equal(settings.data.value, nextD, 'submitted value correct');
}
diff --git a/test/unit/dateuifield.js b/test/unit/dateuifield.js
new file mode 100644
index 0000000..9375818
--- /dev/null
+++ b/test/unit/dateuifield.js
@@ -0,0 +1,108 @@
+$(function () {
+
+ var f = 'dd.mm.yyyy', mode;
+
+ module("dateuifield", {
+ setup: function(){
+ fx = $('#async-fixture');
+ $.support.transition = false;
+
+ mode = $.fn.editable.defaults.mode;
+ $.fn.editable.defaults.mode = 'inline';
+ },
+ teardown: function() {
+ //restore mode
+ $.fn.editable.defaults.mode = mode;
+ }
+ });
+
+ function frmt(date, format) {
+ format = format.replace('yyyy', 'yy');
+ return $.datepicker.formatDate(format, date);
+ }
+
+ asyncTest("container should contain input with value and save new entered date", function () {
+
+ var d = '15.05.1984',
+ e = $(''+d+'').appendTo(fx).editable({
+ format: f,
+ viewformat: f,
+ datepicker: {
+ firstDay: 1
+ }
+ }),
+ nextD = '16.05.1984',
+ finalD = '17.05.1984';
+
+ $.mockjax({
+ url: 'post-dateuifield.php',
+ response: function(settings) {
+ equal(settings.data.value, finalD, 'submitted value correct');
+ }
+ });
+
+ equal(frmt(e.data('editable').value, 'dd.mm.yyyy'), d, 'value correct');
+
+ e.click();
+ var p = tip(e);
+ ok(p.find('input').is(':visible'), 'input exists');
+
+ equal(p.find('input').val(), d, 'date set correct');
+
+ //open picker
+ p.find('img').click();
+ var picker = p.find('input').datepicker('widget');
+
+ ok(picker.is(':visible'), 'picker shown');
+ ok(picker.find('a.ui-state-active').is(':visible'), 'active day is visible');
+ equal(picker.find('a.ui-state-active').text(), 15, 'day shown correct');
+ equal(picker.find('.ui-datepicker-calendar > thead > tr > th').eq(0).find('span').text(), 'Mo', 'weekStart correct');
+
+ //set new day by picker
+ picker.find('a.ui-state-active').parent().next().click();
+ ok(!picker.is(':visible'), 'picker closed');
+
+ equal(p.find('input').val(), nextD, 'next day set correct');
+
+ p.find('input').val(finalD).trigger('keyup');
+
+ equal(picker.find('a.ui-state-active').text(), 17, 'picker active date updated');
+
+ //submit
+ p.find('form').submit();
+
+ setTimeout(function() {
+ ok(!p.is(':visible'), 'popover closed');
+ ok(!picker.is(':visible'), 'picker closed');
+ equal(frmt(e.data('editable').value, f), finalD, 'new date saved to value');
+ equal(e.text(), finalD, 'new text shown');
+ e.remove();
+ start();
+ }, timeout);
+
+ });
+
+ test("viewformat, init by text", function () {
+
+ var dview = '15/05/1984',
+ d = '1984-05-15',
+ e = $(''+dview+'').appendTo('#qunit-fixture').editable({
+ format: 'yyyy-mm-dd',
+ viewformat: 'dd/mm/yyyy'
+ }),
+ nextD = '1984-05-16',
+ nextDview = '16/05/1984';
+
+ equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
+ });
+
+ test("viewformat, init by value", function () {
+ var dview = '15/05/1984',
+ d = '1984-05-15',
+ e = $('').appendTo('#qunit-fixture').editable();
+
+ equal(frmt(e.data('editable').value, 'yyyy-mm-dd'), d, 'value correct');
+ equal(e.text(), dview, 'text correct');
+ });
+
+});
\ No newline at end of file