mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
droppable unit tests: created separate file for each module: core, common widget, events, methods, options, tickets
This commit is contained in:
parent
39b0bbc9ca
commit
bff0f70e2c
@ -13,7 +13,12 @@
|
|||||||
<script type="text/javascript" src="../../../external/qunit/testrunner.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="../../../external/simulate/jquery.simulate.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="droppable.js"></script>
|
<script type="text/javascript" src="droppable_core.js"></script>
|
||||||
|
<script type="text/javascript" src="droppable_defaults.js"></script>
|
||||||
|
<script type="text/javascript" src="droppable_events.js"></script>
|
||||||
|
<script type="text/javascript" src="droppable_methods.js"></script>
|
||||||
|
<script type="text/javascript" src="droppable_options.js"></script>
|
||||||
|
<script type="text/javascript" src="droppable_tickets.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
@ -1,223 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 - untested code is broken code');
|
|
||||||
}
|
|
||||||
|
|
||||||
function shouldNotBeDroppable() {
|
|
||||||
ok(false, 'missing test - untested code is broken code');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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 - untested code is broken code');
|
|
||||||
});
|
|
||||||
|
|
||||||
test("accept, fn", function() {
|
|
||||||
ok(false, 'missing test - untested code is broken code');
|
|
||||||
});
|
|
||||||
|
|
||||||
test("activeClass", function() {
|
|
||||||
ok(false, 'missing test - untested code is broken code');
|
|
||||||
});
|
|
||||||
|
|
||||||
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 - 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');
|
|
||||||
});
|
|
||||||
|
|
||||||
module("droppable: Callbacks");
|
|
||||||
|
|
||||||
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');
|
|
||||||
});
|
|
||||||
|
|
||||||
module("droppable: Tickets");
|
|
||||||
|
|
||||||
|
|
||||||
})(jQuery);
|
|
36
tests/unit/droppable/droppable_core.js
Normal file
36
tests/unit/droppable/droppable_core.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* droppable_core.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
var el, drg;
|
||||||
|
|
||||||
|
function shouldBeDroppable() {
|
||||||
|
ok(false, 'missing test - untested code is broken code');
|
||||||
|
}
|
||||||
|
|
||||||
|
function shouldNotBeDroppable() {
|
||||||
|
ok(false, 'missing test - untested code is broken code');
|
||||||
|
}
|
||||||
|
|
||||||
|
(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,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();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery);
|
16
tests/unit/droppable/droppable_defaults.js
Normal file
16
tests/unit/droppable/droppable_defaults.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* droppable_defaults.js
|
||||||
|
*/
|
||||||
|
|
||||||
|
var droppable_defaults = {
|
||||||
|
accept: '*',
|
||||||
|
activeClass: false,
|
||||||
|
cssNamespace: "ui",
|
||||||
|
disabled: false,
|
||||||
|
greedy: false,
|
||||||
|
hoverClass: false,
|
||||||
|
scope: "default",
|
||||||
|
tolerance: "intersect"
|
||||||
|
};
|
||||||
|
|
||||||
|
commonWidgetTests('droppable', { defaults: droppable_defaults });
|
28
tests/unit/droppable/droppable_events.js
Normal file
28
tests/unit/droppable/droppable_events.js
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* droppable_events.js
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
|
||||||
|
module("droppable: events");
|
||||||
|
|
||||||
|
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);
|
82
tests/unit/droppable/droppable_methods.js
Normal file
82
tests/unit/droppable/droppable_methods.js
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* droppable_methods.js
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
|
||||||
|
module("droppable: methods");
|
||||||
|
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery);
|
60
tests/unit/droppable/droppable_options.js
Normal file
60
tests/unit/droppable/droppable_options.js
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* droppable_optinos.js
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
|
||||||
|
module("droppable: options");
|
||||||
|
|
||||||
|
test("accept, selector", function() {
|
||||||
|
ok(false, 'missing test - untested code is broken code');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("accept, fn", function() {
|
||||||
|
ok(false, 'missing test - untested code is broken code');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("activeClass", function() {
|
||||||
|
ok(false, 'missing test - untested code is broken code');
|
||||||
|
});
|
||||||
|
|
||||||
|
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 - 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);
|
8
tests/unit/droppable/droppable_tickets.js
Normal file
8
tests/unit/droppable/droppable_tickets.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* droppable_tickets.js
|
||||||
|
*/
|
||||||
|
(function($) {
|
||||||
|
|
||||||
|
module("droppable: tickets");
|
||||||
|
|
||||||
|
})(jQuery);
|
Loading…
Reference in New Issue
Block a user