aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/droppable
diff options
context:
space:
mode:
authorRichard Worth <rdworth@gmail.com>2009-01-07 03:31:15 +0000
committerRichard Worth <rdworth@gmail.com>2009-01-07 03:31:15 +0000
commitb792bd46ec9b1b55bf2289faedd4ab3614c9319a (patch)
tree4b1736c703d392ec07fd4a5ae3390151470ae933 /tests/unit/droppable
parent4707debd645e63ea22d7a076e97a34eb3d310ebc (diff)
downloadjquery-ui-b792bd46ec9b1b55bf2289faedd4ab3614c9319a.tar.gz
jquery-ui-b792bd46ec9b1b55bf2289faedd4ab3614c9319a.zip
restructured unit tests folder
Diffstat (limited to 'tests/unit/droppable')
-rw-r--r--tests/unit/droppable/droppable.html27
-rw-r--r--tests/unit/droppable/droppable.js223
2 files changed, 250 insertions, 0 deletions
diff --git a/tests/unit/droppable/droppable.html b/tests/unit/droppable/droppable.html
new file mode 100644
index 000000000..3881adf1d
--- /dev/null
+++ b/tests/unit/droppable/droppable.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>jQuery UI Droppable Test Suite</title>
+
+ <script type="text/javascript" src="../../../jquery-1.3pre.js"></script>
+ <script type="text/javascript" src="../../../ui/ui.core.js"></script>
+ <script type="text/javascript" src="../../../ui/ui.draggable.js"></script>
+ <script type="text/javascript" src="../../../ui/ui.droppable.js"></script>
+
+ <link type="text/css" href="../testsuite.css" rel="stylesheet" />
+ <script type="text/javascript" src="../testsuite.js"></script>
+ <script type="text/javascript" src="../../../external/qunit/testrunner.js"></script>
+ <script type="text/javascript" src="../../../external/simulate/jquery.simulate.js"></script>
+
+ <script type="text/javascript" src="droppable.js"></script>
+</head>
+<body>
+
+<div id="main">
+ <div id="draggable1" style="width: 25px; height: 25px;">Draggable</div>
+ <div id="droppable1" style="width: 100px; height: 100px;">Droppable</div>
+ <div style='width:1000px;height:1000px;'>&nbsp;</div>
+</div>
+
+</body>
+</html>
diff --git a/tests/unit/droppable/droppable.js b/tests/unit/droppable/droppable.js
new file mode 100644
index 000000000..31915defc
--- /dev/null
+++ b/tests/unit/droppable/droppable.js
@@ -0,0 +1,223 @@
+/*
+ * droppable unit tests
+ */
+(function($) {
+//
+// Droppable Test Helper Functions
+//
+
+var defaults = {
+ accept: '*',
+ 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);
+
+ $("<div></div>").appendTo('body').droppable().remove();
+ ok(true, '.droppable() called on element');
+
+ $([]).droppable();
+ ok(true, '.droppable() called on empty collection');
+
+ $("<div></div>").droppable();
+ ok(true, '.droppable() called on disconnected DOMElement');
+
+ $("<div></div>").droppable().droppable("foo");
+ ok(true, 'arbitrary method called after init');
+
+ $("<div></div>").droppable().data("foo.droppable");
+ ok(true, 'arbitrary option getter after init');
+
+ $("<div></div>").droppable().data("foo.droppable", "bar");
+ ok(true, 'arbitrary option setter after init');
+});
+
+test("destroy", function() {
+ expect(6);
+
+ $("<div></div>").appendTo('body').droppable().droppable("destroy").remove();
+ ok(true, '.droppable("destroy") called on element');
+
+ $([]).droppable().droppable("destroy");
+ ok(true, '.droppable("destroy") called on empty collection');
+
+ $("<div></div>").droppable().droppable("destroy");
+ ok(true, '.droppable("destroy") called on disconnected DOMElement');
+
+ $("<div></div>").droppable().droppable("destroy").droppable("foo");
+ ok(true, 'arbitrary method called after destroy');
+
+ $("<div></div>").droppable().droppable("destroy").data("foo.droppable");
+ ok(true, 'arbitrary option getter after destroy');
+
+ $("<div></div>").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("<tr><td>content</td></tr>"));
+ el.droppable();
+ shouldBeDroppable();
+ el.droppable("destroy");
+ el.remove();
+ });
+});
+
+test("defaults", function() {
+ el = $("<div></div>").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 = $("<div></div>").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() {
+ //cssNamespace should be appended with '-droppable' and added as className
+ el = $("<div></div>").droppable({ cssNamespace: "ui" });
+ equals(el[0].className, "ui-droppable");
+ el.droppable("destroy");
+
+ //no className should be added if cssNamepsace is null
+ el = $("<div></div>").droppable({ cssNamespace: null });
+ equals(el[0].className, "");
+ el.droppable("destroy");
+});
+
+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);