From caa51ee0dc09e5babf3b5d01056655d07b3abb2c Mon Sep 17 00:00:00 2001 From: Richard Worth Date: Sat, 8 Nov 2008 21:53:43 +0000 Subject: [PATCH] tests: Added droppable test suite --- tests/droppable.html | 41 +++++++++ tests/droppable.js | 215 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 256 insertions(+) create mode 100644 tests/droppable.html create mode 100644 tests/droppable.js diff --git a/tests/droppable.html b/tests/droppable.html new file mode 100644 index 000000000..d32d92e72 --- /dev/null +++ b/tests/droppable.html @@ -0,0 +1,41 @@ + + + + jQuery UI Droppable Test Suite + + + + + + + + + + + + + + + + + +

jQuery UI Droppable Test Suite

+ +

+ +
    + +
    +
    Draggable
    +
    Droppable
    +
    + + + diff --git a/tests/droppable.js b/tests/droppable.js new file mode 100644 index 000000000..5e4b8a1b6 --- /dev/null +++ b/tests/droppable.js @@ -0,0 +1,215 @@ +/* + * droppable unit tests + */ +(function($) { +// +// Droppable Test Helper Functions +// + +var defaults = { + accept: null, + activeClass: null, + cssNamespace: "ui", + disabled: false, + greedy: false, + hoverClass: null, + scope: "default", + tolerance: "intersect" +}; + +var el, drg; + +function shouldBeDroppable() { + ok(false, "missing test - should be droppable"); +} + +function shouldNotBeDroppable() { + ok(false, "missing test - should not be droppable"); +} + +// Droppable Tests +module("droppable"); + +test("init", function() { + expect(6); + + el = $("#droppable1").droppable(); + ok(true, '.droppable() called on element'); + + $([]).droppable(); + ok(true, '.droppable() called on empty collection'); + + $("
    ").droppable(); + ok(true, '.droppable() called on disconnected DOMElement'); + + $("
    ").droppable().droppable("foo"); + ok(true, 'arbitrary method called after init'); + + $("
    ").droppable().data("foo.droppable"); + ok(true, 'arbitrary option getter after init'); + + $("
    ").droppable().data("foo.droppable", "bar"); + ok(true, 'arbitrary option setter after init'); +}); + +test("destroy", function() { + expect(6); + + $("#droppable1").droppable().droppable("destroy"); + ok(true, '.droppable("destroy") called on element'); + + $([]).droppable().droppable("destroy"); + ok(true, '.droppable("destroy") called on empty collection'); + + $("
    ").droppable().droppable("destroy"); + ok(true, '.droppable("destroy") called on disconnected DOMElement'); + + $("
    ").droppable().droppable("destroy").droppable("foo"); + ok(true, 'arbitrary method called after destroy'); + + $("
    ").droppable().droppable("destroy").data("foo.droppable"); + ok(true, 'arbitrary option getter after destroy'); + + $("
    ").droppable().droppable("destroy").data("foo.droppable", "bar"); + ok(true, 'arbitrary option setter after destroy'); +}); + +test("enable", function() { + expect(6); + el = $("#droppable1").droppable({ disabled: true }); + shouldNotBeDroppable(); + el.droppable("enable"); + shouldBeDroppable(); + equals(el.data("disabled.droppable"), false, "disabled.droppable getter"); + el.droppable("destroy"); + el.droppable({ disabled: true }); + shouldNotBeDroppable(); + el.data("disabled.droppable", false); + equals(el.data("disabled.droppable"), false, "disabled.droppable setter"); + shouldBeDroppable(); +}); + +test("disable", function() { + expect(6); + el = $("#droppable1").droppable({ disabled: false }); + shouldBeDroppable(); + el.droppable("disable"); + shouldNotBeDroppable(); + equals(el.data("disabled.droppable"), true, "disabled.droppable getter"); + el.droppable("destroy"); + el.droppable({ disabled: false }); + shouldBeDroppable(); + el.data("disabled.droppable", true); + equals(el.data("disabled.droppable"), true, "disabled.droppable setter"); + shouldNotBeDroppable(); +}); + +test("element types", function() { + var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form' + + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr' + + ',acronym,code,samp,kbd,var,img,object,hr' + + ',input,button,label,select,iframe').split(','); + + $.each(typeNames, function(i) { + var typeName = typeNames[i]; + el = $(document.createElement(typeName)).appendTo('body'); + (typeName == 'table' && el.append("content")); + el.droppable(); + shouldBeDroppable(); + el.droppable("destroy"); + el.remove(); + }); +}); + +test("defaults", function() { + el = $("
    ").droppable(); + $.each(defaults, function(key, val) { + var actual = el.data(key + ".droppable"), expected = val; + same(actual, expected, key); + }); + el.remove(); +}); + +test("option setting", function() { + // The plugin shouldn't modify an option value set by the user + $.each(defaults, function(key, val) { + el = $("
    ").droppable(); + el.data(key + ".droppable", val); + var actual = el.data(key + ".droppable"), expected = val; + same(actual, expected, key); + el.remove(); + }); +}); + +module("droppable: Options"); + +test("accept, selector", function() { + ok(false, "missing test"); +}); + +test("accept, fn", function() { + ok(false, "missing test"); +}); + +test("activeClass", function() { + ok(false, "missing test"); +}); + +test("cssNamespace", function() { + ok(false, "missing test"); +}); + +test("greedy", function() { + ok(false, "missing test"); +}); + +test("hoverClass", function() { + ok(false, "missing test"); +}); + +test("scope", function() { + ok(false, "missing test"); +}); + +test("tolerance, fit", function() { + ok(false, "missing test"); +}); + +test("tolerance, intersect", function() { + ok(false, "missing test"); +}); + +test("tolerance, pointer", function() { + ok(false, "missing test"); +}); + +test("tolerance, touch", function() { + ok(false, "missing test"); +}); + +module("droppable: Callbacks"); + +test("activate", function() { + ok(false, "missing test"); +}); + +test("deactivate", function() { + ok(false, "missing test"); +}); + +test("over", function() { + ok(false, "missing test"); +}); + +test("out", function() { + ok(false, "missing test"); +}); + +test("drop", function() { + ok(false, "missing test"); +}); + +module("droppable: Tickets"); + + +})(jQuery); -- 2.39.5