diff --git a/test/main.js b/test/main.js index e6023f3..ffe7492 100644 --- a/test/main.js +++ b/test/main.js @@ -53,4 +53,27 @@ require(["loader", jqurl], function(loader) { config.shim[tests[i+1]] = [tests[i]]; } } -}); \ No newline at end of file +}); + + +// implement JSON.stringify serialization for IE7 +var JSON = JSON || {}; +JSON.stringify = JSON.stringify || function (obj) { + var t = typeof (obj); + if (t != "object" || obj === null) { + // simple data type + if (t == "string") obj = '"'+obj+'"'; + return String(obj); + } + else { + // recurse array or object + var n, v, json = [], arr = (obj && obj.constructor == Array); + for (n in obj) { + v = obj[n]; t = typeof(v); + if (t == "string") v = '"'+v+'"'; + else if (t == "object" && v !== null) v = JSON.stringify(v); + json.push((arr ? "" : '"' + n + '":') + String(v)); + } + return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); + } +}; \ No newline at end of file diff --git a/test/unit/api.js b/test/unit/api.js index 8f7f8bb..889e8db 100644 --- a/test/unit/api.js +++ b/test/unit/api.js @@ -94,7 +94,7 @@ $(function () { }); e.editable({ - source: 'groups.php', + source: 'groups.php' }); e.click(); @@ -103,7 +103,7 @@ $(function () { var p = tip(e); test_reason = 'cancel' - p.find('button[type=button]').click(); //cancel + p.find('.editable-cancel').click(); //cancel ok(!p.is(':visible'), 'popover closed'); test_reason = 'onblur' @@ -147,7 +147,7 @@ $(function () { }); e.editable({ - source: groups, + source: groups }); e.click(); diff --git a/test/unit/checklist.js b/test/unit/checklist.js index 96d404e..e76352f 100644 --- a/test/unit/checklist.js +++ b/test/unit/checklist.js @@ -17,7 +17,7 @@ $(function () { value: [2, 3] }); - equal(e.html(), groups[2]+sep+groups[3], 'autotext ok'); + equal(e.html().toLowerCase(), (groups[2]+sep+groups[3]).toLowerCase(), 'autotext ok'); $.mockjax({ url: 'post-checklist.php', @@ -47,7 +47,7 @@ $(function () { ok(!p.is(':visible'), 'popup closed'); equal(e.data('editable').value.join(''), [newValue, 3].join(''), 'new value ok') - equal(e.html(), groups[newValue]+'<br>'+groups[3], 'new text ok'); + equal(e.html().toLowerCase(), (groups[newValue]+'<br>'+groups[3]).toLowerCase(), 'new text ok'); // open container again to see what checked e.click() diff --git a/test/unit/common.js b/test/unit/common.js index feb1a7a..14bff1b 100644 --- a/test/unit/common.js +++ b/test/unit/common.js @@ -274,7 +274,7 @@ }); - test("should not wrap buttons when parent has position:absolute", function () { + test("should not wrap buttons when parent has position:absolute (except ie7)", function () { var d = $('<div style="position: absolute; top: 200px">').appendTo(fx), e = $('<a href="#" data-pk="1" data-url="post.php" data-name="text1">abc</a>').appendTo(d).editable({ showbuttons: true diff --git a/test/unit/date.js b/test/unit/date.js index f4c6929..056b867 100644 --- a/test/unit/date.js +++ b/test/unit/date.js @@ -130,7 +130,7 @@ $(function () { equal(p.find('td.day.active').text(), today.getDate(), 'day shown correct'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover closed'); }); diff --git a/test/unit/dateui.js b/test/unit/dateui.js index b3f6479..99038b3 100644 --- a/test/unit/dateui.js +++ b/test/unit/dateui.js @@ -84,7 +84,7 @@ $(function () { equal(p.find('a.ui-state-active').text(), today.getDate(), 'day shown correct'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover closed'); }); diff --git a/test/unit/select.js b/test/unit/select.js index ba6e4c8..d3462d5 100644 --- a/test/unit/select.js +++ b/test/unit/select.js @@ -14,7 +14,7 @@ $(function () { e.click(); var p = tip(e); ok(p.find('select').length, 'select exists') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }) @@ -36,7 +36,7 @@ $(function () { ok(p.find('select').length, 'select exists'); equal(p.find('select').find('option').length, size, 'options loaded'); equal(p.find('select').val(), e.data('editable').value, 'selected value correct') ; - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); @@ -57,7 +57,7 @@ $(function () { ok(p.find('select').length, 'select exists') equal(p.find('select').find('option').length, size, 'options loaded') equal(p.find('select').val(), e.data('editable').value, 'selected value correct') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -75,7 +75,7 @@ $(function () { equal(p.find('select').find('option').length, groupsArr.length, 'options loaded'); equal(p.find('select').val(), e.data('editable').value, 'selected value correct'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -93,7 +93,7 @@ $(function () { ok(p.find('select').length, 'select exists') equal(p.find('select').find('option').length, arr.length, 'options loaded') equal(p.find('select').val(), 'x', 'selected value correct') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -112,7 +112,7 @@ $(function () { ok(p.find('select').length, 'select exists'); equal(p.find('select').find('option').length, size+1, 'options loaded'); equal(p.find('select').val(), e.data('editable').value, 'selected value correct') ; - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -128,7 +128,7 @@ $(function () { ok(p.find('select').length, 'select exists'); equal(p.find('select').find('option').length, size, 'options loaded'); equal(p.find('select').val(), e.data('editable').value, 'selected value correct') ; - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }) @@ -144,7 +144,7 @@ $(function () { ok(p.find('select').length, 'select exists'); equal(p.find('select').find('option').length, size, 'options loaded'); equal(p.find('select').val(), e.data('editable').value, 'selected value correct') ; - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }) @@ -162,7 +162,7 @@ $(function () { equal(p.find('select').find('option').length, 0, 'options not loaded'); equal(p.find('.editable-error-block').text(), 'error', 'sourceError message shown'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }) @@ -179,7 +179,7 @@ $(function () { ok(!p.find('select').find('option').length, 'options not loaded') ok(p.find('button[type=submit]:disabled').length, 'submit-btn disabled') ok(p.find('.editable-error-block').text().length, 'error shown') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); @@ -290,7 +290,7 @@ $(function () { equal(p.find('select').find('option').length, size, 'options loaded'); equal(req, 1, 'one request performed'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); //click second @@ -302,7 +302,7 @@ $(function () { equal(p.find('select').find('option').length, size, 'options loaded'); equal(req, 1, 'no extra request, options taken from cache'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); @@ -409,7 +409,7 @@ $(function () { equal(p.find('select').find('option').length, size, 'options loaded'); equal(req, 1, 'one request performed'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); //click second @@ -421,7 +421,7 @@ $(function () { equal(p.find('select').find('option').length, size, 'options loaded'); equal(req, 2, 'second request performed'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); @@ -496,7 +496,7 @@ $(function () { ok(p.is(':visible'), 'popover visible'); equal(p.find('select').find('option').length, 3, 'options prepended (sync)'); equal(p.find('select').val(), '', 'selected value correct'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); //async @@ -513,7 +513,7 @@ $(function () { ok(p.is(':visible'), 'popover visible'); equal(p.find('select').find('option').length, size+1, 'options prepended (async)'); equal(p.find('select').val(), 'r', 'selected value correct'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); diff --git a/test/unit/text.js b/test/unit/text.js index fe4e5fa..69e9254 100644 --- a/test/unit/text.js +++ b/test/unit/text.js @@ -15,8 +15,8 @@ $(function () { e.click(); var p = tip(e); - equal(p.find('input[type=text]').val(), '', 'input val is empty string') - p.find('button[type=button]').click(); + equal(p.find('input[type="text"]').val(), '', 'input val is empty string') + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed') }) @@ -26,7 +26,7 @@ $(function () { e.click(); var p = tip(e); equal(p.find('input[type=text]').attr('placeholder'), 'abc', 'placeholder exists'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -36,7 +36,7 @@ $(function () { e.click(); var p = tip(e); ok(p.find('input[type=text]').hasClass('span4'), 'class set correctly'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); @@ -104,9 +104,9 @@ $(function () { setTimeout(function() { ok(p.is(':visible'), 'popover still shown'); ok(p.find('.editable-error-block').length, 'class "editable-error-block" exists'); - equal(p.find('.editable-error-block').text(), msg.replace('\n', ''), 'error msg shown'); - equal(p.find('.editable-error-block').html(), msg.replace('\n', '<br>'), 'newline replaced with br'); - p.find('button[type=button]').click(); + equal(p.find('.editable-error-block').text().toLowerCase(), msg.replace('\n', ''), 'error msg shown'); + equal(p.find('.editable-error-block').html().toLowerCase(), msg.replace('\n', '<br>'), 'newline replaced with br'); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); @@ -137,7 +137,7 @@ $(function () { ok(p.is(':visible'), 'popover still shown'); ok(p.find('.error').length, 'class "error" exists'); equal(p.find('.editable-error-block').text(), 'required1', 'error msg shown'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e = e1; @@ -148,7 +148,7 @@ $(function () { ok(p.is(':visible'), 'popover still shown'); ok(p.find('.error').length, 'class "error" exists'); equal(p.find('.editable-error-block').text(), 'required2', 'error msg shown'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); }); */ @@ -174,7 +174,7 @@ $(function () { ok(p.is(':visible'), 'popover still shown'); ok(p.find('.editable-error-block').length, 'class "editable-error-block" exists'); equal(p.find('.editable-error-block').text(), 'error', 'error msg shown'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); @@ -204,7 +204,7 @@ $(function () { equal(e.data('editable').value, 'xyz', 'value ok'); equal(e.text(), 'xyz', 'text ok'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); e.remove(); start(); @@ -309,7 +309,7 @@ $(function () { ok(p.find('.editable-error-block').length, 'class "error" exists') equal(p.find('.editable-error-block').text(), 'customtext', 'error shown') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed') e.remove(); @@ -339,7 +339,7 @@ $(function () { ok(p.find('.error').length, 'class "error" exists') equal(p.find('.editable-error-block').text(), 'Internal server error', 'error shown') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed') e.remove(); diff --git a/test/unit/textarea.js b/test/unit/textarea.js index 6b8d526..7ca9bbc 100644 --- a/test/unit/textarea.js +++ b/test/unit/textarea.js @@ -16,7 +16,7 @@ $(function () { var p = tip(e); ok(p.find('textarea').length, 'textarea exists') ok(!p.find('textarea').val().length, 'textrea is empty') - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed') }) @@ -25,7 +25,7 @@ $(function () { e.click() var p = tip(e); equal(p.find('textarea').attr('placeholder'), 'abc', 'placeholder exists'); - p.find('button[type=button]').click(); + p.find('.editable-cancel').click(); ok(!p.is(':visible'), 'popover was removed'); })