]> source.dussan.org Git - jquery-ui.git/commitdiff
Dev: remove globals from tests and moved test helpers to correct location - Fixed... 808/head
authorMike Sherov <mike.sherov@gmail.com>
Sat, 3 Nov 2012 20:17:16 +0000 (16:17 -0400)
committerMike Sherov <mike.sherov@gmail.com>
Sat, 3 Nov 2012 20:17:16 +0000 (16:17 -0400)
37 files changed:
tests/.jshintrc
tests/unit/datepicker/datepicker.html
tests/unit/datepicker/datepicker_core.js
tests/unit/datepicker/datepicker_events.js
tests/unit/datepicker/datepicker_methods.js
tests/unit/datepicker/datepicker_options.js
tests/unit/datepicker/datepicker_test_helpers.js [new file with mode: 0644]
tests/unit/datepicker/datepicker_tickets.js
tests/unit/dialog/dialog.html
tests/unit/dialog/dialog_core.js
tests/unit/dialog/dialog_events.js
tests/unit/dialog/dialog_methods.js
tests/unit/dialog/dialog_options.js
tests/unit/dialog/dialog_test_helpers.js [new file with mode: 0644]
tests/unit/dialog/dialog_tickets.js
tests/unit/draggable/draggable.html
tests/unit/draggable/draggable_core.js
tests/unit/draggable/draggable_events.js
tests/unit/draggable/draggable_methods.js
tests/unit/draggable/draggable_options.js
tests/unit/draggable/draggable_test_helpers.js [new file with mode: 0644]
tests/unit/droppable/droppable.html
tests/unit/droppable/droppable_core.js
tests/unit/droppable/droppable_methods.js
tests/unit/droppable/droppable_options.js
tests/unit/droppable/droppable_test_helpers.js [new file with mode: 0644]
tests/unit/resizable/resizable.html
tests/unit/resizable/resizable_core.js
tests/unit/resizable/resizable_test_helpers.js [new file with mode: 0644]
tests/unit/selectable/selectable.html
tests/unit/selectable/selectable_core.js
tests/unit/selectable/selectable_test_helpers.js [new file with mode: 0644]
tests/unit/sortable/sortable.html
tests/unit/sortable/sortable_core.js
tests/unit/sortable/sortable_methods.js
tests/unit/sortable/sortable_test_helpers.js [new file with mode: 0644]
tests/unit/sortable/sortable_tickets.js

index c0f0f8d532ea70f14bf352adebefd62f91f6b8f8..9e2881c124d58b8a261d64b917d0818197847452 100644 (file)
        "unused": true,
        "predef": [
                "asyncTest",
-               "container",
                "deepEqual",
-               "d1",
-               "d2",
-               "dlg",
                "domEqual",
-               "drag",
-               "dragged",
-               "el",
                "equal",
-               "equalsDate",
                "expect",
                "Globalize",
-               "heightAfter",
-               "init",
-               "modal",
                "module",
-               "moved",
                "notEqual",
-               "offsetAfter",
-               "offsetBefore",
                "ok",
                "QUnit",
                "start",
@@ -42,7 +28,6 @@
                "stop",
                "test",
                "TestHelpers",
-               "widthAfter",
                "JSHINT"
        ]
 }
\ No newline at end of file
index 9530600f146bc86274a11d4547405a3411a4bb03..c0c68979d552475e5a3482fc459f86ee599e46af 100644 (file)
@@ -27,6 +27,7 @@
        <script src="datepicker_events.js"></script>
        <script src="datepicker_methods.js"></script>
        <script src="datepicker_options.js"></script>
+       <script src="datepicker_test_helpers.js"></script>
        <script src="datepicker_tickets.js"></script>
 
        <script src="../swarminject.js"></script>
index 1a7d8cc82715e84da1d3a8bc516ad422a9f62a92..86f71a1c4f992e0913da37cee7c01f9eae7d96e5 100644 (file)
@@ -2,30 +2,6 @@
  * datepicker_core.js
  */
 
-function equalsDate(d1, d2, message) {
-       if (!d1 || !d2) {
-               ok(false, message + ' - missing date');
-               return;
-       }
-       d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());
-       d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
-       equal(d1.toString(), d2.toString(), message);
-}
-
-TestHelpers.addMonths = function(date, offset) {
-       var maxDay = 32 - new Date(date.getFullYear(), date.getMonth() + offset, 32).getDate();
-       date.setDate(Math.min(date.getDate(), maxDay));
-       date.setMonth(date.getMonth() + offset);
-       return date;
-};
-
-function init(id, options) {
-       $.datepicker.setDefaults($.datepicker.regional['']);
-       return $(id).datepicker($.extend({showAnim: ''}, options || {}));
-}
-
-TestHelpers.PROP_NAME = 'datepicker';
-
 (function($) {
 
 module("datepicker: core");
@@ -45,7 +21,7 @@ test("widget method", function() {
 test('baseStructure', function() {
        expect( 58 );
        var header, title, table, thead, week, panel, inl, child,
-               inp = init('#inp').focus(),
+               inp = TestHelpers.datepicker.init('#inp').focus(),
                dp = $('#ui-datepicker-div');
        ok(dp.is(':visible'), 'Structure - datepicker visible');
        ok(!dp.is('.ui-datepicker-rtl'), 'Structure - not right-to-left');
@@ -80,7 +56,7 @@ test('baseStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Editable month/year and button panel
-       inp = init('#inp', {changeMonth: true, changeYear: true, showButtonPanel: true});
+       inp = TestHelpers.datepicker.init('#inp', {changeMonth: true, changeYear: true, showButtonPanel: true});
        inp.focus();
 
        title = dp.find('div.ui-datepicker-title');
@@ -95,7 +71,7 @@ test('baseStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Multi-month 2
-       inp = init('#inp', {numberOfMonths: 2});
+       inp = TestHelpers.datepicker.init('#inp', {numberOfMonths: 2});
        inp.focus();
        ok(dp.is('.ui-datepicker-multi'), 'Structure multi [2] - multi-month');
        equal(dp.children().length, 3, 'Structure multi [2] - child count');
@@ -109,14 +85,14 @@ test('baseStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Multi-month 3
-       inp = init('#inp', {numberOfMonths: 3});
+       inp = TestHelpers.datepicker.init('#inp', {numberOfMonths: 3});
        inp.focus();
        ok(dp.is('.ui-datepicker-multi-3'), 'Structure multi [3] - multi-3');
        ok(! dp.is('.ui-datepicker-multi-2'), 'Structure multi [3] - Trac #6704');
        inp.datepicker('hide').datepicker('destroy');
 
        // Multi-month [2, 2]
-       inp = init('#inp', {numberOfMonths: [2, 2]});
+       inp = TestHelpers.datepicker.init('#inp', {numberOfMonths: [2, 2]});
        inp.focus();
        ok(dp.is('.ui-datepicker-multi'), 'Structure multi - multi-month');
        equal(dp.children().length, 6, 'Structure multi [2,2] - child count');
@@ -135,7 +111,7 @@ test('baseStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Inline
-       inl = init('#inl');
+       inl = TestHelpers.datepicker.init('#inl');
        dp = inl.children();
        ok(dp.is('.ui-datepicker-inline'), 'Structure inline - main div');
        ok(!dp.is('.ui-datepicker-rtl'), 'Structure inline - not right-to-left');
@@ -151,7 +127,7 @@ test('baseStructure', function() {
        inl.datepicker('destroy');
 
        // Inline multi-month
-       inl = init('#inl', {numberOfMonths: 2});
+       inl = TestHelpers.datepicker.init('#inl', {numberOfMonths: 2});
        dp = inl.children();
        ok(dp.is('.ui-datepicker-inline') && dp.is('.ui-datepicker-multi'), 'Structure inline multi - main div');
        equal(dp.children().length, 3, 'Structure inline multi - child count');
@@ -169,7 +145,7 @@ test('customStructure', function() {
        var header, panel, title, thead,
                dp = $('#ui-datepicker-div'),
                // Check right-to-left localisation
-               inp = init('#inp', $.datepicker.regional.he);
+               inp = TestHelpers.datepicker.init('#inp', $.datepicker.regional.he);
        inp.data('showButtonPanel.datepicker',true);
        inp.focus();
        ok(dp.is('.ui-datepicker-rtl'), 'Structure RTL - right-to-left');
@@ -186,7 +162,7 @@ test('customStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Hide prev/next
-       inp = init('#inp', {hideIfNoPrevNext: true, minDate: new Date(2008, 2 - 1, 4), maxDate: new Date(2008, 2 - 1, 14)});
+       inp = TestHelpers.datepicker.init('#inp', {hideIfNoPrevNext: true, minDate: new Date(2008, 2 - 1, 4), maxDate: new Date(2008, 2 - 1, 14)});
        inp.val('02/10/2008').focus();
        header = dp.children(':first');
        ok(header.is('div.ui-datepicker-header'), 'Structure hide prev/next - header division');
@@ -195,7 +171,7 @@ test('customStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Changeable Month with read-only year
-       inp = init('#inp', {changeMonth: true});
+       inp = TestHelpers.datepicker.init('#inp', {changeMonth: true});
        inp.focus();
        title = dp.children(':first').children(':last');
        equal(title.children().length, 2, 'Structure changeable month - title child count');
@@ -204,7 +180,7 @@ test('customStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Changeable year with read-only month
-       inp = init('#inp', {changeYear: true});
+       inp = TestHelpers.datepicker.init('#inp', {changeYear: true});
        inp.focus();
        title = dp.children(':first').children(':last');
        equal(title.children().length, 2, 'Structure changeable year - title child count');
@@ -213,7 +189,7 @@ test('customStructure', function() {
        inp.datepicker('hide').datepicker('destroy');
 
        // Read-only first day of week
-       inp = init('#inp', {changeFirstDay: false});
+       inp = TestHelpers.datepicker.init('#inp', {changeFirstDay: false});
        inp.focus();
        thead = dp.find('.ui-datepicker-calendar thead tr');
        equal(thead.children().length, 7, 'Structure read-only first day - thead child count');
@@ -223,19 +199,19 @@ test('customStructure', function() {
 
 test('keystrokes', function() {
        expect( 26 );
-       var inp = init('#inp'),
+       var inp = TestHelpers.datepicker.init('#inp'),
                date = new Date();
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke enter');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke enter');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Keystroke enter - preset');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.HOME}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+home');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+home');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.END});
        ok(inp.datepicker('getDate') == null, 'Keystroke ctrl+end');
@@ -244,95 +220,95 @@ test('keystrokes', function() {
        ok(inp.datepicker('getDate') == null, 'Keystroke esc');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Keystroke esc - preset');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Keystroke esc - abandoned');
        // Moving by day or week
        inp.val('').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.LEFT}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 1);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+left');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+left');
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.LEFT}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 1);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke left');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke left');
        inp.val('').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.RIGHT}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 1);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+right');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+right');
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.RIGHT}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 1);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke right');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke right');
        inp.val('').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 7);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+up');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+up');
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 7);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke up');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke up');
        inp.val('').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 7);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+down');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke ctrl+down');
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 7);
-       equalsDate(inp.datepicker('getDate'), date, 'Keystroke down');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Keystroke down');
        // Moving by month or year
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 4),
                'Keystroke pgup');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 4),
                'Keystroke pgdn');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 4),
                'Keystroke ctrl+pgup');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 4),
                'Keystroke ctrl+pgdn');
        // Check for moving to short months
        inp.val('03/31/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
                'Keystroke pgup - Feb');
        inp.val('01/30/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 29),
                'Keystroke pgdn - Feb');
        inp.val('02/29/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 28),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2007, 2 - 1, 28),
                'Keystroke ctrl+pgup - Feb');
        inp.val('02/29/2008').datepicker('show').
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 28),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2009, 2 - 1, 28),
                'Keystroke ctrl+pgdn - Feb');
        // Goto current
        inp.datepicker('option', {gotoCurrent: true}).
@@ -340,35 +316,35 @@ test('keystrokes', function() {
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.HOME}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Keystroke ctrl+home');
        // Change steps
        inp.datepicker('option', {stepMonths: 2, gotoCurrent: false}).
                datepicker('hide').val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2007, 12 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2007, 12 - 1, 4),
                'Keystroke pgup step 2');
        inp.val('02/04/2008').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 4 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 4 - 1, 4),
                'Keystroke pgdn step 2');
 });
 
 test('mouse', function() {
        expect( 15 );
        var inl,
-               inp = init('#inp'),
+               inp = TestHelpers.datepicker.init('#inp'),
                dp = $('#ui-datepicker-div'),
                date = new Date();
        inp.val('').datepicker('show');
        $('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
        date.setDate(10);
-       equalsDate(inp.datepicker('getDate'), date, 'Mouse click');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Mouse click');
        inp.val('02/04/2008').datepicker('show');
        $('.ui-datepicker-calendar tbody a:contains(12)', dp).simulate('click', {});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 12),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 12),
                'Mouse click - preset');
        inp.val('02/04/2008').datepicker('show');
        inp.val('').datepicker('show');
@@ -376,66 +352,66 @@ test('mouse', function() {
        ok(inp.datepicker('getDate') == null, 'Mouse click - close');
        inp.val('02/04/2008').datepicker('show');
        $('button.ui-datepicker-close', dp).simulate('click', {});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Mouse click - close + preset');
        inp.val('02/04/2008').datepicker('show');
        $('a.ui-datepicker-prev', dp).simulate('click', {});
        $('button.ui-datepicker-close', dp).simulate('click', {});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 4),
                'Mouse click - abandoned');
        // Current/previous/next
        inp.val('02/04/2008').datepicker('option', {showButtonPanel: true}).datepicker('show');
        $('.ui-datepicker-current', dp).simulate('click', {});
        $('.ui-datepicker-calendar tbody a:contains(14)', dp).simulate('click', {});
        date.setDate(14);
-       equalsDate(inp.datepicker('getDate'), date, 'Mouse click - current');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Mouse click - current');
        inp.val('02/04/2008').datepicker('show');
        $('.ui-datepicker-prev', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 16),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 1 - 1, 16),
                'Mouse click - previous');
        inp.val('02/04/2008').datepicker('show');
        $('.ui-datepicker-next', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 18),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 3 - 1, 18),
                'Mouse click - next');
        // Previous/next with minimum/maximum
        inp.datepicker('option', {minDate: new Date(2008, 2 - 1, 2),
                maxDate: new Date(2008, 2 - 1, 26)}).val('02/04/2008').datepicker('show');
        $('.ui-datepicker-prev', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 16),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 16),
                'Mouse click - previous + min/max');
        inp.val('02/04/2008').datepicker('show');
        $('.ui-datepicker-next', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 18),
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 2 - 1, 18),
                'Mouse click - next + min/max');
        // Inline
-       inl = init('#inl');
+       inl = TestHelpers.datepicker.init('#inl');
        dp = $('.ui-datepicker-inline', inl);
        date = new Date();
        inl.datepicker('setDate', date);
        $('.ui-datepicker-calendar tbody a:contains(10)', dp).simulate('click', {});
        date.setDate(10);
-       equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline');
        inl.datepicker('option', {showButtonPanel: true}).datepicker('setDate', new Date(2008, 2 - 1, 4));
        $('.ui-datepicker-calendar tbody a:contains(12)', dp).simulate('click', {});
-       equalsDate(inl.datepicker('getDate'), new Date(2008, 2 - 1, 12), 'Mouse click inline - preset');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), new Date(2008, 2 - 1, 12), 'Mouse click inline - preset');
        inl.datepicker('option', {showButtonPanel: true});
        $('.ui-datepicker-current', dp).simulate('click', {});
        $('.ui-datepicker-calendar tbody a:contains(14)', dp).simulate('click', {});
        date.setDate(14);
-       equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline - current');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date, 'Mouse click inline - current');
        inl.datepicker('setDate', new Date(2008, 2 - 1, 4));
        $('.ui-datepicker-prev', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(16)', dp).simulate('click');
-       equalsDate(inl.datepicker('getDate'), new Date(2008, 1 - 1, 16),
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), new Date(2008, 1 - 1, 16),
                'Mouse click inline - previous');
        inl.datepicker('setDate', new Date(2008, 2 - 1, 4));
        $('.ui-datepicker-next', dp).simulate('click');
        $('.ui-datepicker-calendar tbody a:contains(18)', dp).simulate('click');
-       equalsDate(inl.datepicker('getDate'), new Date(2008, 3 - 1, 18),
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), new Date(2008, 3 - 1, 18),
                'Mouse click inline - next');
 });
 
