From 53f57ffdb52474db9a011a0bc38ee7943a02d177 Mon Sep 17 00:00:00 2001 From: Richard Worth Date: Wed, 4 Feb 2009 04:53:09 +0000 Subject: [PATCH] selectable unit tests: split tests into individual files --- tests/unit/selectable/selectable.html | 7 +- tests/unit/selectable/selectable.js | 196 ------------------- tests/unit/selectable/selectable_core.js | 17 ++ tests/unit/selectable/selectable_defaults.js | 9 +- tests/unit/selectable/selectable_events.js | 24 ++- tests/unit/selectable/selectable_methods.js | 83 +++++++- tests/unit/selectable/selectable_options.js | 38 +++- tests/unit/selectable/selectable_tickets.js | 4 - 8 files changed, 170 insertions(+), 208 deletions(-) delete mode 100644 tests/unit/selectable/selectable.js diff --git a/tests/unit/selectable/selectable.html b/tests/unit/selectable/selectable.html index 81b7ed18f..34ce4d735 100644 --- a/tests/unit/selectable/selectable.html +++ b/tests/unit/selectable/selectable.html @@ -12,7 +12,12 @@ - + + + + + + diff --git a/tests/unit/selectable/selectable.js b/tests/unit/selectable/selectable.js deleted file mode 100644 index df23626ca..000000000 --- a/tests/unit/selectable/selectable.js +++ /dev/null @@ -1,196 +0,0 @@ -/* - * selectable unit tests - */ -(function($) { -// -// Selectable Test Helper Functions -// - -var defaults = { - autoRefresh: true, - disabled: false, - filter: '*' -}; - -var el; - -var drag = function(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); -} - -var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); } - -var margin = function(el, side) { return parseInt(el.css('margin-' + side)); } - -// Selectable Tests -module("selectable"); - -test("init", function() { - expect(6); - - $("
").appendTo('body').selectable().remove(); - ok(true, '.selectable() called on element'); - - $([]).selectable().remove(); - ok(true, '.selectable() called on empty collection'); - - $("
").selectable().remove(); - ok(true, '.selectable() called on disconnected DOMElement'); - - $("
").selectable().selectable("foo").remove(); - ok(true, 'arbitrary method called after init'); - - el = $("
").selectable() - var foo = el.data("foo.selectable"); - el.remove(); - ok(true, 'arbitrary option getter after init'); - - $("
").selectable().data("foo.selectable", "bar").remove(); - ok(true, 'arbitrary option setter after init'); -}); - -test("destroy", function() { - expect(6); - - $("
").appendTo('body').selectable().selectable("destroy").remove(); - ok(true, '.selectable("destroy") called on element'); - - $([]).selectable().selectable("destroy").remove(); - ok(true, '.selectable("destroy") called on empty collection'); - - $("
").selectable().selectable("destroy").remove(); - ok(true, '.selectable("destroy") called on disconnected DOMElement'); - - $("
").selectable().selectable("destroy").selectable("foo").remove(); - ok(true, 'arbitrary method called after destroy'); - - el = $("
").selectable(); - var foo = el.selectable("destroy").data("foo.selectable"); - el.remove(); - ok(true, 'arbitrary option getter after destroy'); - - $("
").selectable().selectable("destroy").data("foo.selectable", "bar").remove(); - ok(true, 'arbitrary option setter after destroy'); -}); - -test("defaults", function() { - el = $('
').selectable(); - $.each(defaults, function(key, val) { - var actual = el.data(key + ".selectable"), expected = val; - same(actual, expected, key); - }); - el.remove(); -}); - -module("selectable: Options"); - -test("autoRefresh", function() { - expect(3); - el = $("#selectable1"); - var actual, sel = $("*", el), selected = function() { actual += 1 }; - - actual = 0; - el = $("#selectable1").selectable({ autoRefresh: false, selected: selected }); - sel.hide(); - drag(1000, 1000); - equals(actual, sel.length); - el.selectable("destroy"); - - actual = 0; - sel.show(); - el = $("#selectable1").selectable({ autoRefresh: true, selected: selected }); - sel.hide(); - drag(1000, 1000); - equals(actual, 0); - sel.show(); - drag(1000, 1000); - equals(actual, sel.length); - el.selectable("destroy"); - sel.show(); -}); - -test("filter", function() { - expect(2); - el = $("#selectable1"); - var actual, sel = $("*", el), selected = function() { actual += 1 }; - - actual = 0; - el = $("#selectable1").selectable({ filter: '.special', selected: selected }); - drag(1000, 1000); - ok(sel.length != 1, "this test assumes more than 1 selectee"); - equals(actual, 1); - el.selectable("destroy"); -}); - -module("selectable: Methods"); - -test("disable", function() { - expect(2); - var fired = false; - - el = $("#selectable1"); - el.selectable({ - disabled: false, - start: function() { fired = true; } - }); - el.simulate("drag", 20, 20); - equals(fired, true, "start fired"); - el.selectable("disable"); - fired = false; - el.simulate("drag", 20, 20); - equals(fired, false, "start fired"); - el.selectable("destroy"); -}); - -test("enable", function() { - expect(2); - var fired = false; - - el = $("#selectable1"); - el.selectable({ - disabled: true, - start: function() { fired = true; } - }); - el.simulate("drag", 20, 20); - equals(fired, false, "start fired"); - el.selectable("enable"); - el.simulate("drag", 20, 20); - equals(fired, true, "start fired"); - el.selectable("destroy"); -}); - -module("selectable: Callbacks"); - -test("start", function() { - expect(2); - el = $("#selectable1"); - el.selectable({ - start: function(ev, ui) { - ok(true, "drag fired start callback"); - equals(this, el[0], "context of callback"); - } - }); - el.simulate("drag", 20, 20); -}); - -test("stop", function() { - expect(2); - el = $("#selectable1"); - el.selectable({ - start: function(ev, ui) { - ok(true, "drag fired stop callback"); - equals(this, el[0], "context of callback"); - } - }); - el.simulate("drag", 20, 20); -}); - -module("selectable: Tickets"); - -})(jQuery); diff --git a/tests/unit/selectable/selectable_core.js b/tests/unit/selectable/selectable_core.js index e4ccb9efd..d7f716e5d 100644 --- a/tests/unit/selectable/selectable_core.js +++ b/tests/unit/selectable/selectable_core.js @@ -1,6 +1,23 @@ /* * selectable_core.js */ + +var el; + +var drag = function(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); +} + +var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); } + +var margin = function(el, side) { return parseInt(el.css('margin-' + side)); } + (function($) { module("selectable: core"); diff --git a/tests/unit/selectable/selectable_defaults.js b/tests/unit/selectable/selectable_defaults.js index 09cff3ce1..dbf799a43 100644 --- a/tests/unit/selectable/selectable_defaults.js +++ b/tests/unit/selectable/selectable_defaults.js @@ -3,7 +3,14 @@ */ var selectable_defaults = { - disabled: false + appendTo: 'body', + autoRefresh: true, + cancel: ':input,option', + delay: 0, + disabled: false, + distance: 0, + filter: '*', + tolerance: 'touch' }; commonWidgetTests('selectable', { defaults: selectable_defaults }); diff --git a/tests/unit/selectable/selectable_events.js b/tests/unit/selectable/selectable_events.js index 3fa1552ba..03b65ab88 100644 --- a/tests/unit/selectable/selectable_events.js +++ b/tests/unit/selectable/selectable_events.js @@ -5,8 +5,28 @@ module("selectable: events"); -test("testname", function() { - ok(false, "missing test - untested code is broken code."); +test("start", function() { + expect(2); + el = $("#selectable1"); + el.selectable({ + start: function(ev, ui) { + ok(true, "drag fired start callback"); + equals(this, el[0], "context of callback"); + } + }); + el.simulate("drag", 20, 20); +}); + +test("stop", function() { + expect(2); + el = $("#selectable1"); + el.selectable({ + start: function(ev, ui) { + ok(true, "drag fired stop callback"); + equals(this, el[0], "context of callback"); + } + }); + el.simulate("drag", 20, 20); }); })(jQuery); diff --git a/tests/unit/selectable/selectable_methods.js b/tests/unit/selectable/selectable_methods.js index 54adc4f87..0f52ec7e4 100644 --- a/tests/unit/selectable/selectable_methods.js +++ b/tests/unit/selectable/selectable_methods.js @@ -5,8 +5,87 @@ module("selectable: methods"); -test("testname", function() { - ok(false, "missing test - untested code is broken code."); +test("init", function() { + expect(6); + + $("
").appendTo('body').selectable().remove(); + ok(true, '.selectable() called on element'); + + $([]).selectable().remove(); + ok(true, '.selectable() called on empty collection'); + + $("
").selectable().remove(); + ok(true, '.selectable() called on disconnected DOMElement'); + + $("
").selectable().selectable("foo").remove(); + ok(true, 'arbitrary method called after init'); + + el = $("
").selectable() + var foo = el.data("foo.selectable"); + el.remove(); + ok(true, 'arbitrary option getter after init'); + + $("
").selectable().data("foo.selectable", "bar").remove(); + ok(true, 'arbitrary option setter after init'); +}); + +test("destroy", function() { + expect(6); + + $("
").appendTo('body').selectable().selectable("destroy").remove(); + ok(true, '.selectable("destroy") called on element'); + + $([]).selectable().selectable("destroy").remove(); + ok(true, '.selectable("destroy") called on empty collection'); + + $("
").selectable().selectable("destroy").remove(); + ok(true, '.selectable("destroy") called on disconnected DOMElement'); + + $("
").selectable().selectable("destroy").selectable("foo").remove(); + ok(true, 'arbitrary method called after destroy'); + + el = $("
").selectable(); + var foo = el.selectable("destroy").data("foo.selectable"); + el.remove(); + ok(true, 'arbitrary option getter after destroy'); + + $("
").selectable().selectable("destroy").data("foo.selectable", "bar").remove(); + ok(true, 'arbitrary option setter after destroy'); +}); + +test("enable", function() { + expect(2); + var fired = false; + + el = $("#selectable1"); + el.selectable({ + disabled: true, + start: function() { fired = true; } + }); + el.simulate("drag", 20, 20); + equals(fired, false, "start fired"); + el.selectable("enable"); + el.simulate("drag", 20, 20); + equals(fired, true, "start fired"); + el.selectable("destroy"); +}); + +test("disable", function() { + expect(2); + var fired = false; + + el = $("#selectable1"); + el.selectable({ + disabled: false, + start: function() { fired = true; } + }); + el.simulate("drag", 20, 20); + equals(fired, true, "start fired"); + el.selectable("disable"); + fired = false; + el.simulate("drag", 20, 20); + equals(fired, false, "start fired"); + el.selectable("destroy"); }); })(jQuery); diff --git a/tests/unit/selectable/selectable_options.js b/tests/unit/selectable/selectable_options.js index 49108f4d8..36b7b5b0d 100644 --- a/tests/unit/selectable/selectable_options.js +++ b/tests/unit/selectable/selectable_options.js @@ -5,8 +5,42 @@ module("selectable: options"); -test("testname", function() { - ok(false, "missing test - untested code is broken code."); +test("autoRefresh", function() { + expect(3); + el = $("#selectable1"); + var actual, sel = $("*", el), selected = function() { actual += 1 }; + + actual = 0; + el = $("#selectable1").selectable({ autoRefresh: false, selected: selected }); + sel.hide(); + drag(1000, 1000); + equals(actual, sel.length); + el.selectable("destroy"); + + actual = 0; + sel.show(); + el = $("#selectable1").selectable({ autoRefresh: true, selected: selected }); + sel.hide(); + drag(1000, 1000); + equals(actual, 0); + sel.show(); + drag(1000, 1000); + equals(actual, sel.length); + el.selectable("destroy"); + sel.show(); +}); + +test("filter", function() { + expect(2); + el = $("#selectable1"); + var actual, sel = $("*", el), selected = function() { actual += 1 }; + + actual = 0; + el = $("#selectable1").selectable({ filter: '.special', selected: selected }); + drag(1000, 1000); + ok(sel.length != 1, "this test assumes more than 1 selectee"); + equals(actual, 1); + el.selectable("destroy"); }); })(jQuery); diff --git a/tests/unit/selectable/selectable_tickets.js b/tests/unit/selectable/selectable_tickets.js index 8a9c9eae7..da1da46de 100644 --- a/tests/unit/selectable/selectable_tickets.js +++ b/tests/unit/selectable/selectable_tickets.js @@ -5,8 +5,4 @@ module("selectable: tickets"); -test("testname", function() { - ok(false, "missing test - untested code is broken code."); -}); - })(jQuery); -- 2.39.5