diff options
Diffstat (limited to 'apps/it/static/js/ui/tests/unit/droppable')
8 files changed, 357 insertions, 0 deletions
diff --git a/apps/it/static/js/ui/tests/unit/droppable/all.html b/apps/it/static/js/ui/tests/unit/droppable/all.html new file mode 100644 index 0000000..9a50050 --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/all.html @@ -0,0 +1,30 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>jQuery UI Droppable Test Suite</title> + + <script src="../../../jquery-1.10.2.js"></script> + + <link rel="stylesheet" href="../../../external/qunit.css"> + <link rel="stylesheet" href="../qunit-composite.css"> + <script src="../../../external/qunit.js"></script> + <script src="../qunit-composite.js"></script> + <script src="../subsuite.js"></script> + + <script> + testAllVersions( "droppable" ); + </script> +</head> +<body> + +<h1 id="qunit-header">jQuery UI Droppable Test Suite</h1> +<h2 id="qunit-banner"></h2> +<div id="qunit-testrunner-toolbar"></div> +<h2 id="qunit-userAgent"></h2> +<ol id="qunit-tests"></ol> +<div id="qunit-fixture"> + +</div> +</body> +</html> diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable.html b/apps/it/static/js/ui/tests/unit/droppable/droppable.html new file mode 100644 index 0000000..d084464 --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable.html @@ -0,0 +1,50 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>jQuery UI Droppable Test Suite</title> + + <script src="../../jquery.js"></script> + <link rel="stylesheet" href="../../../external/qunit.css"> + <script src="../../../external/qunit.js"></script> + <script src="../../jquery.simulate.js"></script> + <script src="../testsuite.js"></script> + <script> + TestHelpers.loadResources({ + css: [ "ui.core" ], + js: [ + "ui/jquery.ui.core.js", + "ui/jquery.ui.widget.js", + "ui/jquery.ui.mouse.js", + "ui/jquery.ui.draggable.js", + "ui/jquery.ui.droppable.js" + ] + }); + </script> + + <script src="droppable_common.js"></script> + <script src="droppable_core.js"></script> + <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> +<body> + +<h1 id="qunit-header">jQuery UI Droppable Test Suite</h1> +<h2 id="qunit-banner"></h2> +<div id="qunit-testrunner-toolbar"></div> +<h2 id="qunit-userAgent"></h2> +<ol id="qunit-tests"></ol> +<div id="qunit-fixture"> + +<div id="draggable1" style="width: 25px; height: 25px;">Draggable</div> +<div id="droppable1" style="width: 100px; height: 100px;">Droppable</div> +<div id="droppable2" style="width: 100px; height: 100px;">Droppable</div> +<div style='width:1000px;height:1000px;'> </div> + +</div> +</body> +</html> diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_common.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_common.js new file mode 100644 index 0000000..c112def --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_common.js @@ -0,0 +1,20 @@ +TestHelpers.commonWidgetTests( "droppable", { + defaults: { + accept: "*", + activeClass: false, + addClasses: true, + disabled: false, + greedy: false, + hoverClass: false, + scope: "default", + tolerance: "intersect", + + // callbacks + activate: null, + create: null, + deactivate: null, + drop: null, + out: null, + over: null + } +}); diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_core.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_core.js new file mode 100644 index 0000000..53b08fd --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_core.js @@ -0,0 +1,29 @@ +/* + * droppable_core.js + */ + +(function($) { + +module("droppable: core"); + +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,hr" + + ",input,button,label,select,iframe").split(","); + + expect( typeNames.length ); + + $.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(); + TestHelpers.droppable.shouldDrop(); + el.droppable("destroy"); + el.remove(); + }); +}); + +})(jQuery); diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_events.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_events.js new file mode 100644 index 0000000..4b8fe5a --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_events.js @@ -0,0 +1,63 @@ +(function( $ ) { + +module( "droppable: events" ); + +test( "droppable destruction/recreation on drop event", function() { + expect( 1 ); + + var config = { + activeClass: "active", + drop: function() { + var element = $( this ), + newDroppable = $( "<div>" ) + .css({ width: 100, height: 100 }) + .text( "Droppable" ); + element.after( newDroppable ); + element.remove(); + newDroppable.droppable( config ); + } + }, + + draggable = $( "#draggable1" ).draggable(), + droppable1 = $( "#droppable1" ).droppable( config ), + droppable2 = $( "#droppable2" ).droppable( config ), + + droppableOffset = droppable1.offset(), + draggableOffset = draggable.offset(), + dx = droppableOffset.left - draggableOffset.left, + dy = droppableOffset.top - draggableOffset.top; + + draggable.simulate( "drag", { + dx: dx, + dy: dy + }); + + ok( !droppable2.hasClass( "active" ), "subsequent droppable no longer active" ); +}); + + + +// todo: comment the following in when ready to actually test +/* +test("activate", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("deactivate", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("over", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("out", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("drop", function() { + ok(false, 'missing test - untested code is broken code'); +}); +*/ + +})( jQuery ); diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_methods.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_methods.js new file mode 100644 index 0000000..2b452a6 --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_methods.js @@ -0,0 +1,88 @@ +/* + * droppable_methods.js + */ +(function($) { + +module("droppable: methods"); + +test("init", function() { + expect( 5 ); + + $("<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("option", "foo"); + ok(true, "arbitrary option getter after init"); + + $("<div></div>").droppable().droppable("option", "foo", "bar"); + ok(true, "arbitrary option setter after init"); +}); + +test("destroy", function() { + expect( 4 ); + + $("<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"); + + var expected = $("<div></div>").droppable(), + actual = expected.droppable("destroy"); + equal(actual, expected, "destroy is chainable"); +}); + +test("enable", function() { + expect(7); + + var el, expected, actual; + + el = $("#droppable1").droppable({ disabled: true }); + TestHelpers.droppable.shouldNotDrop(); + el.droppable("enable"); + TestHelpers.droppable.shouldDrop(); + equal(el.droppable("option", "disabled"), false, "disabled option getter"); + el.droppable("destroy"); + el.droppable({ disabled: true }); + TestHelpers.droppable.shouldNotDrop(); + el.droppable("option", "disabled", false); + equal(el.droppable("option", "disabled"), false, "disabled option setter"); + TestHelpers.droppable.shouldDrop(); + + 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"); + TestHelpers.droppable.shouldNotDrop(); + equal(el.droppable("option", "disabled"), true, "disabled option getter"); + el.droppable("destroy"); + el.droppable({ disabled: false }); + TestHelpers.droppable.shouldDrop(); + el.droppable("option", "disabled", true); + equal(el.droppable("option", "disabled"), true, "disabled option setter"); + TestHelpers.droppable.shouldNotDrop(); + + expected = $("<div></div>").droppable(), + actual = expected.droppable("disable"); + equal(actual, expected, "disable is chainable"); +}); + +})(jQuery); diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_options.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_options.js new file mode 100644 index 0000000..c2ecdcf --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_options.js @@ -0,0 +1,67 @@ +/* + * droppable_options.js + */ +(function($) { + +module("droppable: options"); + +/* +test("{ accept '*' }, default ", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("{ accept: Selector }", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("{ accept: function(draggable) }", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("activeClass", function() { + ok(false, 'missing test - untested code is broken code'); +}); +*/ +test("{ addClasses: true }, default", function() { + expect( 1 ); + 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 ); + var el = $("<div></div>").droppable({ addClasses: false }); + ok(!el.is(".ui-droppable"), "'ui-droppable' class not added"); + el.droppable("destroy"); +}); +/* +test("greedy", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("hoverClass", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("scope", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("tolerance, fit", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("tolerance, intersect", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("tolerance, pointer", function() { + ok(false, 'missing test - untested code is broken code'); +}); + +test("tolerance, touch", function() { + ok(false, 'missing test - untested code is broken code'); +}); +*/ +})(jQuery); diff --git a/apps/it/static/js/ui/tests/unit/droppable/droppable_test_helpers.js b/apps/it/static/js/ui/tests/unit/droppable/droppable_test_helpers.js new file mode 100644 index 0000000..ffd3745 --- /dev/null +++ b/apps/it/static/js/ui/tests/unit/droppable/droppable_test_helpers.js @@ -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 |