index b7106747272b35b03a90617e50a7756e4f58b7d3..81b152c66a3835bf476e0e6ecd4b3e34c1eb399d 100644 (file)
@@ -24,13 +24,13 @@ function callback2(year, month, inst) {
 test('events', function() {
        expect( 26 );
        var dateStr, newMonthYear, inp2,
-               inp = init('#inp', {onSelect: callback}),
+               inp = TestHelpers.datepicker.init('#inp', {onSelect: callback}),
        date = new Date();
        // onSelect
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        equal(selectedThis, inp[0], 'Callback selected this');
-       equal(selectedInst, $.data(inp[0], TestHelpers.PROP_NAME), 'Callback selected inst');
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Callback selected inst');
        equal(selectedDate, $.datepicker.formatDate('mm/dd/yy', date),
                'Callback selected date');
        inp.val('').datepicker('show').
@@ -59,7 +59,7 @@ test('events', function() {
        inp.simulate('keydown', {keyCode: $.ui.keyCode.PAGE_UP});
        date.setMonth(date.getMonth() - 1);
        equal(selectedThis, inp[0], 'Callback change month/year this');
-       equal(selectedInst, $.data(inp[0], TestHelpers.PROP_NAME), 'Callback change month/year inst');
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Callback change month/year inst');
        equal(selectedDate, newMonthYear(date),
                'Callback change month/year date - pgup');
        inp.simulate('keydown', {keyCode: $.ui.keyCode.PAGE_DOWN});
@@ -107,7 +107,7 @@ test('events', function() {
                val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ESCAPE});
        equal(selectedThis, inp[0], 'Callback close this');
-       equal(selectedInst, $.data(inp[0], TestHelpers.PROP_NAME), 'Callback close inst');
+       equal(selectedInst, $.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Callback close inst');
        equal(selectedDate, '', 'Callback close date - esc');
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
@@ -120,7 +120,7 @@ test('events', function() {
                simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.END});
        equal(selectedDate, '', 'Callback close date - ctrl+end');
 
-       inp2 = init('#inp2');
+       inp2 = TestHelpers.datepicker.init('#inp2');
        inp2.datepicker().datepicker('option', {onClose: callback}).datepicker('show');
        inp.datepicker('show');
        equal(selectedThis, inp2[0], 'Callback close this');
index 5e692d1a0e8c8174fe90bf84583cd6856d7f2865..d2964a26627e17a1d2277b135352e53c6b35265e 100644 (file)
@@ -8,65 +8,65 @@ module("datepicker: methods");
 test('destroy', function() {
        expect( 33 );
        var inl,
-               inp = init('#inp');
+               inp = TestHelpers.datepicker.init('#inp');
        ok(inp.is('.hasDatepicker'), 'Default - marker class set');
-       ok($.data(inp[0], TestHelpers.PROP_NAME), 'Default - instance present');
+       ok($.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Default - instance present');
        ok(inp.next().is('#alt'), 'Default - button absent');
        inp.datepicker('destroy');
        inp = $('#inp');
        ok(!inp.is('.hasDatepicker'), 'Default - marker class cleared');
-       ok(!$.data(inp[0], TestHelpers.PROP_NAME), 'Default - instance absent');
+       ok(!$.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Default - instance absent');
        ok(inp.next().is('#alt'), 'Default - button absent');
        // With button
-       inp= init('#inp', {showOn: 'both'});
+       inp= TestHelpers.datepicker.init('#inp', {showOn: 'both'});
        ok(inp.is('.hasDatepicker'), 'Button - marker class set');
-       ok($.data(inp[0], TestHelpers.PROP_NAME), 'Button - instance present');
+       ok($.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Button - instance present');
        ok(inp.next().text() === '...', 'Button - button added');
        inp.datepicker('destroy');
        inp = $('#inp');
        ok(!inp.is('.hasDatepicker'), 'Button - marker class cleared');
-       ok(!$.data(inp[0], TestHelpers.PROP_NAME), 'Button - instance absent');
+       ok(!$.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Button - instance absent');
        ok(inp.next().is('#alt'), 'Button - button removed');
        // With append text
-       inp = init('#inp', {appendText: 'Testing'});
+       inp = TestHelpers.datepicker.init('#inp', {appendText: 'Testing'});
        ok(inp.is('.hasDatepicker'), 'Append - marker class set');
-       ok($.data(inp[0], TestHelpers.PROP_NAME), 'Append - instance present');
+       ok($.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Append - instance present');
        ok(inp.next().text() === 'Testing', 'Append - append text added');
        inp.datepicker('destroy');
        inp = $('#inp');
        ok(!inp.is('.hasDatepicker'), 'Append - marker class cleared');
-       ok(!$.data(inp[0], TestHelpers.PROP_NAME), 'Append - instance absent');
+       ok(!$.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Append - instance absent');
        ok(inp.next().is('#alt'), 'Append - append text removed');
        // With both
-       inp= init('#inp', {showOn: 'both', buttonImageOnly: true,
+       inp= TestHelpers.datepicker.init('#inp', {showOn: 'both', buttonImageOnly: true,
                buttonImage: 'img/calendar.gif', appendText: 'Testing'});
        ok(inp.is('.hasDatepicker'), 'Both - marker class set');
-       ok($.data(inp[0], TestHelpers.PROP_NAME), 'Both - instance present');
+       ok($.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Both - instance present');
        ok(inp.next()[0].nodeName.toLowerCase() === 'img', 'Both - button added');
        ok(inp.next().next().text() === 'Testing', 'Both - append text added');
        inp.datepicker('destroy');
        inp = $('#inp');
        ok(!inp.is('.hasDatepicker'), 'Both - marker class cleared');
-       ok(!$.data(inp[0], TestHelpers.PROP_NAME), 'Both - instance absent');
+       ok(!$.data(inp[0], TestHelpers.datepicker.PROP_NAME), 'Both - instance absent');
        ok(inp.next().is('#alt'), 'Both - button and append text absent');
        // Inline
-       inl = init('#inl');
+       inl = TestHelpers.datepicker.init('#inl');
        ok(inl.is('.hasDatepicker'), 'Inline - marker class set');
        ok(inl.html() !== '', 'Inline - datepicker present');
-       ok($.data(inl[0], TestHelpers.PROP_NAME), 'Inline - instance present');
+       ok($.data(inl[0], TestHelpers.datepicker.PROP_NAME), 'Inline - instance present');
        ok(inl.next().length === 0 || inl.next().is('p'), 'Inline - button absent');
        inl.datepicker('destroy');
        inl = $('#inl');
        ok(!inl.is('.hasDatepicker'), 'Inline - marker class cleared');
        ok(inl.html() === '', 'Inline - datepicker absent');
-       ok(!$.data(inl[0], TestHelpers.PROP_NAME), 'Inline - instance absent');
+       ok(!$.data(inl[0], TestHelpers.datepicker.PROP_NAME), 'Inline - instance absent');
        ok(inl.next().length === 0 || inl.next().is('p'), 'Inline - button absent');
 });
 
 test('enableDisable', function() {
        expect( 33 );
        var inl, dp,
-               inp = init('#inp');
+               inp = TestHelpers.datepicker.init('#inp');
        ok(!inp.datepicker('isDisabled'), 'Enable/disable - initially marked as enabled');
        ok(!inp[0].disabled, 'Enable/disable - field initially enabled');
        inp.datepicker('disable');
@@ -77,7 +77,7 @@ test('enableDisable', function() {
        ok(!inp[0].disabled, 'Enable/disable - field now enabled');
        inp.datepicker('destroy');
        // With a button
-       inp = init('#inp', {showOn: 'button'});
+       inp = TestHelpers.datepicker.init('#inp', {showOn: 'button'});
        ok(!inp.datepicker('isDisabled'), 'Enable/disable button - initially marked as enabled');
        ok(!inp[0].disabled, 'Enable/disable button - field initially enabled');
        ok(!inp.next('button')[0].disabled, 'Enable/disable button - button initially enabled');
@@ -91,7 +91,7 @@ test('enableDisable', function() {
        ok(!inp.next('button')[0].disabled, 'Enable/disable button - button now enabled');
        inp.datepicker('destroy');
        // With an image button
-       inp = init('#inp', {showOn: 'button', buttonImageOnly: true,
+       inp = TestHelpers.datepicker.init('#inp', {showOn: 'button', buttonImageOnly: true,
                buttonImage: 'img/calendar.gif'});
        ok(!inp.datepicker('isDisabled'), 'Enable/disable image - initially marked as enabled');
        ok(!inp[0].disabled, 'Enable/disable image - field initially enabled');
@@ -106,7 +106,7 @@ test('enableDisable', function() {
        ok(parseFloat(inp.next('img').css('opacity')) === 1, 'Enable/disable image - image now enabled');
        inp.datepicker('destroy');
        // Inline
-       inl = init('#inl', {changeYear: true});
+       inl = TestHelpers.datepicker.init('#inl', {changeYear: true});
        dp = $('.ui-datepicker-inline', inl);
        ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - initially marked as enabled');
        ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visually disabled initially');
index 7d3217364b7002ee31d70147731472245934ebc6..00910469e1616617d956ac93bcfec4308c99f1de 100644 (file)
@@ -8,7 +8,7 @@ module("datepicker: options");
 
 test('setDefaults', function() {
        expect( 3 );
-       init('#inp');
+       TestHelpers.datepicker.init('#inp');
        equal($.datepicker._defaults.showOn, 'focus', 'Initial showOn');
        $.datepicker.setDefaults({showOn: 'button'});
        equal($.datepicker._defaults.showOn, 'button', 'Change default showOn');
@@ -18,8 +18,8 @@ test('setDefaults', function() {
 
 test('option', function() {
        expect( 17 );
-       var inp = init('#inp'),
-       inst = $.data(inp[0], TestHelpers.PROP_NAME);
+       var inp = TestHelpers.datepicker.init('#inp'),
+       inst = $.data(inp[0], TestHelpers.datepicker.PROP_NAME);
        // Set option
        equal(inst.settings.showOn, null, 'Initial setting showOn');
        equal($.datepicker._get(inst, 'showOn'), 'focus', 'Initial instance showOn');
@@ -37,7 +37,7 @@ test('option', function() {
        equal($.datepicker._get(inst, 'showOn'), 'focus', 'Restore instance showOn');
        equal($.datepicker._defaults.showOn, 'focus', 'Retain default showOn');
        // Get option
-       inp = init('#inp');
+       inp = TestHelpers.datepicker.init('#inp');
        equal(inp.datepicker('option', 'showOn'), 'focus', 'Initial setting showOn');
        inp.datepicker('option', 'showOn', 'button');
        equal(inp.datepicker('option', 'showOn'), 'button', 'Change instance showOn');
@@ -50,8 +50,8 @@ test('option', function() {
 
 test('change', function() {
        expect( 12 );
-       var inp = init('#inp'),
-       inst = $.data(inp[0], TestHelpers.PROP_NAME);
+       var inp = TestHelpers.datepicker.init('#inp'),
+       inst = $.data(inp[0], TestHelpers.datepicker.PROP_NAME);
        equal(inst.settings.showOn, null, 'Initial setting showOn');
        equal($.datepicker._get(inst, 'showOn'), 'focus', 'Initial instance showOn');
        equal($.datepicker._defaults.showOn, 'focus', 'Initial default showOn');
@@ -72,7 +72,7 @@ test('change', function() {
 test('invocation', function() {
        expect( 29 );
        var button, image,
-               inp = init('#inp'),
+               inp = TestHelpers.datepicker.init('#inp'),
                dp = $('#ui-datepicker-div'),
                body = $('body');
        // On focus
@@ -90,7 +90,7 @@ test('invocation', function() {
        ok(!dp.is(':visible'), 'Focus - hidden on external click');
        inp.datepicker('hide').datepicker('destroy');
        // On button
-       inp = init('#inp', {showOn: 'button', buttonText: 'Popup'});
+       inp = TestHelpers.datepicker.init('#inp', {showOn: 'button', buttonText: 'Popup'});
        ok(!dp.is(':visible'), 'Button - initially hidden');
        button = inp.siblings('button');
        image = inp.siblings('img');
@@ -105,7 +105,7 @@ test('invocation', function() {
        ok(!dp.is(':visible'), 'Button - hidden on second button click');
        inp.datepicker('hide').datepicker('destroy');
        // On image button
-       inp = init('#inp', {showOn: 'button', buttonImageOnly: true,
+       inp = TestHelpers.datepicker.init('#inp', {showOn: 'button', buttonImageOnly: true,
                buttonImage: 'img/calendar.gif', buttonText: 'Cal'});
        ok(!dp.is(':visible'), 'Image button - initially hidden');
        button = inp.siblings('button');
@@ -122,7 +122,7 @@ test('invocation', function() {
        ok(!dp.is(':visible'), 'Image button - hidden on second image click');
        inp.datepicker('hide').datepicker('destroy');
        // On both
-       inp = init('#inp', {showOn: 'both', buttonImage: 'img/calendar.gif'});
+       inp = TestHelpers.datepicker.init('#inp', {showOn: 'both', buttonImage: 'img/calendar.gif'});
        ok(!dp.is(':visible'), 'Both - initially hidden');
        button = inp.siblings('button');
        ok(button.length === 1, 'Both - button present');
@@ -143,7 +143,7 @@ test('invocation', function() {
 
 test('otherMonths', function() {
        expect( 8 );
-       var inp = init('#inp'),
+       var inp = TestHelpers.datepicker.init('#inp'),
                pop = $('#ui-datepicker-div');
        inp.val('06/01/2009').datepicker('show');
        equal(pop.find('tbody').text(), '\u00a0123456789101112131415161718192021222324252627282930\u00a0\u00a0\u00a0\u00a0',
@@ -165,104 +165,104 @@ test('otherMonths', function() {
 
 test('defaultDate', function() {
        expect( 17 );
-       var inp = init('#inp'),
+       var inp = TestHelpers.datepicker.init('#inp'),
                date = new Date();
        inp.val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date, 'Default date null');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date null');
        // Numeric values
        inp.datepicker('option', {defaultDate: -2}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 2);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date -2');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date -2');
        inp.datepicker('option', {defaultDate: 3}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 5);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date 3');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date 3');
        inp.datepicker('option', {defaultDate: 1 / 0}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 3);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date Infinity');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date Infinity');
        inp.datepicker('option', {defaultDate: 1 / 'a'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date, 'Default date NaN');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date NaN');
        // String offset values
        inp.datepicker('option', {defaultDate: '-1d'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() - 1);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date -1d');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date -1d');
        inp.datepicker('option', {defaultDate: '+3D'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 4);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date +3D');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date +3D');
        inp.datepicker('option', {defaultDate: ' -2 w '}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date = new Date();
        date.setDate(date.getDate() - 14);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date -2 w');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date -2 w');
        inp.datepicker('option', {defaultDate: '+1 W'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setDate(date.getDate() + 21);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date +1 W');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date +1 W');
        inp.datepicker('option', {defaultDate: ' -1 m '}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       date = TestHelpers.addMonths(new Date(), -1);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date -1 m');
+       date = TestHelpers.datepicker.addMonths(new Date(), -1);
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date -1 m');
        inp.datepicker('option', {defaultDate: '+2M'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       date = TestHelpers.addMonths(new Date(), 2);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date +2M');
+       date = TestHelpers.datepicker.addMonths(new Date(), 2);
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date +2M');
        inp.datepicker('option', {defaultDate: '-2y'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date = new Date();
        date.setFullYear(date.getFullYear() - 2);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date -2y');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date -2y');
        inp.datepicker('option', {defaultDate: '+1 Y '}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date.setFullYear(date.getFullYear() + 3);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date +1 Y');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date +1 Y');
        inp.datepicker('option', {defaultDate: '+1M +10d'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       date = TestHelpers.addMonths(new Date(), 1);
+       date = TestHelpers.datepicker.addMonths(new Date(), 1);
        date.setDate(date.getDate() + 10);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date +1M +10d');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date +1M +10d');
        // String date values
        inp.datepicker('option', {defaultDate: '07/04/2007'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date = new Date(2007, 7 - 1, 4);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date 07/04/2007');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date 07/04/2007');
        inp.datepicker('option', {dateFormat: 'yy-mm-dd', defaultDate: '2007-04-02'}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
        date = new Date(2007, 4 - 1, 2);
-       equalsDate(inp.datepicker('getDate'), date, 'Default date 2007-04-02');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date 2007-04-02');
        // Date value
        date = new Date(2007, 1 - 1, 26);
        inp.datepicker('option', {dateFormat: 'mm/dd/yy', defaultDate: date}).
                datepicker('hide').val('').datepicker('show').
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date, 'Default date 01/26/2007');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date, 'Default date 01/26/2007');
 });
 
 test('miscellaneous', function() {
        expect( 19 );
        var curYear, longNames, shortNames, date,
                dp = $('#ui-datepicker-div'),
-               inp = init('#inp');
+               inp = TestHelpers.datepicker.init('#inp');
        // Year range
        function genRange(start, offset) {
                var i = start,
@@ -323,7 +323,7 @@ test('miscellaneous', function() {
 test('minMax', function() {
        expect( 17 );
        var date,
-               inp = init('#inp'),
+               inp = TestHelpers.datepicker.init('#inp'),
                lastYear = new Date(2007, 6 - 1, 4),
                nextYear = new Date(2009, 6 - 1, 4),
                minDate = new Date(2008, 2 - 1, 29),
@@ -331,45 +331,45 @@ test('minMax', function() {
        inp.val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), lastYear,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), lastYear,
                'Min/max - null, null - ctrl+pgup');
        inp.val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), nextYear,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), nextYear,
                'Min/max - null, null - ctrl+pgdn');
        inp.datepicker('option', {minDate: minDate}).
                datepicker('hide').val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), minDate,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate,
                'Min/max - 02/29/2008, null - ctrl+pgup');
        inp.val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), nextYear,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), nextYear,
                'Min/max - 02/29/2008, null - ctrl+pgdn');
        inp.datepicker('option', {maxDate: maxDate}).
                datepicker('hide').val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), minDate,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate,
                'Min/max - 02/29/2008, 12/07/2008 - ctrl+pgup');
        inp.val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), maxDate,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate,
                'Min/max - 02/29/2008, 12/07/2008 - ctrl+pgdn');
        inp.datepicker('option', {minDate: null}).
                datepicker('hide').val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), lastYear,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), lastYear,
                'Min/max - null, 12/07/2008 - ctrl+pgup');
        inp.val('06/04/2008').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), maxDate,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate,
                'Min/max - null, 12/07/2008 - ctrl+pgdn');
        // Relative dates
        date = new Date();
@@ -378,80 +378,80 @@ test('minMax', function() {
                datepicker('hide').val('').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_UP}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date,
                'Min/max - -1w, +1 M +10 D - ctrl+pgup');
-       date = TestHelpers.addMonths(new Date(), 1);
+       date = TestHelpers.datepicker.addMonths(new Date(), 1);
        date.setDate(date.getDate() + 10);
        inp.val('').datepicker('show');
        inp.simulate('keydown', {ctrlKey: true, keyCode: $.ui.keyCode.PAGE_DOWN}).
                simulate('keydown', {keyCode: $.ui.keyCode.ENTER});
-       equalsDate(inp.datepicker('getDate'), date,
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date,
                'Min/max - -1w, +1 M +10 D - ctrl+pgdn');
        // With existing date
-       inp = init('#inp');
+       inp = TestHelpers.datepicker.init('#inp');
        inp.val('06/04/2008').datepicker('option', {minDate: minDate});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate > min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate > min');
        inp.datepicker('option', {minDate: null}).val('01/04/2008').datepicker('option', {minDate: minDate});
-       equalsDate(inp.datepicker('getDate'), minDate, 'Min/max - setDate < min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate, 'Min/max - setDate < min');
        inp.datepicker('option', {minDate: null}).val('06/04/2008').datepicker('option', {maxDate: maxDate});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate < max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate < max');
        inp.datepicker('option', {maxDate: null}).val('01/04/2009').datepicker('option', {maxDate: maxDate});
-       equalsDate(inp.datepicker('getDate'), maxDate, 'Min/max - setDate > max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate, 'Min/max - setDate > max');
        inp.datepicker('option', {maxDate: null}).val('01/04/2008').datepicker('option', {minDate: minDate, maxDate: maxDate});
-       equalsDate(inp.datepicker('getDate'), minDate, 'Min/max - setDate < min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate, 'Min/max - setDate < min');
        inp.datepicker('option', {maxDate: null}).val('06/04/2008').datepicker('option', {minDate: minDate, maxDate: maxDate});
-       equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate > min, < max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate > min, < max');
        inp.datepicker('option', {maxDate: null}).val('01/04/2009').datepicker('option', {minDate: minDate, maxDate: maxDate});
-       equalsDate(inp.datepicker('getDate'), maxDate, 'Min/max - setDate > max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate, 'Min/max - setDate > max');
 });
 
 test('setDate', function() {
        expect( 24 );
        var inl, alt, minDate, maxDate, dateAndTimeToSet, dateAndTimeClone,
-               inp = init('#inp'),
+               inp = TestHelpers.datepicker.init('#inp'),
                date1 = new Date(2008, 6 - 1, 4),
                date2 = new Date();
        ok(inp.datepicker('getDate') == null, 'Set date - default');
        inp.datepicker('setDate', date1);
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - 2008-06-04');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - 2008-06-04');
        date1 = new Date();
        date1.setDate(date1.getDate() + 7);
        inp.datepicker('setDate', +7);
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - +7');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - +7');
        date2.setFullYear(date2.getFullYear() + 2);
        inp.datepicker('setDate', '+2y');
-       equalsDate(inp.datepicker('getDate'), date2, 'Set date - +2y');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date2, 'Set date - +2y');
        inp.datepicker('setDate', date1, date2);
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - two dates');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - two dates');
        inp.datepicker('setDate');
        ok(inp.datepicker('getDate') == null, 'Set date - null');
        // Relative to current date
        date1 = new Date();
        date1.setDate(date1.getDate() + 7);
        inp.datepicker('setDate', 'c +7');
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - c +7');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - c +7');
        date1.setDate(date1.getDate() + 7);
        inp.datepicker('setDate', 'c+7');
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - c+7');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - c+7');
        date1.setDate(date1.getDate() - 21);
        inp.datepicker('setDate', 'c -3 w');
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date - c -3 w');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date - c -3 w');
        // Inline
-       inl = init('#inl');
+       inl = TestHelpers.datepicker.init('#inl');
        date1 = new Date(2008, 6 - 1, 4);
        date2 = new Date();
-       equalsDate(inl.datepicker('getDate'), date2, 'Set date inline - default');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date2, 'Set date inline - default');
        inl.datepicker('setDate', date1);
-       equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - 2008-06-04');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - 2008-06-04');
        date1 = new Date();
        date1.setDate(date1.getDate() + 7);
        inl.datepicker('setDate', +7);
-       equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - +7');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - +7');
        date2.setFullYear(date2.getFullYear() + 2);
        inl.datepicker('setDate', '+2y');
-       equalsDate(inl.datepicker('getDate'), date2, 'Set date inline - +2y');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date2, 'Set date inline - +2y');
        inl.datepicker('setDate', date1, date2);
-       equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - two dates');
+       TestHelpers.datepicker.equalsDate(inl.datepicker('getDate'), date1, 'Set date inline - two dates');
        inl.datepicker('setDate');
        ok(inl.datepicker('getDate') == null, 'Set date inline - null');
        // Alternate field
@@ -462,23 +462,23 @@ test('setDate', function() {
        equal(inp.val(), '06/04/2008', 'Set date alternate - 06/04/2008');
        equal(alt.val(), '2008-06-04', 'Set date alternate - 2008-06-04');
        // With minimum/maximum
-       inp = init('#inp');
+       inp = TestHelpers.datepicker.init('#inp');
        date1 = new Date(2008, 1 - 1, 4);
        date2 = new Date(2008, 6 - 1, 4);
        minDate = new Date(2008, 2 - 1, 29);
        maxDate = new Date(2008, 3 - 1, 28);
        inp.val('').datepicker('option', {minDate: minDate}).datepicker('setDate', date2);
-       equalsDate(inp.datepicker('getDate'), date2, 'Set date min/max - setDate > min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date2, 'Set date min/max - setDate > min');
        inp.datepicker('setDate', date1);
-       equalsDate(inp.datepicker('getDate'), minDate, 'Set date min/max - setDate < min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate, 'Set date min/max - setDate < min');
        inp.val('').datepicker('option', {maxDate: maxDate, minDate: null}).datepicker('setDate', date1);
-       equalsDate(inp.datepicker('getDate'), date1, 'Set date min/max - setDate < max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), date1, 'Set date min/max - setDate < max');
        inp.datepicker('setDate', date2);
-       equalsDate(inp.datepicker('getDate'), maxDate, 'Set date min/max - setDate > max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate, 'Set date min/max - setDate > max');
        inp.val('').datepicker('option', {minDate: minDate}).datepicker('setDate', date1);
-       equalsDate(inp.datepicker('getDate'), minDate, 'Set date min/max - setDate < min');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), minDate, 'Set date min/max - setDate < min');
        inp.datepicker('setDate', date2);
-       equalsDate(inp.datepicker('getDate'), maxDate, 'Set date min/max - setDate > max');
+       TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate, 'Set date min/max - setDate > max');
        dateAndTimeToSet = new Date(2008, 3 - 1, 28, 1, 11, 0);
        dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0);
        inp.datepicker('setDate', dateAndTimeToSet);
@@ -487,7 +487,7 @@ test('setDate', function() {
 
 test('altField', function() {
        expect( 10 );
-       var inp = init('#inp'),
+       var inp = TestHelpers.datepicker.init('#inp'),
                alt = $('#alt');
        // No alternate field set
        alt.val('');
@@ -526,7 +526,7 @@ test('altField', function() {
 
 test('autoSize', function() {
        expect( 15 );
-       var inp = init('#inp');
+       var inp = TestHelpers.datepicker.init('#inp');
        equal(inp.prop('size'), 20, 'Auto size - default');
        inp.datepicker('option', 'autoSize', true);
        equal(inp.prop('size'), 10, 'Auto size - mm/dd/yy');
@@ -562,7 +562,7 @@ test('autoSize', function() {
 
 test('daylightSaving', function() {
        expect( 25 );
-       var inp = init('#inp'),
+       var inp = TestHelpers.datepicker.init('#inp'),
                dp = $('#ui-datepicker-div');
        ok(true, 'Daylight saving - ' + new Date());
        // Australia, Sydney - AM change, southern hemisphere
@@ -669,7 +669,7 @@ test('callbacks', function() {
        expect( 13 );
        // Before show
        var dp, day20, day21,
-               inp = init('#inp', {beforeShow: beforeAll}),
+               inp = TestHelpers.datepicker.init('#inp', {beforeShow: beforeAll}),
                inst = $.data(inp[0], 'datepicker');
        equal($.datepicker._get(inst, 'currentText'), 'Today', 'Before show - initial');
        inp.val('02/04/2008').datepicker('show');
@@ -679,7 +679,7 @@ test('callbacks', function() {
        deepEqual(beforeShowInst, inst, 'Before show - inst OK');
        inp.datepicker('hide').datepicker('destroy');
        // Before show day
-       inp = init('#inp', {beforeShowDay: beforeDay});
+       inp = TestHelpers.datepicker.init('#inp', {beforeShowDay: beforeDay});
        dp = $('#ui-datepicker-div');
        inp.val('02/04/2008').datepicker('show');
        ok(beforeShowDayThis.id === inp[0].id, 'Before show day - this OK');
@@ -698,7 +698,7 @@ test('callbacks', function() {
 test('localisation', function() {
        expect( 24 );
        var dp, month, day, date,
-               inp = init('#inp', $.datepicker.regional.fr);
+               inp = TestHelpers.datepicker.init('#inp', $.datepicker.regional.fr);
        inp.datepicker('option', {dateFormat: 'DD, d MM yy', showButtonPanel:true, changeMonth:true, changeYear:true}).val('').datepicker('show');
        dp = $('#ui-datepicker-div');
        equal($('.ui-datepicker-close', dp).text(), 'Fermer', 'Localisation - close');
@@ -765,72 +765,72 @@ test('iso8601Week', function() {
 
 test('parseDate', function() {
        expect( 26 );
-       init('#inp');
+       TestHelpers.datepicker.init('#inp');
        var currentYear, gmtDate, fr, settings, zh;
        ok($.datepicker.parseDate('d m y', '') == null, 'Parse date empty');
-       equalsDate($.datepicker.parseDate('d m y', '3 2 01'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('d m y', '3 2 01'),
                new Date(2001, 2 - 1, 3), 'Parse date d m y');
-       equalsDate($.datepicker.parseDate('dd mm yy', '03 02 2001'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('dd mm yy', '03 02 2001'),
                new Date(2001, 2 - 1, 3), 'Parse date dd mm yy');
-       equalsDate($.datepicker.parseDate('d m y', '13 12 01'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('d m y', '13 12 01'),
                new Date(2001, 12 - 1, 13), 'Parse date d m y');
-       equalsDate($.datepicker.parseDate('dd mm yy', '13 12 2001'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('dd mm yy', '13 12 2001'),
                new Date(2001, 12 - 1, 13), 'Parse date dd mm yy');
-       equalsDate($.datepicker.parseDate('y-o', '01-34'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-o', '01-34'),
                new Date(2001, 2 - 1, 3), 'Parse date y-o');
-       equalsDate($.datepicker.parseDate('yy-oo', '2001-347'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('yy-oo', '2001-347'),
                new Date(2001, 12 - 1, 13), 'Parse date yy-oo');
-       equalsDate($.datepicker.parseDate('oo yy', '348 2004'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('oo yy', '348 2004'),
                new Date(2004, 12 - 1, 13), 'Parse date oo yy');
-       equalsDate($.datepicker.parseDate('D d M y', 'Sat 3 Feb 01'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('D d M y', 'Sat 3 Feb 01'),
                new Date(2001, 2 - 1, 3), 'Parse date D d M y');
-       equalsDate($.datepicker.parseDate('d MM DD yy', '3 February Saturday 2001'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('d MM DD yy', '3 February Saturday 2001'),
                new Date(2001, 2 - 1, 3), 'Parse date dd MM DD yy');
-       equalsDate($.datepicker.parseDate('DD, MM d, yy', 'Saturday, February 3, 2001'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('DD, MM d, yy', 'Saturday, February 3, 2001'),
                new Date(2001, 2 - 1, 3), 'Parse date DD, MM d, yy');
-       equalsDate($.datepicker.parseDate('\'day\' d \'of\' MM (\'\'DD\'\'), yy',
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('\'day\' d \'of\' MM (\'\'DD\'\'), yy',
                'day 3 of February (\'Saturday\'), 2001'), new Date(2001, 2 - 1, 3),
                'Parse date \'day\' d \'of\' MM (\'\'DD\'\'), yy');
        currentYear = new Date().getFullYear();
-       equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000) + '-02-03'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000) + '-02-03'),
                        new Date(currentYear, 2 - 1, 3), 'Parse date y-m-d - default cutuff');
-       equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 10) + '-02-03'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 10) + '-02-03'),
                        new Date(currentYear+10, 2 - 1, 3), 'Parse date y-m-d - default cutuff');
-       equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 11) + '-02-03'),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 11) + '-02-03'),
                        new Date(currentYear-89, 2 - 1, 3), 'Parse date y-m-d - default cutuff');
-       equalsDate($.datepicker.parseDate('y-m-d', '80-02-03', {shortYearCutoff: 80}),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', '80-02-03', {shortYearCutoff: 80}),
                new Date(2080, 2 - 1, 3), 'Parse date y-m-d - cutoff 80');
-       equalsDate($.datepicker.parseDate('y-m-d', '81-02-03', {shortYearCutoff: 80}),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', '81-02-03', {shortYearCutoff: 80}),
                new Date(1981, 2 - 1, 3), 'Parse date y-m-d - cutoff 80');
-       equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 60) + '-02-03', {shortYearCutoff: '+60'}),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 60) + '-02-03', {shortYearCutoff: '+60'}),
                        new Date(currentYear + 60, 2 - 1, 3), 'Parse date y-m-d - cutoff +60');
-       equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 61) + '-02-03', {shortYearCutoff: '+60'}),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('y-m-d', (currentYear - 2000 + 61) + '-02-03', {shortYearCutoff: '+60'}),
                        new Date(currentYear - 39, 2 - 1, 3), 'Parse date y-m-d - cutoff +60');
        gmtDate = new Date(2001, 2 - 1, 3);
        gmtDate.setMinutes(gmtDate.getMinutes() - gmtDate.getTimezoneOffset());
-       equalsDate($.datepicker.parseDate('@', '981158400000'), gmtDate, 'Parse date @');
-       equalsDate($.datepicker.parseDate('!', '631167552000000000'), gmtDate, 'Parse date !');
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('@', '981158400000'), gmtDate, 'Parse date @');
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('!', '631167552000000000'), gmtDate, 'Parse date !');
        fr = $.datepicker.regional.fr;
        settings = {dayNamesShort: fr.dayNamesShort, dayNames: fr.dayNames,
                monthNamesShort: fr.monthNamesShort, monthNames: fr.monthNames};
-       equalsDate($.datepicker.parseDate('D d M y', 'Lun. 9 Avril 01', settings),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('D d M y', 'Lun. 9 Avril 01', settings),
                new Date(2001, 4 - 1, 9), 'Parse date D M y with settings');
-       equalsDate($.datepicker.parseDate('d MM DD yy', '9 Avril Lundi 2001', settings),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('d MM DD yy', '9 Avril Lundi 2001', settings),
                new Date(2001, 4 - 1, 9), 'Parse date d MM DD yy with settings');
-       equalsDate($.datepicker.parseDate('DD, MM d, yy', 'Lundi, Avril 9, 2001', settings),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('DD, MM d, yy', 'Lundi, Avril 9, 2001', settings),
                new Date(2001, 4 - 1, 9), 'Parse date DD, MM d, yy with settings');
-       equalsDate($.datepicker.parseDate('\'jour\' d \'de\' MM (\'\'DD\'\'), yy',
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('\'jour\' d \'de\' MM (\'\'DD\'\'), yy',
                'jour 9 de Avril (\'Lundi\'), 2001', settings), new Date(2001, 4 - 1, 9),
                'Parse date \'jour\' d \'de\' MM (\'\'DD\'\'), yy with settings');
 
        zh = $.datepicker.regional['zh-CN'];
-       equalsDate($.datepicker.parseDate('yy M d', '2011 十一 22', zh),
+       TestHelpers.datepicker.equalsDate($.datepicker.parseDate('yy M d', '2011 十一 22', zh),
                new Date(2011, 11 - 1, 22), 'Parse date yy M d with zh-CN');
 });
 
 test('parseDateErrors', function() {
        expect( 17 );
-       init('#inp');
+       TestHelpers.datepicker.init('#inp');
        var fr, settings;
        function expectError(expr, value, error) {
                try {
@@ -883,7 +883,7 @@ test('parseDateErrors', function() {
 
 test('formatDate', function() {
        expect( 16 );
-       init('#inp');
+       TestHelpers.datepicker.init('#inp');
        var gmtDate, fr, settings;
        equal($.datepicker.formatDate('d m y', new Date(2001, 2 - 1, 3)),
                '3 2 01', 'Format date d m y');
diff --git a/tests/unit/datepicker/datepicker_test_helpers.js b/tests/unit/datepicker/datepicker_test_helpers.js
new file mode 100644 (file)
index 0000000..2d374f5
--- /dev/null
@@ -0,0 +1,22 @@
+TestHelpers.datepicker = {
+       addMonths: function(date, offset) {
+               var maxDay = 32 - new Date(date.getFullYear(), date.getMonth() + offset, 32).getDate();
+               date.setDate(Math.min(date.getDate(), maxDay));
+               date.setMonth(date.getMonth() + offset);
+               return date;
+       },
+       equalsDate: function(d1, d2, message) {
+               if (!d1 || !d2) {
+                       ok(false, message + ' - missing date');
+                       return;
+               }
+               d1 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());
+               d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());
+               equal(d1.toString(), d2.toString(), message);
+       },
+       init: function(id, options) {
+               $.datepicker.setDefaults($.datepicker.regional['']);
+               return $(id).datepicker($.extend({showAnim: ''}, options || {}));
+       },
+       PROP_NAME: 'datepicker'
+};
\ No newline at end of file
index ff5dfde6375e3fa352daf791435b792a2fc6347e..4440992ae0fb167d283daedcd563df3bcf8be49e 100644 (file)
@@ -8,7 +8,7 @@ module("datepicker: tickets");
 // http://forum.jquery.com/topic/several-breaking-changes-in-jquery-ui-1-8rc1
 test('beforeShowDay-getDate', function() {
        expect( 3 );
-       var inp = init('#inp', {beforeShowDay: function() { inp.datepicker('getDate'); return [true, '']; }}),
+       var inp = TestHelpers.datepicker.init('#inp', {beforeShowDay: function() { inp.datepicker('getDate'); return [true, '']; }}),
                dp = $('#ui-datepicker-div');
        inp.val('01/01/2010').datepicker('show');
        // contains non-breaking space
@@ -27,7 +27,7 @@ test('beforeShowDay-getDate', function() {
 
 test('Ticket 7602: Stop datepicker from appearing with beforeShow event handler', function(){
        expect( 3 );
-       var inp = init('#inp',{
+       var inp = TestHelpers.datepicker.init('#inp',{
                        beforeShow: function(){
                                return false;
                        }
@@ -37,7 +37,7 @@ test('Ticket 7602: Stop datepicker from appearing with beforeShow event handler'
        equal(dp.css('display'), 'none',"beforeShow returns false");
        inp.datepicker('destroy');
 
-       inp = init('#inp',{
+       inp = TestHelpers.datepicker.init('#inp',{
                beforeShow: function(){
                }
        });
@@ -47,7 +47,7 @@ test('Ticket 7602: Stop datepicker from appearing with beforeShow event handler'
        inp.datepicker('hide');
        inp.datepicker('destroy');
 
-       inp = init('#inp',{
+       inp = TestHelpers.datepicker.init('#inp',{
                beforeShow: function(){
                        return true;
                }
index 6722f1bb0ee93a656309182d05768b5f474f64ad..cb74bb654c9abca591e3a30b102481f944320f41 100644 (file)
@@ -29,6 +29,7 @@
        <script src="dialog_events.js"></script>
        <script src="dialog_methods.js"></script>
        <script src="dialog_options.js"></script>
+       <script src="dialog_test_helpers.js"></script>
        <script src="dialog_tickets.js"></script>
 
        <script src="../swarminject.js"></script>
index a9e5e9be2c3a205276c9b246442fc0cc75116073..b36f6204fc52ac2c57edb89c97e82153b58ff03b 100644 (file)
@@ -2,80 +2,6 @@
  * dialog_core.js
  */
 
-var el,
-       offsetBefore, offsetAfter,
-       heightBefore, heightAfter,
-       widthBefore, widthAfter,
-       dragged;
-
-function dlg() {
-       return el.dialog('widget');
-}
-
-TestHelpers.isOpen = function(why) {
-       ok(dlg().is(":visible"), why);
-};
-
-TestHelpers.isNotOpen = function(why) {
-       ok(!dlg().is(":visible"), why);
-};
-
-function drag(handle, dx, dy) {
-       var d = dlg();
-       offsetBefore = d.offset();
-       heightBefore = d.height();
-       widthBefore = d.width();
-       //this mouseover is to work around a limitation in resizable
-       //TODO: fix resizable so handle doesn't require mouseover in order to be used
-       $(handle, d).simulate("mouseover");
-       $(handle, d).simulate("drag", {
-               dx: dx || 0,
-               dy: dy || 0
-       });
-       dragged = { dx: dx, dy: dy };
-       offsetAfter = d.offset();
-       heightAfter = d.height();
-       widthAfter = d.width();
-}
-
-TestHelpers.dialogMoved = function(dx, dy, msg) {
-       msg = msg ? msg + "." : "";
-       var actual = { left: Math.round(offsetAfter.left), top: Math.round(offsetAfter.top) },
-               expected = { left: Math.round(offsetBefore.left + dx), top: Math.round(offsetBefore.top + dy) };
-       deepEqual(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
-};
-
-TestHelpers.shouldmove = function(why) {
-       var handle = $(".ui-dialog-titlebar", dlg());
-       drag(handle, 50, -50);
-       TestHelpers.dialogMoved(50, -50, why);
-};
-
-TestHelpers.shouldnotmove = function(why) {
-       var handle = $(".ui-dialog-titlebar", dlg());
-       drag(handle, 50, -50);
-       TestHelpers.dialogMoved(0, 0, why);
-};
-
-TestHelpers.resized = function(dw, dh, msg) {
-       msg = msg ? msg + "." : "";
-       var actual = { width: widthAfter, height: heightAfter },
-               expected = { width: widthBefore + dw, height: heightBefore + dh };
-       deepEqual(actual, expected, 'resized[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
-};
-
-TestHelpers.shouldresize = function(why) {
-       var handle = $(".ui-resizable-se", dlg());
-       drag(handle, 50, 50);
-       TestHelpers.resized(50, 50, why);
-};
-
-TestHelpers.shouldnotresize = function(why) {
-       var handle = $(".ui-resizable-se", dlg());
-       drag(handle, 50, 50);
-       TestHelpers.resized(0, 0, why);
-};
-
 (function($) {
 
 module("dialog: core");
@@ -83,8 +9,10 @@ module("dialog: core");
 test("title id", function() {
        expect(1);
 
-       el = $('<div></div>').dialog();
-       var titleId = dlg().find('.ui-dialog-title').attr('id');
+       var titleId,
+               el = $('<div></div>').dialog();
+
+       titleId = el.dialog('widget').find('.ui-dialog-title').attr('id');
        ok( /ui-id-\d+$/.test( titleId ), 'auto-numbered title id');
        el.remove();
 });
@@ -92,16 +20,17 @@ test("title id", function() {
 test("ARIA", function() {
        expect(4);
 
-       el = $('<div></div>').dialog();
+       var labelledBy,
+               el = $('<div></div>').dialog();
 
-       equal(dlg().attr('role'), 'dialog', 'dialog role');
+       equal(el.dialog('widget').attr('role'), 'dialog', 'dialog role');
 
-       var labelledBy = dlg().attr('aria-labelledby');
+       labelledBy = el.dialog('widget').attr('aria-labelledby');
        ok(labelledBy.length > 0, 'has aria-labelledby attribute');
-       equal(dlg().find('.ui-dialog-title').attr('id'), labelledBy,
+       equal(el.dialog('widget').find('.ui-dialog-title').attr('id'), labelledBy,
                'proper aria-labelledby attribute');
 
-       equal(dlg().find('.ui-dialog-titlebar-close').attr('role'), 'button',
+       equal(el.dialog('widget').find('.ui-dialog-titlebar-close').attr('role'), 'button',
                'close link role');
 
        el.remove();
index 38b75a714dd6240806472ac58bca51435b2d3d7d..c5090d8f6737be34f46fe86fb8258987bb9adeb8 100644 (file)
@@ -8,7 +8,7 @@ module("dialog: events");
 test("open", function() {
        expect(13);
 
-       el = $("<div></div>");
+       var el = $("<div></div>");
        el.dialog({
                open: function(ev, ui) {
                        ok(el.data("dialog")._isOpen, "interal _isOpen flag is set");
@@ -42,163 +42,171 @@ test("open", function() {
 test("dragStart", function() {
        expect(9);
 
-       el = $('<div></div>').dialog({
-               dragStart: function(ev, ui) {
-                       ok(true, 'dragging fires dragStart callback');
-                       equal(this, el[0], "context of callback");
-                       equal(ev.type, 'dialogdragstart', 'event type in callback');
+       var handle,
+               el = $('<div></div>').dialog({
+                       dragStart: function(ev, ui) {
+                               ok(true, 'dragging fires dragStart callback');
+                               equal(this, el[0], "context of callback");
+                               equal(ev.type, 'dialogdragstart', 'event type in callback');
+                               ok(ui.position !== undefined, "ui.position in callback");
+                               ok(ui.offset !== undefined, "ui.offset in callback");
+                       }
+               }).bind('dialogdragstart', function(ev, ui) {
+                       ok(true, 'dragging fires dialogdragstart event');
+                       equal(this, el[0], 'context of event');
                        ok(ui.position !== undefined, "ui.position in callback");
                        ok(ui.offset !== undefined, "ui.offset in callback");
-               }
-       }).bind('dialogdragstart', function(ev, ui) {
-               ok(true, 'dragging fires dialogdragstart event');
-               equal(this, el[0], 'context of event');
-               ok(ui.position !== undefined, "ui.position in callback");
-               ok(ui.offset !== undefined, "ui.offset in callback");
-       });
-       var handle = $(".ui-dialog-titlebar", dlg());
-       drag(handle, 50, 50);
+               });
+
+       handle = $(".ui-dialog-titlebar", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 test("drag", function() {
        expect(9);
        var handle,
-               hasDragged = false;
+               hasDragged = false,
+               el = $('<div></div>').dialog({
+                       drag: function(ev, ui) {
+                               if (!hasDragged) {
+                                       ok(true, 'dragging fires drag callback');
+                                       equal(this, el[0], "context of callback");
+                                       equal(ev.type, 'dialogdrag', 'event type in callback');
+                                       ok(ui.position !== undefined, "ui.position in callback");
+                                       ok(ui.offset !== undefined, "ui.offset in callback");
 
-       el = $('<div></div>').dialog({
-               drag: function(ev, ui) {
-                       if (!hasDragged) {
-                               ok(true, 'dragging fires drag callback');
-                               equal(this, el[0], "context of callback");
-                               equal(ev.type, 'dialogdrag', 'event type in callback');
-                               ok(ui.position !== undefined, "ui.position in callback");
-                               ok(ui.offset !== undefined, "ui.offset in callback");
-
-                               hasDragged = true;
+                                       hasDragged = true;
+                               }
                        }
-               }
-       }).one('dialogdrag', function(ev, ui) {
-               ok(true, 'dragging fires dialogdrag event');
-               equal(this, el[0], 'context of event');
-               ok(ui.position !== undefined, "ui.position in callback");
-               ok(ui.offset !== undefined, "ui.offset in callback");
-       });
-       handle = $(".ui-dialog-titlebar", dlg());
-       drag(handle, 50, 50);
+               }).one('dialogdrag', function(ev, ui) {
+                       ok(true, 'dragging fires dialogdrag event');
+                       equal(this, el[0], 'context of event');
+                       ok(ui.position !== undefined, "ui.position in callback");
+                       ok(ui.offset !== undefined, "ui.offset in callback");
+               });
+
+       handle = $(".ui-dialog-titlebar", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 test("dragStop", function() {
        expect(9);
 
-       el = $('<div></div>').dialog({
-               dragStop: function(ev, ui) {
-                       ok(true, 'dragging fires dragStop callback');
-                       equal(this, el[0], "context of callback");
-                       equal(ev.type, 'dialogdragstop', 'event type in callback');
+       var handle,
+               el = $('<div></div>').dialog({
+                       dragStop: function(ev, ui) {
+                               ok(true, 'dragging fires dragStop callback');
+                               equal(this, el[0], "context of callback");
+                               equal(ev.type, 'dialogdragstop', 'event type in callback');
+                               ok(ui.position !== undefined, "ui.position in callback");
+                               ok(ui.offset !== undefined, "ui.offset in callback");
+                       }
+               }).bind('dialogdragstop', function(ev, ui) {
+                       ok(true, 'dragging fires dialogdragstop event');
+                       equal(this, el[0], 'context of event');
                        ok(ui.position !== undefined, "ui.position in callback");
                        ok(ui.offset !== undefined, "ui.offset in callback");
-               }
-       }).bind('dialogdragstop', function(ev, ui) {
-               ok(true, 'dragging fires dialogdragstop event');
-               equal(this, el[0], 'context of event');
-               ok(ui.position !== undefined, "ui.position in callback");
-               ok(ui.offset !== undefined, "ui.offset in callback");
-       });
-       var handle = $(".ui-dialog-titlebar", dlg());
-       drag(handle, 50, 50);
+               });
+
+       handle = $(".ui-dialog-titlebar", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 test("resizeStart", function() {
        expect(13);
 
-       el = $('<div></div>').dialog({
-               resizeStart: function(ev, ui) {
-                       ok(true, 'resizing fires resizeStart callback');
-                       equal(this, el[0], "context of callback");
-                       equal(ev.type, 'dialogresizestart', 'event type in callback');
+       var handle,
+               el = $('<div></div>').dialog({
+                       resizeStart: function(ev, ui) {
+                               ok(true, 'resizing fires resizeStart callback');
+                               equal(this, el[0], "context of callback");
+                               equal(ev.type, 'dialogresizestart', 'event type in callback');
+                               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
+                               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
+                               ok(ui.position !== undefined, "ui.position in callback");
+                               ok(ui.size !== undefined, "ui.size in callback");
+                       }
+               }).bind('dialogresizestart', function(ev, ui) {
+                       ok(true, 'resizing fires dialogresizestart event');
+                       equal(this, el[0], 'context of event');
                        ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
                        ok(ui.originalSize !== undefined, "ui.originalSize in callback");
                        ok(ui.position !== undefined, "ui.position in callback");
                        ok(ui.size !== undefined, "ui.size in callback");
-               }
-       }).bind('dialogresizestart', function(ev, ui) {
-               ok(true, 'resizing fires dialogresizestart event');
-               equal(this, el[0], 'context of event');
-               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
-               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
-               ok(ui.position !== undefined, "ui.position in callback");
-               ok(ui.size !== undefined, "ui.size in callback");
-       });
-       var handle = $(".ui-resizable-se", dlg());
-       drag(handle, 50, 50);
+               });
+
+       handle = $(".ui-resizable-se", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 test("resize", function() {
        expect(13);
        var handle,
-               hasResized = false;
-
-       el = $('<div></div>').dialog({
-               resize: function(ev, ui) {
-                       if (!hasResized) {
-                               ok(true, 'resizing fires resize callback');
-                               equal(this, el[0], "context of callback");
-                               equal(ev.type, 'dialogresize', 'event type in callback');
-                               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
-                               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
-                               ok(ui.position !== undefined, "ui.position in callback");
-                               ok(ui.size !== undefined, "ui.size in callback");
+               hasResized = false,
+               el = $('<div></div>').dialog({
+                       resize: function(ev, ui) {
+                               if (!hasResized) {
+                                       ok(true, 'resizing fires resize callback');
+                                       equal(this, el[0], "context of callback");
+                                       equal(ev.type, 'dialogresize', 'event type in callback');
+                                       ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
+                                       ok(ui.originalSize !== undefined, "ui.originalSize in callback");
+                                       ok(ui.position !== undefined, "ui.position in callback");
+                                       ok(ui.size !== undefined, "ui.size in callback");
 
-                               hasResized = true;
+                                       hasResized = true;
+                               }
                        }
-               }
-       }).one('dialogresize', function(ev, ui) {
-               ok(true, 'resizing fires dialogresize event');
-               equal(this, el[0], 'context of event');
-               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
-               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
-               ok(ui.position !== undefined, "ui.position in callback");
-               ok(ui.size !== undefined, "ui.size in callback");
-       });
-       handle = $(".ui-resizable-se", dlg());
-       drag(handle, 50, 50);
+               }).one('dialogresize', function(ev, ui) {
+                       ok(true, 'resizing fires dialogresize event');
+                       equal(this, el[0], 'context of event');
+                       ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
+                       ok(ui.originalSize !== undefined, "ui.originalSize in callback");
+                       ok(ui.position !== undefined, "ui.position in callback");
+                       ok(ui.size !== undefined, "ui.size in callback");
+               });
+
+       handle = $(".ui-resizable-se", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 test("resizeStop", function() {
        expect(13);
 
-       el = $('<div></div>').dialog({
-               resizeStop: function(ev, ui) {
-                       ok(true, 'resizing fires resizeStop callback');
-                       equal(this, el[0], "context of callback");
-                       equal(ev.type, 'dialogresizestop', 'event type in callback');
-                       ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
-                       ok(ui.originalSize !== undefined, "ui.originalSize in callback");
-                       ok(ui.position !== undefined, "ui.position in callback");
-                       ok(ui.size !== undefined, "ui.size in callback");
-               }
-       }).bind('dialogresizestop', function(ev, ui) {
-               ok(true, 'resizing fires dialogresizestop event');
-               equal(this, el[0], 'context of event');
-                       ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
-                       ok(ui.originalSize !== undefined, "ui.originalSize in callback");
-                       ok(ui.position !== undefined, "ui.position in callback");
-                       ok(ui.size !== undefined, "ui.size in callback");
-       });
-       var handle = $(".ui-resizable-se", dlg());
-       drag(handle, 50, 50);
+       var handle,
+               el = $('<div></div>').dialog({
+                       resizeStop: function(ev, ui) {
+                               ok(true, 'resizing fires resizeStop callback');
+                               equal(this, el[0], "context of callback");
+                               equal(ev.type, 'dialogresizestop', 'event type in callback');
+                               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
+                               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
+                               ok(ui.position !== undefined, "ui.position in callback");
+                               ok(ui.size !== undefined, "ui.size in callback");
+                       }
+               }).bind('dialogresizestop', function(ev, ui) {
+                       ok(true, 'resizing fires dialogresizestop event');
+                       equal(this, el[0], 'context of event');
+                               ok(ui.originalPosition !== undefined, "ui.originalPosition in callback");
+                               ok(ui.originalSize !== undefined, "ui.originalSize in callback");
+                               ok(ui.position !== undefined, "ui.position in callback");
+                               ok(ui.size !== undefined, "ui.size in callback");
+               });
+
+       handle = $(".ui-resizable-se", el.dialog('widget'));
+       TestHelpers.dialog.drag(el, handle, 50, 50);
        el.remove();
 });
 
 asyncTest("close", function() {
        expect(14);
 
-       el = $('<div></div>').dialog({
+       var el = $('<div></div>').dialog({
                close: function(ev, ui) {
                        ok(true, '.dialog("close") fires close callback');
                        equal(this, el[0], "context of callback");
@@ -234,7 +242,7 @@ asyncTest("close", function() {
 test("beforeClose", function() {
        expect(14);
 
-       el = $('<div></div>').dialog({
+       var el = $('<div></div>').dialog({
                beforeClose: function(ev, ui) {
                        ok(true, '.dialog("close") fires beforeClose callback');
                        equal(this, el[0], "context of callback");
@@ -243,8 +251,9 @@ test("beforeClose", function() {
                        return false;
                }
        });
+
        el.dialog('close');
-       TestHelpers.isOpen('beforeClose callback should prevent dialog from closing');
+       ok( el.dialog("widget").is(":visible"), 'beforeClose callback should prevent dialog from closing');
        el.remove();
 
        el = $('<div></div>').dialog();
@@ -256,7 +265,8 @@ test("beforeClose", function() {
                return false;
        });
        el.dialog('close');
-       TestHelpers.isOpen('beforeClose callback should prevent dialog from closing');
+
+       ok( el.dialog("widget").is(":visible"), 'beforeClose callback should prevent dialog from closing');
        el.remove();
 
        el = $('<div></div>').dialog().bind('dialogbeforeclose', function(ev, ui) {
@@ -266,7 +276,7 @@ test("beforeClose", function() {
                return false;
        });
        el.dialog('close');
-       TestHelpers.isOpen('dialogbeforeclose event should prevent dialog from closing');
+       ok( el.dialog("widget").is(":visible"), 'dialogbeforeclose event should prevent dialog from closing');
        el.remove();
 });
 
index e7b2fc710dde343baff0ad2c93c1e49b2424453b..7048a76a935977e8af5dbc125190daf2005ee9e8 100644 (file)
@@ -24,7 +24,7 @@ test("init", function() {
        $('<div></div>').appendTo('body').remove().dialog().remove();
        ok(true, '.dialog() called on disconnected DOMElement - removed');
 
-       el = $('<div></div>').dialog();
+       var el = $('<div></div>').dialog();
        el.dialog("option", "foo");
        el.remove();
        ok(true, 'arbitrary option getter after init');
@@ -53,46 +53,49 @@ test("destroy", function() {
 test("enable", function() {
        expect( 3 );
 
-       var expected = $('<div></div>').dialog(),
+       var el,
+               expected = $('<div></div>').dialog(),
                actual = expected.dialog('enable');
        equal(actual, expected, 'enable is chainable');
 
        el = $('<div></div>').dialog({ disabled: true });
        el.dialog('enable');
        equal(el.dialog('option', 'disabled'), false, 'enable method sets disabled option to false');
-       ok(!dlg().hasClass('ui-dialog-disabled'), 'enable method removes ui-dialog-disabled class from ui-dialog element');
+       ok(!el.dialog('widget').hasClass('ui-dialog-disabled'), 'enable method removes ui-dialog-disabled class from ui-dialog element');
 });
 
 test("disable", function() {
        expect( 3 );
 
-       var expected = $('<div></div>').dialog(),
+       var el,
+               expected = $('<div></div>').dialog(),
                actual = expected.dialog('disable');
        equal(actual, expected, 'disable is chainable');
 
        el = $('<div></div>').dialog({ disabled: false });
        el.dialog('disable');
        equal(el.dialog('option', 'disabled'), true, 'disable method sets disabled option to true');
-       ok(dlg().hasClass('ui-dialog-disabled'), 'disable method adds ui-dialog-disabled class to ui-dialog element');
+       ok(el.dialog('widget').hasClass('ui-dialog-disabled'), 'disable method adds ui-dialog-disabled class to ui-dialog element');
 });
 
 test("close", function() {
        expect( 3 );
 
-       var expected = $('<div></div>').dialog(),
+       var el,
+               expected = $('<div></div>').dialog(),
                actual = expected.dialog('close');
        equal(actual, expected, 'close is chainable');
 
        el = $('<div></div>').dialog();
-       ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible before close method called');
+       ok(el.dialog('widget').is(':visible') && !el.dialog('widget').is(':hidden'), 'dialog visible before close method called');
        el.dialog('close');
-       ok(dlg().is(':hidden') && !dlg().is(':visible'), 'dialog hidden after close method called');
+       ok(el.dialog('widget').is(':hidden') && !el.dialog('widget').is(':visible'), 'dialog hidden after close method called');
 });
 
 test("isOpen", function() {
        expect(4);
 
-       el = $('<div></div>').dialog();
+       var el = $('<div></div>').dialog();
        equal(el.dialog('isOpen'), true, "dialog is open after init");
        el.dialog('close');
        equal(el.dialog('isOpen'), false, "dialog is closed");
@@ -134,14 +137,15 @@ test("moveToTop", function() {
 
 test("open", function() {
        expect( 3 );
-       var expected = $('<div></div>').dialog(),
+       var el,
+               expected = $('<div></div>').dialog(),
                actual = expected.dialog('open');
        equal(actual, expected, 'open is chainable');
 
        el = $('<div></div>').dialog({ autoOpen: false });
-       ok(dlg().is(':hidden') && !dlg().is(':visible'), 'dialog hidden before open method called');
+       ok(el.dialog('widget').is(':hidden') && !el.dialog('widget').is(':visible'), 'dialog hidden before open method called');
        el.dialog('open');
-       ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog visible after open method called');
+       ok(el.dialog('widget').is(':visible') && !el.dialog('widget').is(':hidden'), 'dialog visible after open method called');
 });
 
 })(jQuery);
index 1c823868e3394ad23f15e271ce4982fc4dfc2afe..b6ff2dfc4aaf1dc23612ef8c4ac0fc6fae7db3fb 100644 (file)
@@ -8,12 +8,12 @@ module("dialog: options");
 test("autoOpen", function() {
        expect(2);
 
-       el = $('<div></div>').dialog({ autoOpen: false });
-       TestHelpers.isNotOpen('.dialog({ autoOpen: false })');
+       var el = $('<div></div>').dialog({ autoOpen: false });
+       ok( !el.dialog("widget").is(":visible"), '.dialog({ autoOpen: false })');
        el.remove();
 
        el = $('<div></div>').dialog({ autoOpen: true });
-       TestHelpers.isOpen('.dialog({ autoOpen: true })');
+       ok( el.dialog("widget").is(":visible"), '.dialog({ autoOpen: true })');
        el.remove();
 });
 
@@ -22,20 +22,20 @@ test("buttons", function() {
 
        var btn, i, newButtons,
                buttons = {
-               "Ok": function( ev ) {
-                       ok(true, "button click fires callback");
-                       equal(this, el[0], "context of callback");
-                       equal(ev.target, btn[0], "event target");
+                       "Ok": function( ev ) {
+                               ok(true, "button click fires callback");
+                               equal(this, el[0], "context of callback");
+                               equal(ev.target, btn[0], "event target");
+                       },
+                       "Cancel": function( ev ) {
+                               ok(true, "button click fires callback");
+                               equal(this, el[0], "context of callback");
+                               equal(ev.target, btn[1], "event target");
+                       }
                },
-               "Cancel": function( ev ) {
-                       ok(true, "button click fires callback");
-                       equal(this, el[0], "context of callback");
-                       equal(ev.target, btn[1], "event target");
-               }
-       };
+               el = $('<div></div>').dialog({ buttons: buttons });
 
-       el = $('<div></div>').dialog({ buttons: buttons });
-       btn = $("button", dlg());
+       btn = $("button", el.dialog('widget'));
        equal(btn.length, 2, "number of buttons");
 
        i = 0;
@@ -61,7 +61,7 @@ test("buttons", function() {
        el.dialog("option", "buttons", newButtons);
        deepEqual(el.dialog("option", "buttons"), newButtons, '.dialog("option", "buttons", ...) setter');
 
-       btn = $("button", dlg());
+       btn = $("button", el.dialog('widget'));
        equal(btn.length, 1, "number of buttons after setter");
        btn.trigger('click');
 
@@ -72,7 +72,7 @@ test("buttons", function() {
        });
 
        el.dialog("option", "buttons", null);
-       btn = $("button", dlg());
+       btn = $("button", el.dialog('widget'));
        equal(btn.length, 0, "all buttons have been removed");
        equal(el.find(".ui-dialog-buttonset").length, 0, "buttonset has been removed");
        equal(el.parent().hasClass('ui-dialog-buttons'), false, "dialog wrapper removes class about having buttons");
@@ -83,19 +83,21 @@ test("buttons", function() {
 test("buttons - advanced", function() {
        expect(5);
 
-       el = $("<div></div>").dialog({
-               buttons: [
-                       {
-                               text: "a button",
-                               "class": "additional-class",
-                               id: "my-button-id",
-                               click: function() {
-                                       equal(this, el[0], "correct context");
+       var buttons,
+               el = $("<div></div>").dialog({
+                       buttons: [
+                               {
+                                       text: "a button",
+                                       "class": "additional-class",
+                                       id: "my-button-id",
+                                       click: function() {
+                                               equal(this, el[0], "correct context");
+                                       }
                                }
-                       }
-               ]
-       });
-       var buttons = dlg().find("button");
+                       ]
+               });
+
+       buttons = el.dialog('widget').find("button");
        equal(buttons.length, 1, "correct number of buttons");
        equal(buttons.attr("id"), "my-button-id", "correct id");
        equal(buttons.text(), "a button", "correct label");
@@ -107,40 +109,40 @@ test("buttons - advanced", function() {
 
 test("closeOnEscape", function() {
        expect( 6 );
-       el = $('<div></div>').dialog({ closeOnEscape: false });
+       var el = $('<div></div>').dialog({ closeOnEscape: false });
        ok(true, 'closeOnEscape: false');
-       ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog is open before ESC');
+       ok(el.dialog('widget').is(':visible') && !el.dialog('widget').is(':hidden'), 'dialog is open before ESC');
        el.simulate('keydown', { keyCode: $.ui.keyCode.ESCAPE })
                .simulate('keypress', { keyCode: $.ui.keyCode.ESCAPE })
                .simulate('keyup', { keyCode: $.ui.keyCode.ESCAPE });
-       ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog is open after ESC');
+       ok(el.dialog('widget').is(':visible') && !el.dialog('widget').is(':hidden'), 'dialog is open after ESC');
 
        el.remove();
 
        el = $('<div></div>').dialog({ closeOnEscape: true });
        ok(true, 'closeOnEscape: true');
-       ok(dlg().is(':visible') && !dlg().is(':hidden'), 'dialog is open before ESC');
+       ok(el.dialog('widget').is(':visible') && !el.dialog('widget').is(':hidden'), 'dialog is open before ESC');
        el.simulate('keydown', { keyCode: $.ui.keyCode.ESCAPE })
                .simulate('keypress', { keyCode: $.ui.keyCode.ESCAPE })
                .simulate('keyup', { keyCode: $.ui.keyCode.ESCAPE });
-       ok(dlg().is(':hidden') && !dlg().is(':visible'), 'dialog is closed after ESC');
+       ok(el.dialog('widget').is(':hidden') && !el.dialog('widget').is(':visible'), 'dialog is closed after ESC');
 });
 
 test("closeText", function() {
        expect(3);
 
-       el = $('<div></div>').dialog();
-               equal(dlg().find('.ui-dialog-titlebar-close span').text(), 'close',
+       var el = $('<div></div>').dialog();
+               equal(el.dialog('widget').find('.ui-dialog-titlebar-close span').text(), 'close',
                        'default close text');
        el.remove();
 
        el = $('<div></div>').dialog({ closeText: "foo" });
-               equal(dlg().find('.ui-dialog-titlebar-close span').text(), 'foo',
+               equal(el.dialog('widget').find('.ui-dialog-titlebar-close span').text(), 'foo',
                        'closeText on init');
        el.remove();
 
        el = $('<div></div>').dialog().dialog('option', 'closeText', 'bar');
-               equal(dlg().find('.ui-dialog-titlebar-close span').text(), 'bar',
+               equal(el.dialog('widget').find('.ui-dialog-titlebar-close span').text(), 'bar',
                        'closeText via option method');
        el.remove();
 });
@@ -148,131 +150,132 @@ test("closeText", function() {
 test("dialogClass", function() {
        expect(4);
 
-       el = $('<div></div>').dialog();
-               equal(dlg().is(".foo"), false, 'dialogClass not specified. foo class added');
+       var el = $('<div></div>').dialog();
+               equal(el.dialog('widget').is(".foo"), false, 'dialogClass not specified. foo class added');
        el.remove();
 
        el = $('<div></div>').dialog({ dialogClass: "foo" });
-               equal(dlg().is(".foo"), true, 'dialogClass in init. foo class added');
+               equal(el.dialog('widget').is(".foo"), true, 'dialogClass in init. foo class added');
        el.remove();
 
        el = $('<div></div>').dialog({ dialogClass: "foo bar" });
-               equal(dlg().is(".foo"), true, 'dialogClass in init, two classes. foo class added');
-               equal(dlg().is(".bar"), true, 'dialogClass in init, two classes. bar class added');
+               equal(el.dialog('widget').is(".foo"), true, 'dialogClass in init, two classes. foo class added');
+               equal(el.dialog('widget').is(".bar"), true, 'dialogClass in init, two classes. bar class added');
        el.remove();
 });
 
 test("draggable", function() {
        expect(4);
 
-       el = $('<div></div>').dialog({ draggable: false });
-               TestHelpers.shouldnotmove();
+       var el = $('<div></div>').dialog({ draggable: false });
+
+               TestHelpers.dialog.testDrag(el, 50, -50, 0, 0);
                el.dialog('option', 'draggable', true);
-               TestHelpers.shouldmove();
+               TestHelpers.dialog.testDrag(el, 50, -50, 50, -50);
        el.remove();
 
        el = $('<div></div>').dialog({ draggable: true });
-               TestHelpers.shouldmove();
+               TestHelpers.dialog.testDrag(el, 50, -50, 50, -50);
                el.dialog('option', 'draggable', false);
-               TestHelpers.shouldnotmove();
+               TestHelpers.dialog.testDrag(el, 50, -50, 0, 0);
        el.remove();
 });
 
 test("height", function() {
        expect(4);
 
-       el = $('<div></div>').dialog();
-               equal(dlg().outerHeight(), 150, "default height");
+       var el = $('<div></div>').dialog();
+               equal(el.dialog('widget').outerHeight(), 150, "default height");
        el.remove();
 
        el = $('<div></div>').dialog({ height: 237 });
-               equal(dlg().outerHeight(), 237, "explicit height");
+               equal(el.dialog('widget').outerHeight(), 237, "explicit height");
        el.remove();
 
        el = $('<div></div>').dialog();
                el.dialog('option', 'height', 238);
-               equal(dlg().outerHeight(), 238, "explicit height set after init");
+               equal(el.dialog('widget').outerHeight(), 238, "explicit height set after init");
        el.remove();
 
        el = $('<div></div>').css("padding", "20px")
                .dialog({ height: 240 });
-               equal(dlg().outerHeight(), 240, "explicit height with padding");
+               equal(el.dialog('widget').outerHeight(), 240, "explicit height with padding");
        el.remove();
 });
 
 test("maxHeight", function() {
        expect(3);
 
-       el = $('<div></div>').dialog({ maxHeight: 200 });
-               drag('.ui-resizable-s', 1000, 1000);
-               equal(heightAfter, 200, "maxHeight");
+       var el = $('<div></div>').dialog({ maxHeight: 200 });
+               TestHelpers.dialog.drag(el, '.ui-resizable-s', 1000, 1000);
+               equal(el.dialog('widget').height(), 200, "maxHeight");
        el.remove();
 
        el = $('<div></div>').dialog({ maxHeight: 200 });
-               drag('.ui-resizable-n', -1000, -1000);
-               equal(heightAfter, 200, "maxHeight");
+               TestHelpers.dialog.drag(el, '.ui-resizable-n', -1000, -1000);
+               equal(el.dialog('widget').height(), 200, "maxHeight");
        el.remove();
 
        el = $('<div></div>').dialog({ maxHeight: 200 }).dialog('option', 'maxHeight', 300);
-               drag('.ui-resizable-s', 1000, 1000);
-               equal(heightAfter, 300, "maxHeight");
+               TestHelpers.dialog.drag(el, '.ui-resizable-s', 1000, 1000);
+               equal(el.dialog('widget').height(), 300, "maxHeight");
        el.remove();
 });
 
 test("maxWidth", function() {
        expect(3);
 
-       el = $('<div></div>').dialog({ maxWidth: 200 });
-               drag('.ui-resizable-e', 1000, 1000);
-               equal(widthAfter, 200, "maxWidth");
+       var el = $('<div></div>').dialog({ maxWidth: 200 });
+               TestHelpers.dialog.drag(el, '.ui-resizable-e', 1000, 1000);
+               equal(el.dialog('widget').width(), 200, "maxWidth");
        el.remove();
 
        el = $('<div></div>').dialog({ maxWidth: 200 });
-               drag('.ui-resizable-w', -1000, -1000);
-               equal(widthAfter, 200, "maxWidth");
+               TestHelpers.dialog.drag(el, '.ui-resizable-w', -1000, -1000);
+               equal(el.dialog('widget').width(), 200, "maxWidth");
        el.remove();
 
        el = $('<div></div>').dialog({ maxWidth: 200 }).dialog('option', 'maxWidth', 300);
-               drag('.ui-resizable-w', -1000, -1000);
-               equal(widthAfter, 300, "maxWidth");
+               TestHelpers.dialog.drag(el, '.ui-resizable-w', -1000, -1000);
+               equal(el.dialog('widget').width(), 300, "maxWidth");
        el.remove();
 });
 
 test("minHeight", function() {
        expect(3);
 
-       el = $('<div></div>').dialog({ minHeight: 10 });
-               drag('.ui-resizable-s', -1000, -1000);
-               equal(heightAfter, 10, "minHeight");
+       var el = $('<div></div>').dialog({ minHeight: 10 });
+               TestHelpers.dialog.drag(el, '.ui-resizable-s', -1000, -1000);
+               equal(el.dialog('widget').height(), 10, "minHeight");
        el.remove();
 
        el = $('<div></div>').dialog({ minHeight: 10 });
-               drag('.ui-resizable-n', 1000, 1000);
-               equal(heightAfter, 10, "minHeight");
+               TestHelpers.dialog.drag(el, '.ui-resizable-n', 1000, 1000);
+               equal(el.dialog('widget').height(), 10, "minHeight");
        el.remove();
 
        el = $('<div></div>').dialog({ minHeight: 10 }).dialog('option', 'minHeight', 30);
-               drag('.ui-resizable-n', 1000, 1000);
-               equal(heightAfter, 30, "minHeight");
+               TestHelpers.dialog.drag(el, '.ui-resizable-n', 1000, 1000);
+               equal(el.dialog('widget').height(), 30, "minHeight");
        el.remove();
 });
 
 test("minWidth", function() {
        expect(3);
 
-       el = $('<div></div>').dialog({ minWidth: 10 });
-               drag('.ui-resizable-e', -1000, -1000);
-               equal(widthAfter, 10, "minWidth");
+       var el = $('<div></div>').dialog({ minWidth: 10 });
+               TestHelpers.dialog.drag(el, '.ui-resizable-e', -1000, -1000);
+               equal(el.dialog('widget').width(), 10, "minWidth");
        el.remove();
 
        el = $('<div></div>').dialog({ minWidth: 10 });
-               drag('.ui-resizable-w', 1000, 1000);
-               equal(widthAfter, 10, "minWidth");
+               TestHelpers.dialog.drag(el, '.ui-resizable-w', 1000, 1000);
+               equal(el.dialog('widget').width(), 10, "minWidth");
        el.remove();
 
        el = $('<div></div>').dialog({ minWidth: 30 }).dialog('option', 'minWidth', 30);
-               drag('.ui-resizable-w', 1000, 1000);
-               equal(widthAfter, 30, "minWidth");
+               TestHelpers.dialog.drag(el, '.ui-resizable-w', 1000, 1000);
+               equal(el.dialog('widget').width(), 30, "minWidth");
        el.remove();
 });
 
@@ -394,16 +397,16 @@ test("position, at another element", function() {
 test("resizable", function() {
        expect(4);
 
-       el = $('<div></div>').dialog();
-               TestHelpers.shouldresize("[default]");
+       var el = $('<div></div>').dialog();
+               TestHelpers.dialog.shouldResize(el, 50, 50, "[default]");
                el.dialog('option', 'resizable', false);
-               TestHelpers.shouldnotresize('disabled after init');
+               TestHelpers.dialog.shouldResize(el, 0, 0, 'disabled after init');
        el.remove();
 
        el = $('<div></div>').dialog({ resizable: false });
-               TestHelpers.shouldnotresize("disabled in init options");
+               TestHelpers.dialog.shouldResize(el, 0, 0, "disabled in init options");
                el.dialog('option', 'resizable', true);
-               TestHelpers.shouldresize('enabled after init');
+               TestHelpers.dialog.shouldResize(el, 50, 50, 'enabled after init');
        el.remove();
 });
 
@@ -411,13 +414,13 @@ test("title", function() {
        expect(9);
 
        function titleText() {
-               return dlg().find(".ui-dialog-title").html();
+               return el.dialog('widget').find(".ui-dialog-title").html();
        }
 
-       el = $('<div></div>').dialog();
+       var el = $('<div></div>').dialog();
                // some browsers return a non-breaking space and some return "&nbsp;"
                // so we get the text to normalize to the actual non-breaking space
-               equal(dlg().find(".ui-dialog-title").text(), " ", "[default]");
+               equal(el.dialog('widget').find(".ui-dialog-title").text(), " ", "[default]");
                equal(el.dialog("option", "title"), "", "option not changed");
        el.remove();
 
@@ -444,14 +447,14 @@ test("title", function() {
 test("width", function() {
        expect(3);
 
-       el = $('<div></div>').dialog();
-               equal(dlg().width(), 300, "default width");
+       var el = $('<div></div>').dialog();
+               equal(el.dialog('widget').width(), 300, "default width");
        el.remove();
 
        el = $('<div></div>').dialog({width: 437 });
-               equal(dlg().width(), 437, "explicit width");
+               equal(el.dialog('widget').width(), 437, "explicit width");
                el.dialog('option', 'width', 438);
-               equal(dlg().width(), 438, 'explicit width after init');
+               equal(el.dialog('widget').width(), 438, 'explicit width after init');
        el.remove();
 });
 
diff --git a/tests/unit/dialog/dialog_test_helpers.js b/tests/unit/dialog/dialog_test_helpers.js
new file mode 100644 (file)
index 0000000..bbf43f4
--- /dev/null
@@ -0,0 +1,45 @@
+TestHelpers.dialog = {
+       drag: function(el, handle, dx, dy) {
+               var d = el.dialog('widget');
+               //this mouseover is to work around a limitation in resizable
+               //TODO: fix resizable so handle doesn't require mouseover in order to be used
+               $(handle, d).simulate("mouseover");
+               $(handle, d).simulate("drag", {
+                       dx: dx || 0,
+                       dy: dy || 0
+               });
+       },
+       testDrag: function(el, dx, dy, expectedDX, expectedDY, msg) {
+               var actual, expected, offsetAfter,
+                       d = el.dialog('widget'),
+                       handle = $(".ui-dialog-titlebar", d),
+                       offsetBefore = d.offset();
+
+               TestHelpers.dialog.drag(el, handle, dx, dy);
+
+               offsetAfter = d.offset();
+
+               msg = msg ? msg + "." : "";
+
+               actual = { left: Math.round(offsetAfter.left), top: Math.round(offsetAfter.top) },
+               expected = { left: Math.round(offsetBefore.left + expectedDX), top: Math.round(offsetBefore.top + expectedDY) };
+               deepEqual(actual, expected, 'dragged[' + expectedDX + ', ' + expectedDY + '] ' + msg);
+       },
+       shouldResize: function(el, dw, dh, msg) {
+               var heightAfter, widthAfter, actual, expected,
+                       d = el.dialog('widget'),
+                       handle = $(".ui-resizable-se", d),
+                       heightBefore = d.height(),
+                       widthBefore = d.width();
+
+               TestHelpers.dialog.drag(el, handle, 50, 50);
+
+               heightAfter = d.height();
+               widthAfter = d.width();
+
+               msg = msg ? msg + "." : "";
+               actual = { width: widthAfter, height: heightAfter },
+               expected = { width: widthBefore + dw, height: heightBefore + dh };
+               deepEqual(actual, expected, 'resized[' + 50 + ', ' + 50 + '] ' + msg);
+       }
+};
\ No newline at end of file
index 2b02147185e0f935af23d94bd9fea79f99fc8f08..3055c5fc1ae4a5f48be861c0b8abd118ef555784 100644 (file)
@@ -36,21 +36,21 @@ asyncTest( "#3123: Prevent tabbing out of modal dialogs", function() {
 
 test("#4826: setting resizable false toggles resizable on dialog", function() {
        expect(6);
-       var i;
+       var i,
+               el = $('<div></div>').dialog({ resizable: false });
 
-       el = $('<div></div>').dialog({ resizable: false });
-       TestHelpers.shouldnotresize("[default]");
+       TestHelpers.dialog.shouldResize(el, 0, 0, "[default]");
        for (i=0; i<2; i++) {
                el.dialog('close').dialog('open');
-               TestHelpers.shouldnotresize('initialized with resizable false toggle ('+ (i+1) +')');
+               TestHelpers.dialog.shouldResize(el, 0, 0, 'initialized with resizable false toggle ('+ (i+1) +')');
        }
        el.remove();
 
        el = $('<div></div>').dialog({ resizable: true });
-       TestHelpers.shouldresize("[default]");
+       TestHelpers.dialog.shouldResize(el, 50, 50, "[default]");
        for (i=0; i<2; i++) {
                el.dialog('close').dialog('option', 'resizable', false).dialog('open');
-               TestHelpers.shouldnotresize('set option resizable false toggle ('+ (i+1) +')');
+               TestHelpers.dialog.shouldResize(el, 0, 0, 'set option resizable false toggle ('+ (i+1) +')');
        }
        el.remove();
 
@@ -59,11 +59,11 @@ test("#4826: setting resizable false toggles resizable on dialog", function() {
 test("#5184: isOpen in dialogclose event is true", function() {
        expect( 3 );
 
-       el = $( "<div></div>" ).dialog({
-               close: function() {
-                       ok( !el.dialog("isOpen"), "dialog is not open during close" );
-               }
-       });
+       var el = $( "<div></div>" ).dialog({
+                       close: function() {
+                               ok( !el.dialog("isOpen"), "dialog is not open during close" );
+                       }
+               });
        ok( el.dialog("isOpen"), "dialog is open after init" );
        el.dialog( "close" );
        ok( !el.dialog("isOpen"), "dialog is not open after close" );
@@ -72,7 +72,7 @@ test("#5184: isOpen in dialogclose event is true", function() {
 
 test("#5531: dialog width should be at least minWidth on creation", function () {
     expect( 4 );
-    el = $('<div></div>').dialog({
+    var el = $('<div></div>').dialog({
             width: 200,
             minWidth: 300
         });
@@ -95,7 +95,7 @@ test("#5531: dialog width should be at least minWidth on creation", function ()
 test("#6137: dialog('open') causes form elements to reset on IE7", function() {
        expect(2);
 
-       d1 = $('<form><input type="radio" name="radio" id="a" value="a" checked="checked"></input>' +
+       var d1 = $('<form><input type="radio" name="radio" id="a" value="a" checked="checked"></input>' +
                                '<input type="radio" name="radio" id="b" value="b">b</input></form>').appendTo( "body" ).dialog({autoOpen: false});
 
        d1.find('#b').prop( "checked", true );
@@ -109,8 +109,9 @@ test("#6137: dialog('open') causes form elements to reset on IE7", function() {
 
 test("#6645: Missing element not found check in overlay", function(){
     expect(2);
-    d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true});
-    d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
+    var d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true}),
+        d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
+
     equal($.ui.dialog.overlay.instances.length, 2, 'two overlays created');
     d2.dialog('close');
     equal($.ui.dialog.overlay.instances.length, 1, 'one overlay remains after closing the 2nd overlay');
@@ -119,8 +120,8 @@ test("#6645: Missing element not found check in overlay", function(){
 
 test("#4980: Destroy should place element back in original DOM position", function(){
     expect( 2 );
-    container = $('<div id="container"><div id="modal">Content</div></div>');
-       modal = container.find('#modal');
+    var container = $('<div id="container"><div id="modal">Content</div></div>'),
+        modal = container.find('#modal');
        modal.dialog();
        ok(!$.contains(container[0], modal[0]), 'dialog should move modal element to outside container element');
        modal.dialog('destroy');
index 160467e897a68e4c4311613f4b6e667a1fe75ad1..dce226a9ae5717fbe3292b10fc0ea005cf82ef81 100644 (file)
@@ -26,6 +26,7 @@
        <script src="draggable_events.js"></script>
        <script src="draggable_methods.js"></script>
        <script src="draggable_options.js"></script>
+       <script src="draggable_test_helpers.js"></script>
 
        <script src="../swarminject.js"></script>
 </head>
index 3ec3fb8dd72df4fcdb14224b7a842f63b0e0c1f7..0e9d04be1ff97f400185c96de2881b0fc7c89df3 100644 (file)
@@ -2,70 +2,6 @@
  * draggable_core.js
  */
 
-TestHelpers.draggable = {};
-
-// todo: remove these hacks
-TestHelpers.draggable.unreliableOffset = $.ui.ie && ( !document.documentMode || document.documentMode < 8 ) ? 2 : 0;
-
-TestHelpers.draggable.drag = function(handle, dx, dy) {
-       $(handle).simulate("drag", {
-               dx: dx || 0,
-               dy: dy || 0
-       });
-       return el.offset();
-};
-
-TestHelpers.draggable.testDrag = function(el, handle, dx, dy, expectedDX, expectedDY, msg) {
-
-       var offsetBefore = el.offset(),
-               offsetAfter = TestHelpers.draggable.drag(handle, dx, dy),
-               actual = { left: offsetAfter.left, top: offsetAfter.top },
-               expected = { left: offsetBefore.left + expectedDX, top: offsetBefore.top + expectedDY };
-
-       msg = msg ? msg + "." : "";
-       deepEqual(actual, expected, 'dragged[' + dx + ', ' + dy + '] ' + msg);
-};
-
-TestHelpers.draggable.shouldMove = function(el, why) {
-       TestHelpers.draggable.testDrag(el, el, 50, 50, 50, 50, why);
-};
-
-TestHelpers.draggable.shouldNotMove = function(el, why) {
-       TestHelpers.draggable.testDrag(el, el, 50, 50, 0, 0, why);
-};
-
-TestHelpers.draggable.testScroll = function(el, position ) {
-       var oldPosition = $("#main").css('position');
-       $("#main").css('position', position);
-       TestHelpers.draggable.shouldMove(el, position+' parent');
-       $("#main").css('position', oldPosition);
-};
-
-TestHelpers.draggable.restoreScroll = function( what ) {
-       if( what ) {
-               $(document).scrollTop(0); $(document).scrollLeft(0);
-       } else {
-               $("#main").scrollTop(0); $("#main").scrollLeft(0);
-       }
-};
-
-TestHelpers.draggable.setScroll = function( what ) {
-       if(what) {
-               // todo: currently, the draggable interaction doesn't properly account for scrolled pages,
-               // uncomment the line below to make the tests fail that should when the page is scrolled
-               // $(document).scrollTop(100); $(document).scrollLeft(100);
-       } else {
-               $("#main").scrollTop(100); $("#main").scrollLeft(100);
-       }
-};
-
-TestHelpers.draggable.border = function(el, side) {
-       return parseInt(el.css('border-' + side + '-width'), 10) || 0;
-};
-TestHelpers.draggable.margin = function(el, side) {
-       return parseInt(el.css('margin-' + side), 10) || 0;
-};
-
 (function($) {
 
 module("draggable");
@@ -79,12 +15,15 @@ test("element types", function() {
        expect( typeNames.length );
 
        $.each(typeNames, function(i) {
-               var offsetBefore, offsetAfter, typeName = typeNames[i];
-               el = $(document.createElement(typeName)).appendTo('#main');
+               var offsetBefore, offsetAfter,
+                       typeName = typeNames[i],
+                       el = $(document.createElement(typeName)).appendTo('#main');
+
                (typeName === 'table' && el.append("<tr><td>content</td></tr>"));
                el.draggable({ cancel: '' });
                offsetBefore = el.offset();
-               offsetAfter =TestHelpers.draggable.drag(el, 50, 50);
+               TestHelpers.draggable.drag(el, 50, 50);
+               offsetAfter = el.offset();
                //there are some rounding errors in FF and Chrome, so we can't say equal, we have to settle for close enough
                ok(offsetAfter.left - offsetBefore.left - 50 < 1 && offsetAfter.top - offsetBefore.top - 50 < 1, 'dragged[50, 50] ' + "&lt;" + typeName + "&gt;");
                el.draggable("destroy");
@@ -94,13 +33,13 @@ test("element types", function() {
 
 test("No options, relative", function() {
        expect( 1 );
-       el = $("#draggable1").draggable();
+       var el = $("#draggable1").draggable();
        TestHelpers.draggable.shouldMove(el);
 });
 
 test("No options, absolute", function() {
        expect( 1 );
-       el = $("#draggable2").draggable();
+       var el = $("#draggable2").draggable();
        TestHelpers.draggable.shouldMove(el);
 });
 
index 65e8097a77fb715296fb69a66cd137bf19776ce4..6b1136cb044f2e20d81b9bdcba23a3185119a722 100644 (file)
@@ -9,12 +9,14 @@ test("callbacks occurrence count", function() {
 
        expect(3);
 
-       var start = 0, stop = 0, dragc = 0;
-       el = $("#draggable2").draggable({
-               start: function() { start++; },
-               drag: function() { dragc++; },
-               stop: function() { stop++; }
-       });
+       var start = 0,
+               stop = 0,
+               dragc = 0,
+               el = $("#draggable2").draggable({
+                       start: function() { start++; },
+                       drag: function() { dragc++; },
+                       stop: function() { stop++; }
+               });
 
        TestHelpers.draggable.drag(el, 10, 10);
 
@@ -28,12 +30,14 @@ test("stopping the start callback", function() {
 
        expect(3);
 
-       var start = 0, stop = 0, dragc = 0;
-       el = $("#draggable2").draggable({
-               start: function() { start++; return false; },
-               drag: function() { dragc++; },
-               stop: function() { stop++; }
-       });
+       var start = 0,
+               stop = 0,
+               dragc = 0,
+               el = $("#draggable2").draggable({
+                       start: function() { start++; return false; },
+                       drag: function() { dragc++; },
+                       stop: function() { stop++; }
+               });
 
        TestHelpers.draggable.drag(el, 10, 10);
 
@@ -47,12 +51,14 @@ test("stopping the drag callback", function() {
 
        expect(3);
 
-       var start = 0, stop = 0, dragc = 0;
-       el = $("#draggable2").draggable({
-               start: function() { start++;},
-               drag: function() { dragc++; return false;  },
-               stop: function() { stop++; }
-       });
+       var start = 0,
+               stop = 0,
+               dragc = 0,
+               el = $("#draggable2").draggable({
+                       start: function() { start++;},
+                       drag: function() { dragc++; return false;  },
+                       stop: function() { stop++; }
+               });
 
        TestHelpers.draggable.drag(el, 10, 10);
 
@@ -66,7 +72,7 @@ test("stopping the stop callback", function() {
 
        expect(1);
 
-       el = $("#draggable2").draggable({
+       var el = $("#draggable2").draggable({
                helper: 'clone',
                stop: function() { return false; }
        });
index b4b7888b6f1c971925a84c5d27cad28090e46e59..9ea353ca6f4eea5707cf47397ff587516a688336 100644 (file)
@@ -42,6 +42,9 @@ test("destroy", function() {
 
 test("enable", function() {
        expect(7);
+
+       var expected, actual, el;
+
        el = $("#draggable2").draggable({ disabled: true });
        TestHelpers.draggable.shouldNotMove(el, '.draggable({ disabled: true })');
 
@@ -57,13 +60,16 @@ test("enable", function() {
        equal(el.draggable("option", "disabled"), false, "disabled option setter");
        TestHelpers.draggable.shouldMove(el, '.draggable("option", "disabled", false)');
 
-       var expected = $('<div></div>').draggable(),
-               actual = expected.draggable('enable');
+       expected = $('<div></div>').draggable(),
+       actual = expected.draggable('enable');
        equal(actual, expected, 'enable is chainable');
 });
 
 test("disable", function() {
        expect(7);
+
+       var expected, actual, el;
+
        el = $("#draggable2").draggable({ disabled: false });
        TestHelpers.draggable.shouldMove(el, '.draggable({ disabled: false })');
 
@@ -80,8 +86,8 @@ test("disable", function() {
        equal(el.draggable("option", "disabled"), true, "disabled option setter");
        TestHelpers.draggable.shouldNotMove(el, '.draggable("option", "disabled", true)');
 
-       var expected = $('<div></div>').draggable(),
-               actual = expected.draggable('disable');
+       expected = $('<div></div>').draggable(),
+       actual = expected.draggable('disable');
        equal(actual, expected, 'disable is chainable');
 });
 
index 4834dd9c4f99e77eac951cc84cada72aacd1b303..3f4592d31fad548be4eb8a45823b6185e00517ea 100644 (file)
@@ -7,7 +7,7 @@ module("draggable: options");
 
 test("{ addClasses: true }, default", function() {
        expect( 1 );
-       el = $("<div></div>").draggable({ addClasses: true });
+       var el = $("<div></div>").draggable({ addClasses: true });
        ok(el.is(".ui-draggable"), "'ui-draggable' class added");
 
        el.draggable("destroy");
@@ -15,7 +15,7 @@ test("{ addClasses: true }, default", function() {
 
 test("{ addClasses: false }", function() {
        expect( 1 );
-       el = $("<div></div>").draggable({ addClasses: false });
+       var el = $("<div></div>").draggable({ addClasses: false });
        ok(!el.is(".ui-draggable"), "'ui-draggable' class not added");
 
        el.draggable("destroy");
@@ -23,7 +23,7 @@ test("{ addClasses: false }", function() {
 
 test("{ appendTo: 'parent' }, default", function() {
        expect( 2 );
-       el = $("#draggable2").draggable({ appendTo: 'parent' });
+       var el = $("#draggable2").draggable({ appendTo: 'parent' });
        TestHelpers.draggable.shouldMove(el);
 
        el = $("#draggable1").draggable({ appendTo: 'parent' });
@@ -33,7 +33,7 @@ test("{ appendTo: 'parent' }, default", function() {
 
 test("{ appendTo: Element }", function() {
        expect( 2 );
-       el = $("#draggable2").draggable({ appendTo: $("#draggable2").parent()[0] });
+       var el = $("#draggable2").draggable({ appendTo: $("#draggable2").parent()[0] });
        TestHelpers.draggable.shouldMove(el);
 
        el = $("#draggable1").draggable({ appendTo: $("#draggable2").parent()[0] });
@@ -42,7 +42,7 @@ test("{ appendTo: Element }", function() {
 
 test("{ appendTo: Selector }", function() {
        expect( 2 );
-       el = $("#draggable2").draggable({ appendTo: "#main" });
+       var el = $("#draggable2").draggable({ appendTo: "#main" });
        TestHelpers.draggable.shouldMove(el);
 
        el = $("#draggable1").draggable({ appendTo: "#main" });
@@ -51,31 +51,32 @@ test("{ appendTo: Selector }", function() {
 
 test("{ axis: false }, default", function() {
        expect( 1 );
-       el = $("#draggable2").draggable({ axis: false });
+       var el = $("#draggable2").draggable({ axis: false });
        TestHelpers.draggable.shouldMove(el);
 });
 
 test("{ axis: 'x' }", function() {
        expect( 1 );
-       el = $("#draggable2").draggable({ axis: "x" });
+       var el = $("#draggable2").draggable({ axis: "x" });
        TestHelpers.draggable.testDrag(el, el, 50, 50, 50, 0);
 });
 
 test("{ axis: 'y' }", function() {
        expect( 1 );
-       el = $("#draggable2").draggable({ axis: "y" });
+       var el = $("#draggable2").draggable({ axis: "y" });
        TestHelpers.draggable.testDrag(el, el, 50, 50, 0, 50);
 });
 
 test("{ axis: ? }, unexpected", function() {
-       var unexpected = {
-               "true": true,
-               "{}": {},
-               "[]": [],
-               "null": null,
-               "undefined": undefined,
-               "function() {}": function() {}
-       };
+       var el,
+               unexpected = {
+                       "true": true,
+                       "{}": {},
+                       "[]": [],
+                       "null": null,
+                       "undefined": undefined,
+                       "function() {}": function() {}
+               };
 
        expect( 6 );
 
@@ -91,7 +92,7 @@ test("{ cancel: 'input,textarea,button,select,option' }, default", function() {
 
        $('<div id="draggable-option-cancel-default"><input type="text"></div>').appendTo('#main');
 
-       el = $("#draggable-option-cancel-default").draggable({ cancel: "input,textarea,button,select,option" });
+       var el = $("#draggable-option-cancel-default").draggable({ cancel: "input,textarea,button,select,option" });
        TestHelpers.draggable.shouldMove(el);
 
        el.draggable("destroy");
@@ -104,7 +105,7 @@ test("{ cancel: 'input,textarea,button,select,option' }, default", function() {
 test("{ cancel: 'span' }", function() {
        expect( 2 );
 
-       el = $("#draggable2").draggable();
+       var el = $("#draggable2").draggable();
        TestHelpers.draggable.testDrag(el, "#draggable2 span", 50, 50, 50, 50);
 
        el.draggable("destroy");
@@ -114,17 +115,18 @@ test("{ cancel: 'span' }", function() {
 });
 
 test("{ cancel: ? }, unexpected", function() {
-       var unexpected = {
-               "true": true,
-               "false": false,
-               "{}": {},
-               "[]": [],
-               "null": null,
-               "undefined": undefined,
-               "function() {return '';}": function() {return '';},
-               "function() {return true;}": function() {return true;},
-               "function() {return false;}": function() {return false;}
-       };
+       var el,
+               unexpected = {
+                       "true": true,
+                       "false": false,
+                       "{}": {},
+                       "[]": [],
+                       "null": null,
+                       "undefined": undefined,
+                       "function() {return '';}": function() {return '';},
+                       "function() {return true;}": function() {return true;},
+                       "function() {return false;}": function() {return false;}
+               };
 
        expect( 9 );
 
@@ -152,28 +154,32 @@ test("{ containment: Element }", function() {
 test("{ containment: 'parent' }, relative", function() {
        expect( 1 );
 
-       el = $("#draggable1").draggable({ containment: 'parent' });
-       var p = el.parent(),
+       var offsetAfter,
+               el = $("#draggable1").draggable({ containment: 'parent' }),
+               p = el.parent(),
                po = p.offset(),
                expected = {
                        left: po.left + TestHelpers.draggable.border(p, 'left') + TestHelpers.draggable.margin(el, 'left'),
                        top: po.top + TestHelpers.draggable.border(p, 'top') + TestHelpers.draggable.margin(el, 'top')
-               },
-               offsetAfter = TestHelpers.draggable.drag(el, -100, -100);
+               };
+       TestHelpers.draggable.drag(el, -100, -100);
+       offsetAfter = el.offset();
        deepEqual(offsetAfter, expected, 'compare offset to parent');
 });
 
 test("{ containment: 'parent' }, absolute", function() {
        expect( 1 );
 
-       el = $("#draggable2").draggable({ containment: 'parent' });
-       var p = el.parent(),
+       var offsetAfter,
+               el = $("#draggable2").draggable({ containment: 'parent' }),
+               p = el.parent(),
                po = p.offset(),
                expected = {
                        left: po.left + TestHelpers.draggable.border(p, 'left') + TestHelpers.draggable.margin(el, 'left'),
                        top: po.top + TestHelpers.draggable.border(p, 'top') + TestHelpers.draggable.margin(el, 'top')
-               },
-               offsetAfter = TestHelpers.draggable.drag(el, -100, -100);
+               };
+       TestHelpers.draggable.drag(el, -100, -100);
+       offsetAfter = el.offset();
        deepEqual(offsetAfter, expected, 'compare offset to parent');
 });
 
@@ -210,7 +216,7 @@ test("{ cursor: 'auto' }, default", function() {
 
        var expected = "auto", actual, before, after;
 
-       el = $("#draggable2").draggable({
+       $("#draggable2").draggable({
                cursor: expected,
                start: function() {
                        actual = getCursor();
@@ -234,7 +240,7 @@ test("{ cursor: 'move' }", function() {
 
        var expected = "move", actual, before, after;
 
-       el = $("#draggable2").draggable({
+       $("#draggable2").draggable({
                cursor: expected,
                start: function() {
                        actual = getCursor();
@@ -266,14 +272,14 @@ test("{ cursorAt: { left: -5, top: -5 } }", function() {
                cursorAtX = -5, cursorAtY = -5;
 
        $.each(['relative', 'absolute'], function(i, position) {
-               var before, pos, expected;
-               el = $('#draggable' + (i + 1)).draggable({
-                               cursorAt: { left: cursorAtX, top: cursorAtY },
-                               drag: function(event, ui) {
-                                       equal(ui.offset.left, expected.left, position + ' left');
-                                       equal(ui.offset.top, expected.top, position + ' top');
-                               }
-               });
+               var before, pos, expected,
+                       el = $('#draggable' + (i + 1)).draggable({
+                                       cursorAt: { left: cursorAtX, top: cursorAtY },
+                                       drag: function(event, ui) {
+                                               equal(ui.offset.left, expected.left, position + ' left');
+                                               equal(ui.offset.top, expected.top, position + ' top');
+                                       }
+                       });
 
                before = el.offset();
                pos = {
@@ -285,6 +291,7 @@ test("{ cursorAt: { left: -5, top: -5 } }", function() {
                        top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
                };
 
+               // todo: replace this with simulated drag event
                el.simulate("mousedown", pos);
                pos.clientX += deltaX;
                pos.clientY += deltaY;
@@ -301,14 +308,14 @@ test("{ cursorAt: { right: 10, bottom: 20 } }", function() {
                cursorAtX = 10, cursorAtY = 20;
 
        $.each(['relative', 'absolute'], function(i, position) {
-               var before, pos, expected;
-               el = $('#draggable' + (i + 1)).draggable({
-                       cursorAt: { right: cursorAtX, bottom: cursorAtY },
-                       drag: function(event, ui) {
-                               equal(ui.offset.left, expected.left, position + ' left');
-                               equal(ui.offset.top, expected.top, position + ' top');
-                       }
-               });
+               var before, pos, expected,
+                       el = $('#draggable' + (i + 1)).draggable({
+                               cursorAt: { right: cursorAtX, bottom: cursorAtY },
+                               drag: function(event, ui) {
+                                       equal(ui.offset.left, expected.left, position + ' left');
+                                       equal(ui.offset.top, expected.top, position + ' top');
+                               }
+                       });
                before = el.offset();
                pos = {
                        clientX: before.left + offsetX,
@@ -319,6 +326,7 @@ test("{ cursorAt: { right: 10, bottom: 20 } }", function() {
                        top: before.top + offsetY - el.height() + cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
                };
 
+               // todo: replace this with simulated drag event
                el.simulate("mousedown", pos);
                pos.clientX += deltaX;
                pos.clientY += deltaY;
@@ -335,14 +343,15 @@ test("{ cursorAt: [10, 20] }", function() {
                cursorAtX = 10, cursorAtY = 20;
 
        $.each(['relative', 'absolute'], function(i, position) {
-               var before, pos, expected;
-               el = $('#draggable' + (i + 1)).draggable({
-                       cursorAt: { left: cursorAtX, top: cursorAtY },
-                       drag: function(event, ui) {
-                               equal(ui.offset.left, expected.left, position + ' left');
-                               equal(ui.offset.top, expected.top, position + ' top');
-                       }
-               });
+               var before, pos, expected,
+                       el = $('#draggable' + (i + 1)).draggable({
+                               cursorAt: { left: cursorAtX, top: cursorAtY },
+                               drag: function(event, ui) {
+                                       equal(ui.offset.left, expected.left, position + ' left');
+                                       equal(ui.offset.top, expected.top, position + ' top');
+                               }
+                       });
+
                before = el.offset();
                pos = {
                        clientX: before.left + offsetX,
@@ -353,6 +362,7 @@ test("{ cursorAt: [10, 20] }", function() {
                        top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
                };
 
+               // todo: replace this with simulated drag event
                el.simulate("mousedown", pos);
                pos.clientX += deltaX;
                pos.clientY += deltaY;
@@ -369,14 +379,15 @@ test("{ cursorAt: '20, 40' }", function() {
                cursorAtX = 20, cursorAtY = 40;
 
        $.each(['relative', 'absolute'], function(i, position) {
-               var before, pos, expected;
-               el = $('#draggable' + (i + 1)).draggable({
-                       cursorAt: { left: cursorAtX, top: cursorAtY },
-                       drag: function(event, ui) {
-                               equal(ui.offset.left, expected.left, position + ' left');
-                               equal(ui.offset.top, expected.top, position + ' top');
-                       }
-               });
+               var before, pos, expected,
+                       el = $('#draggable' + (i + 1)).draggable({
+                               cursorAt: { left: cursorAtX, top: cursorAtY },
+                               drag: function(event, ui) {
+                                       equal(ui.offset.left, expected.left, position + ' left');
+                                       equal(ui.offset.top, expected.top, position + ' top');
+                               }
+                       });
+
                before = el.offset();
                pos = {
                        clientX: before.left + offsetX,
@@ -387,6 +398,7 @@ test("{ cursorAt: '20, 40' }", function() {
                        top: before.top + offsetY - cursorAtY + deltaY - TestHelpers.draggable.unreliableOffset
                };
 
+               // todo: replace this with simulated drag event
                el.simulate("mousedown", pos);
                pos.clientX += deltaX;
                pos.clientY += deltaY;
@@ -398,7 +410,7 @@ test("{ cursorAt: '20, 40' }", function() {
 test("{ distance: 10 }", function() {
        expect( 3 );
 
-       el = $("#draggable2").draggable({ distance: 10 });
+       var el = $("#draggable2").draggable({ distance: 10 });
        TestHelpers.draggable.testDrag(el, el, -9, -9, 0, 0, 'distance not met');
 
        TestHelpers.draggable.testDrag(el, el, -10, -10, -10, -10, 'distance met');
@@ -410,7 +422,7 @@ test("{ distance: 10 }", function() {
 test("{ grid: [50, 50] }, relative", function() {
        expect( 2 );
 
-       el = $("#draggable1").draggable({ grid: [50, 50] });
+       var el = $("#draggable1").draggable({ grid: [50, 50] });
        TestHelpers.draggable.testDrag(el, el, 24, 24, 0, 0);
        TestHelpers.draggable.testDrag(el, el, 26, 25, 50, 50);
 });
@@ -418,7 +430,7 @@ test("{ grid: [50, 50] }, relative", function() {
 test("{ grid: [50, 50] }, absolute", function() {
        expect( 2 );
 
-       el = $("#draggable2").draggable({ grid: [50, 50] });
+       var el = $("#draggable2").draggable({ grid: [50, 50] });
        TestHelpers.draggable.testDrag(el, el, 24, 24, 0, 0);
        TestHelpers.draggable.testDrag(el, el, 26, 25, 50, 50);
 });
@@ -426,7 +438,7 @@ test("{ grid: [50, 50] }, absolute", function() {
 test("{ handle: 'span' }", function() {
        expect( 2 );
 
-       el = $("#draggable2").draggable({ handle: 'span' });
+       var el = $("#draggable2").draggable({ handle: 'span' });
 
        TestHelpers.draggable.testDrag(el, "#draggable2 span", 50, 50, 50, 50, "drag span");
        TestHelpers.draggable.shouldNotMove(el, "drag element");
@@ -435,21 +447,21 @@ test("{ handle: 'span' }", function() {
 test("{ helper: 'clone' }, relative", function() {
        expect( 1 );
 
-       el = $("#draggable1").draggable({ helper: "clone" });
+       var el = $("#draggable1").draggable({ helper: "clone" });
        TestHelpers.draggable.shouldNotMove(el);
 });
 
 test("{ helper: 'clone' }, absolute", function() {
        expect( 1 );
 
-       el = $("#draggable2").draggable({ helper: "clone" });
+       var el = $("#draggable2").draggable({ helper: "clone" });
        TestHelpers.draggable.shouldNotMove(el);
 });
 
 test("{ helper: 'original' }, relative, with scroll offset on parent", function() {
        expect( 3 );
 
-       el = $("#draggable1").draggable({ helper: "original" });
+       var el = $("#draggable1").draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -467,7 +479,7 @@ test("{ helper: 'original' }, relative, with scroll offset on parent", function(
 test("{ helper: 'original' }, relative, with scroll offset on root", function() {
        expect( 3 );
 
-       el = $("#draggable1").draggable({ helper: "original" });
+       var el = $("#draggable1").draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll('root');
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -486,7 +498,7 @@ test("{ helper: 'original' }, relative, with scroll offset on root and parent",
 
        expect(3);
 
-       el = $("#draggable1").draggable({ helper: "original" });
+       var el = $("#draggable1").draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.setScroll('root');
@@ -509,7 +521,7 @@ test("{ helper: 'original' }, absolute, with scroll offset on parent", function(
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -528,7 +540,7 @@ test("{ helper: 'original' }, absolute, with scroll offset on root", function()
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll('root');
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -547,7 +559,7 @@ test("{ helper: 'original' }, absolute, with scroll offset on root and parent",
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'absolute', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.setScroll('root');
@@ -570,7 +582,7 @@ test("{ helper: 'original' }, fixed, with scroll offset on parent", function() {
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -589,7 +601,7 @@ test("{ helper: 'original' }, fixed, with scroll offset on root", function() {
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll('root');
        TestHelpers.draggable.testScroll(el, 'relative');
@@ -607,7 +619,7 @@ test("{ helper: 'original' }, fixed, with scroll offset on root and parent", fun
 
        expect(3);
 
-       el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
+       var el = $("#draggable1").css({ position: 'fixed', top: 0, left: 0 }).draggable({ helper: "original" });
 
        TestHelpers.draggable.setScroll();
        TestHelpers.draggable.setScroll('root');
@@ -631,11 +643,10 @@ test("{ helper: 'clone' }, absolute", function() {
        expect(1);
 
        var helperOffset = null,
-               origOffset = $("#draggable1").offset();
-
-       el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
-               helperOffset = ui.helper.offset();
-       } });
+               origOffset = $("#draggable1").offset(),
+               el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
+                       helperOffset = ui.helper.offset();
+               } });
 
        TestHelpers.draggable.drag(el, 1, 1);
        deepEqual({ top: helperOffset.top-1, left: helperOffset.left-1 }, origOffset, 'dragged[1, 1] ');
@@ -648,11 +659,10 @@ test("{ helper: 'clone' }, absolute with scroll offset on parent", function() {
 
        TestHelpers.draggable.setScroll();
        var helperOffset = null,
-       origOffset = null;
-
-       el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
-               helperOffset = ui.helper.offset();
-       } });
+               origOffset = null,
+               el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
+                       helperOffset = ui.helper.offset();
+               } });
 
        $("#main").css('position', 'relative');
        origOffset = $("#draggable1").offset();
@@ -679,11 +689,10 @@ test("{ helper: 'clone' }, absolute with scroll offset on root", function() {
 
        TestHelpers.draggable.setScroll('root');
        var helperOffset = null,
-               origOffset = null;
-
-       el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
-               helperOffset = ui.helper.offset();
-       } });
+               origOffset = null,
+               el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
+                       helperOffset = ui.helper.offset();
+               } });
 
        $("#main").css('position', 'relative');
        origOffset = $("#draggable1").offset();
@@ -710,12 +719,12 @@ test("{ helper: 'clone' }, absolute with scroll offset on root and parent", func
 
        TestHelpers.draggable.setScroll('root');
        TestHelpers.draggable.setScroll();
-       var helperOffset = null,
-               origOffset = null;
 
-       el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
-               helperOffset = ui.helper.offset();
-       } });
+       var helperOffset = null,
+               origOffset = null,
+               el = $("#draggable1").draggable({ helper: "clone", drag: function(event, ui) {
+                       helperOffset = ui.helper.offset();
+               } });
 
        $("#main").css('position', 'relative');
        origOffset = $("#draggable1").offset();
@@ -742,7 +751,8 @@ test("{ opacity: 0.5 }", function() {
        expect(1);
 
        var opacity = null;
-       el = $("#draggable2").draggable({
+
+       $("#draggable2").draggable({
                opacity: 0.5,
                start: function() {
                        opacity = $(this).css("opacity");
@@ -762,7 +772,7 @@ test("{ zIndex: 10 }", function() {
        var actual,
                expected = 10;
 
-       el = $("#draggable2").draggable({
+       $("#draggable2").draggable({
                zIndex: expected,
                start: function() {
                        actual = $(this).css("zIndex");
diff --git a/tests/unit/draggable/draggable_test_helpers.js b/tests/unit/draggable/draggable_test_helpers.js
new file mode 100644 (file)
index 0000000..7057df1
--- /dev/null
@@ -0,0 +1,57 @@
+TestHelpers.draggable = {
+       // todo: remove the unreliable offset hacks
+       unreliableOffset: $.ui.ie && ( !document.documentMode || document.documentMode < 8 ) ? 2 : 0,
+       drag: function(handle, dx, dy) {
+               $(handle).simulate("drag", {
+                       dx: dx || 0,
+                       dy: dy || 0
+               });
+       },
+       testDrag: function(el, handle, dx, dy, expectedDX, expectedDY, msg) {
+               var offsetAfter, actual, expected,
+                       offsetBefore = el.offset();
+
+               TestHelpers.draggable.drag(handle, dx, dy);
+               offsetAfter = el.offset();
+
+               actual = { left: offsetAfter.left, top: offsetAfter.top },
+               expected = { left: offsetBefore.left + expectedDX, top: offsetBefore.top + expectedDY };
+
+               msg = msg ? msg + "." : "";
+               deepEqual(actual, expected, 'dragged[' + dx + ', ' + dy + '] ' + msg);
+       },
+       shouldMove: function(el, why) {
+               TestHelpers.draggable.testDrag(el, el, 50, 50, 50, 50, why);
+       },
+       shouldNotMove: function(el, why) {
+               TestHelpers.draggable.testDrag(el, el, 50, 50, 0, 0, why);
+       },
+       testScroll: function(el, position ) {
+               var oldPosition = $("#main").css('position');
+               $("#main").css('position', position);
+               TestHelpers.draggable.shouldMove(el, position+' parent');
+               $("#main").css('position', oldPosition);
+       },
+       restoreScroll: function( what ) {
+               if( what ) {
+                       $(document).scrollTop(0); $(document).scrollLeft(0);
+               } else {
+                       $("#main").scrollTop(0); $("#main").scrollLeft(0);
+               }
+       },
+       setScroll: function( what ) {
+               if(what) {
+                       // todo: currently, the draggable interaction doesn't properly account for scrolled pages,
+                       // uncomment the line below to make the tests fail that should when the page is scrolled
+                       // $(document).scrollTop(100); $(document).scrollLeft(100);
+               } else {
+                       $("#main").scrollTop(100); $("#main").scrollLeft(100);
+               }
+       },
+       border: function(el, side) {
+               return parseInt(el.css('border-' + side + '-width'), 10) || 0;
+       },
+       margin: function(el, side) {
+               return parseInt(el.css('margin-' + side), 10) || 0;
+       }
+};
\ No newline at end of file
index cd29b1cdf36170dcd114069a0c193848c6f17604..7cd5eb0f5405f84c800435c9cee2574bb9848cd4 100644 (file)
@@ -27,6 +27,7 @@
        <script src="droppable_events.js"></script>
        <script src="droppable_methods.js"></script>
        <script src="droppable_options.js"></script>
+       <script src="droppable_test_helpers.js"></script>
 
        <script src="../swarminject.js"></script>
 </head>
index 21763bc63dfdf983888e120d35f9faa2f12ecf51..c98850a03ea6b06b901d7032cf0e2c4333f80864 100644 (file)
@@ -2,17 +2,6 @@
  * droppable_core.js
  */
 
-TestHelpers.droppable = {
-       shouldDrop: function() {
-               // todo: actually implement this
-               ok(true, 'missing test - untested code is broken code');
-       },
-       shouldNotDrop: function() {
-               // todo: actually implement this
-               ok(true, 'missing test - untested code is broken code');
-       }
-};
-
 (function($) {
 
 module("droppable: core");
index 3f1293ae45ca5705c04b50b8bd665b2c1d3c9b7f..76501c5b1bb28c38eba3f57a1b4c939f386f87bc 100644 (file)
@@ -43,6 +43,9 @@ test("destroy", function() {
 
 test("enable", function() {
        expect(7);
+
+       var el, expected, actual;
+
        el = $("#droppable1").droppable({ disabled: true });
        TestHelpers.droppable.shouldNotDrop();
        el.droppable("enable");
@@ -55,13 +58,16 @@ test("enable", function() {
        equal(el.droppable("option", "disabled"), false, "disabled option setter");
        TestHelpers.droppable.shouldDrop();
 
-       var expected = $('<div></div>').droppable(),
-               actual = expected.droppable('enable');
+       expected = $('<div></div>').droppable(),
+       actual = expected.droppable('enable');
        equal(actual, expected, 'enable is chainable');
 });
 
 test("disable", function() {
        expect(7);
+
+       var el, actual, expected;
+
        el = $("#droppable1").droppable({ disabled: false });
        TestHelpers.droppable.shouldDrop();
        el.droppable("disable");
@@ -74,8 +80,8 @@ test("disable", function() {
        equal(el.droppable("option", "disabled"), true, "disabled option setter");
        TestHelpers.droppable.shouldNotDrop();
 
-       var expected = $('<div></div>').droppable(),
-               actual = expected.droppable('disable');
+       expected = $('<div></div>').droppable(),
+       actual = expected.droppable('disable');
        equal(actual, expected, 'disable is chainable');
 });
 
index db3201e88998cb9133837888257b1bef408cfaf7..c2ecdcfda959d1a62eebfebc9925b0cea778e011 100644 (file)
@@ -24,14 +24,14 @@ test("activeClass", function() {
 */
 test("{ addClasses: true }, default", function() {
        expect( 1 );
-       el = $("<div></div>").droppable({ addClasses: true });
+       var el = $("<div></div>").droppable({ addClasses: true });
        ok(el.is(".ui-droppable"), "'ui-droppable' class added");
        el.droppable("destroy");
 });
 
 test("{ addClasses: false }", function() {
        expect( 1 );
-       el = $("<div></div>").droppable({ addClasses: false });
+       var el = $("<div></div>").droppable({ addClasses: false });
        ok(!el.is(".ui-droppable"), "'ui-droppable' class not added");
        el.droppable("destroy");
 });
diff --git a/tests/unit/droppable/droppable_test_helpers.js b/tests/unit/droppable/droppable_test_helpers.js
new file mode 100644 (file)
index 0000000..7931178
--- /dev/null
@@ -0,0 +1,10 @@
+TestHelpers.droppable = {
+       shouldDrop: function() {
+               // todo: actually implement this
+               ok(true, 'missing test - untested code is broken code');
+       },
+       shouldNotDrop: function() {
+               // todo: actually implement this
+               ok(true, 'missing test - untested code is broken code');
+       }
+};
\ No newline at end of file
index 50099efeeab312432dc6dc1a7bd0f0be85a57e12..eca465ae9062a27ca0b18acc9d2c27254643976c 100644 (file)
@@ -26,6 +26,7 @@
        <script src="resizable_events.js"></script>
        <script src="resizable_methods.js"></script>
        <script src="resizable_options.js"></script>
+       <script src="resizable_test_helpers.js"></script>
 
        <script src="../swarminject.js"></script>
 </head>
index f4e6cdedd818ab5b5e018f0d98494f264dd0fbaf..01f15bd4be4cbb7602aff4b4d6cef74ee2250eb8 100644 (file)
@@ -2,22 +2,6 @@
  * resizable_core.js
  */
 
-TestHelpers.resizable = {
-       drag: function(el, dx, dy, complete) {
-
-               // speed = sync -> Drag syncrhonously.
-               // speed = fast|slow -> Drag asyncrhonously - animated.
-
-               //this mouseover is to work around a limitation in resizable
-               //TODO: fix resizable so handle doesn't require mouseover in order to be used
-               $(el).simulate("mouseover");
-
-               return $(el).simulate("drag", {
-                       dx: dx||0, dy: dy||0, speed: 'sync', complete: complete
-               });
-       }
-};
-
 (function($) {
 
 module("resizable: core");
diff --git a/tests/unit/resizable/resizable_test_helpers.js b/tests/unit/resizable/resizable_test_helpers.js
new file mode 100644 (file)
index 0000000..fe6c849
--- /dev/null
@@ -0,0 +1,15 @@
+TestHelpers.resizable = {
+       drag: function(el, dx, dy, complete) {
+
+               // speed = sync -> Drag syncrhonously.
+               // speed = fast|slow -> Drag asyncrhonously - animated.
+
+               //this mouseover is to work around a limitation in resizable
+               //TODO: fix resizable so handle doesn't require mouseover in order to be used
+               $(el).simulate("mouseover");
+
+               return $(el).simulate("drag", {
+                       dx: dx||0, dy: dy||0, speed: 'sync', complete: complete
+               });
+       }
+};
\ No newline at end of file
index 18ffc6ef7788656a72a7df7e151a1197081ec95d..13718e1f3a1b39d8b713f60c6b8f1eb46587abb1 100644 (file)
@@ -26,6 +26,7 @@
        <script src="selectable_events.js"></script>
        <script src="selectable_methods.js"></script>
        <script src="selectable_options.js"></script>
+       <script src="selectable_test_helpers.js"></script>
 
        <script src="../swarminject.js"></script>
 </head>
index de89e66a73b1fb564aacf01b6afda4879c79349a..9953b6c074661a597eb29ce352d75c84cfbb7839 100644 (file)
@@ -1,16 +1,3 @@
 /*
  * selectable_core.js
- */
-
-TestHelpers.selectable = {
-       drag: function drag(el, dx, dy) {
-               var off = el.offset(),
-                       pos = { clientX: off.left, clientY: off.top };
-               el.simulate("mousedown", pos);
-               $(document).simulate("mousemove", pos);
-               pos.clientX += dx;
-               pos.clientY += dy;
-               $(document).simulate("mousemove", pos);
-               $(document).simulate("mouseup", pos);
-       }
-};
\ No newline at end of file
+ */
\ No newline at end of file
diff --git a/tests/unit/selectable/selectable_test_helpers.js b/tests/unit/selectable/selectable_test_helpers.js
new file mode 100644 (file)
index 0000000..c707ab6
--- /dev/null
@@ -0,0 +1,12 @@
+TestHelpers.selectable = {
+       drag: function(el, dx, dy) {
+               var off = el.offset(),
+                       pos = { clientX: off.left, clientY: off.top };
+               el.simulate("mousedown", pos);
+               $(document).simulate("mousemove", pos);
+               pos.clientX += dx;
+               pos.clientY += dy;
+               $(document).simulate("mousemove", pos);
+               $(document).simulate("mouseup", pos);
+       }
+};
\ No newline at end of file
index 644b931ee9c68f8b4f48af8bd3039157b410049e..b7b7b000764cb6c9fca01907618ade381639dd12 100644 (file)
@@ -26,6 +26,7 @@
        <script src="sortable_events.js"></script>
        <script src="sortable_methods.js"></script>
        <script src="sortable_options.js"></script>
+       <script src="sortable_test_helpers.js"></script>
        <script src="sortable_tickets.js"></script>
 
        <script src="../swarminject.js"></script>
index f036121b8e576a40492491c0dc035a432ce15496..211f8ac954f1da6f1ed520a603dea79dcd4727ba 100644 (file)
@@ -1,19 +1,3 @@
 /*
  * sortable_core.js
- */
-
-(function($) {
-
-TestHelpers.sortable = {
-       sort: function(handle, dx, dy, index, msg) {
-               $(handle).simulate("drag", {
-                       dx: dx || 0,
-                       dy: dy || 0
-               });
-               equal($(handle).parent().children().index(handle), index, msg);
-       }
-};
-
-module("sortable: core");
-
-})(jQuery);
+ */
\ No newline at end of file
index 85b418ac8343a92b39e45fc25a042008fff19710..de32e2f5ddde8af7fc6e3f1c04ffecc39468b5ce 100644 (file)
@@ -42,6 +42,9 @@ test("destroy", function() {
 
 test("enable", function() {
        expect(5);
+
+       var el, actual, expected;
+
        el = $("#sortable").sortable({ disabled: true });
 
        TestHelpers.sortable.sort($("li", el)[0], 0, 44, 0, '.sortable({ disabled: true })');
@@ -56,13 +59,16 @@ test("enable", function() {
 
        TestHelpers.sortable.sort($("li", el)[0], 0, 44, 2, '.sortable("option", "disabled", false)');
 
-       var expected = $('<div></div>').sortable(),
-               actual = expected.sortable('enable');
+       expected = $('<div></div>').sortable(),
+       actual = expected.sortable('enable');
        equal(actual, expected, 'enable is chainable');
 });
 
 test("disable", function() {
        expect(7);
+
+       var el, actual, expected;
+
        el = $("#sortable").sortable({ disabled: false });
        TestHelpers.sortable.sort($("li", el)[0], 0, 44, 2, '.sortable({ disabled: false })');
 
@@ -78,8 +84,8 @@ test("disable", function() {
        ok(el.sortable("widget").is(":not(.ui-state-disabled)"), "sortable element does not get ui-state-disabled since it's an interaction");
        TestHelpers.sortable.sort($("li", el)[0], 0, 44, 0, '.sortable("option", "disabled", true)');
 
-       var expected = $('<div></div>').sortable(),
-               actual = expected.sortable('disable');
+       expected = $('<div></div>').sortable(),
+       actual = expected.sortable('disable');
        equal(actual, expected, 'disable is chainable');
 });
 
diff --git a/tests/unit/sortable/sortable_test_helpers.js b/tests/unit/sortable/sortable_test_helpers.js
new file mode 100644 (file)
index 0000000..7569b57
--- /dev/null
@@ -0,0 +1,9 @@
+TestHelpers.sortable = {
+       sort: function(handle, dx, dy, index, msg) {
+               $(handle).simulate("drag", {
+                       dx: dx || 0,
+                       dy: dy || 0
+               });
+               equal($(handle).parent().children().index(handle), index, msg);
+       }
+};
\ No newline at end of file
index c8ec08502c7b13344eeefde56f2077eb4fd234e8..eebd8dc2115e1a8f45a425c5f1fedb93a70e93dc 100644 (file)
@@ -8,12 +8,12 @@ module("sortable: tickets");
 test("#3019: Stop fires too early", function() {
     expect(2);
 
-       var helper = null;
-       el = $("#sortable").sortable({
-               stop: function(event, ui) {
-                       helper = ui.helper;
-               }
-       });
+       var helper = null,
+        el = $("#sortable").sortable({
+            stop: function(event, ui) {
+                helper = ui.helper;
+            }
+        });
 
        TestHelpers.sortable.sort($("li", el)[0], 0, 44, 2, 'Dragging the sortable');
        equal(helper, null, "helper should be false");