r887 - trunk/tests

r887 - trunk/tests


Author: rdworth
Date: Sat Nov 8 13:53:43 2008
New Revision: 887
Added:
trunk/tests/droppable.html
trunk/tests/droppable.js
Log:
tests: Added droppable test suite
Added: trunk/tests/droppable.html
==============================================================================
--- (empty file)
+++ trunk/tests/droppable.html    Sat Nov 8 13:53:43 2008
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <title>jQuery UI Droppable Test Suite</title>
+
+    <link rel="stylesheet" href="qunit/testsuite.css" type="text/css"
media="screen">
+    
+    <script type="text/javascript" src="../jquery-1.2.6.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>
+
+    <script type="text/javascript" src="qunit/testrunner.js"></script>
+    <script type="text/javascript" src="simulate/jquery.simulate.js"></script>
+    
+    <script type="text/javascript" src="droppable.js"></script>
+
+    <style type="text/css">
+        html { border: 0; }
+        #main {
+            position:absolute !important;
+            top: -1000px !important;
+            left: -1000px !important;
+        }
+    </style>
+</head>
+<body>
+
+<h1 id="header">jQuery UI Droppable Test Suite</h1>
+<h2 id="banner"></h2>
+<h2 id="userAgent"></h2>
+
+<ol id="tests"></ol>
+
+<div id="main">
+    <div id="draggable1" style="width: 25px; height: 25px;">Draggable</div>
+    <div id="droppable1" style="width: 100px; height: 100px;">Droppable</div>
+</div>
+
+</body>
+</html>
Added: trunk/tests/droppable.js
==============================================================================
--- (empty file)
+++ trunk/tests/droppable.js    Sat Nov 8 13:53:43 2008
@@ -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');
+
+    $("<div/>").droppable();
+    ok(true, '.droppable() called on disconnected DOMElement');
+
+    $("<div/>").droppable().droppable("foo");
+    ok(true, 'arbitrary method called after init');
+
+    $("<div/>").droppable().data("foo.droppable");
+    ok(true, 'arbitrary option getter after init');
+
+    $("<div/>").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');
+
+    $("<div/>").droppable().droppable("destroy");
+    ok(true, '.droppable("destroy") called on disconnected DOMElement');
+
+    $("<div/>").droppable().droppable("destroy").droppable("foo");
+    ok(true, 'arbitrary method called after destroy');
+
+    $("<div/>").droppable().droppable("destroy").data("foo.droppable");
+    ok(true, 'arbitrary option getter after destroy');
+
+    $("<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() {
+    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);