mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
selectable unit tests: split tests into individual files
This commit is contained in:
parent
96b1534483
commit
53f57ffdb5
@ -12,7 +12,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="selectable.js"></script>
|
<script type="text/javascript" src="selectable_core.js"></script>
|
||||||
|
<script type="text/javascript" src="selectable_defaults.js"></script>
|
||||||
|
<script type="text/javascript" src="selectable_events.js"></script>
|
||||||
|
<script type="text/javascript" src="selectable_methods.js"></script>
|
||||||
|
<script type="text/javascript" src="selectable_options.js"></script>
|
||||||
|
<script type="text/javascript" src="selectable_tickets.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
@ -1,196 +0,0 @@
|
|||||||
/*
|
|
||||||
* selectable unit tests
|
|
||||||
*/
|
|
||||||
(function($) {
|
|
||||||
//
|
|
||||||
// Selectable Test Helper Functions
|
|
||||||
//
|
|
||||||
|
|
||||||
var defaults = {
|
|
||||||
autoRefresh: true,
|
|
||||||
disabled: false,
|
|
||||||
filter: '*'
|
|
||||||
};
|
|
||||||
|
|
||||||
var el;
|
|
||||||
|
|
||||||
var drag = function(dx, dy) {
|
|
||||||
var off = el.offset(), pos = { clientX: off.left, clientY: off.top };
|
|
||||||
el.simulate("mousedown", pos);
|
|
||||||
$(document).simulate("mousemove", pos);
|
|
||||||
pos.clientX += dx;
|
|
||||||
pos.clientY += dy;
|
|
||||||
$(document).simulate("mousemove", pos);
|
|
||||||
$(document).simulate("mouseup", pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); }
|
|
||||||
|
|
||||||
var margin = function(el, side) { return parseInt(el.css('margin-' + side)); }
|
|
||||||
|
|
||||||
// Selectable Tests
|
|
||||||
module("selectable");
|
|
||||||
|
|
||||||
test("init", function() {
|
|
||||||
expect(6);
|
|
||||||
|
|
||||||
$("<div></div>").appendTo('body').selectable().remove();
|
|
||||||
ok(true, '.selectable() called on element');
|
|
||||||
|
|
||||||
$([]).selectable().remove();
|
|
||||||
ok(true, '.selectable() called on empty collection');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().remove();
|
|
||||||
ok(true, '.selectable() called on disconnected DOMElement');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().selectable("foo").remove();
|
|
||||||
ok(true, 'arbitrary method called after init');
|
|
||||||
|
|
||||||
el = $("<div></div>").selectable()
|
|
||||||
var foo = el.data("foo.selectable");
|
|
||||||
el.remove();
|
|
||||||
ok(true, 'arbitrary option getter after init');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().data("foo.selectable", "bar").remove();
|
|
||||||
ok(true, 'arbitrary option setter after init');
|
|
||||||
});
|
|
||||||
|
|
||||||
test("destroy", function() {
|
|
||||||
expect(6);
|
|
||||||
|
|
||||||
$("<div></div>").appendTo('body').selectable().selectable("destroy").remove();
|
|
||||||
ok(true, '.selectable("destroy") called on element');
|
|
||||||
|
|
||||||
$([]).selectable().selectable("destroy").remove();
|
|
||||||
ok(true, '.selectable("destroy") called on empty collection');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().selectable("destroy").remove();
|
|
||||||
ok(true, '.selectable("destroy") called on disconnected DOMElement');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().selectable("destroy").selectable("foo").remove();
|
|
||||||
ok(true, 'arbitrary method called after destroy');
|
|
||||||
|
|
||||||
el = $("<div></div>").selectable();
|
|
||||||
var foo = el.selectable("destroy").data("foo.selectable");
|
|
||||||
el.remove();
|
|
||||||
ok(true, 'arbitrary option getter after destroy');
|
|
||||||
|
|
||||||
$("<div></div>").selectable().selectable("destroy").data("foo.selectable", "bar").remove();
|
|
||||||
ok(true, 'arbitrary option setter after destroy');
|
|
||||||
});
|
|
||||||
|
|
||||||
test("defaults", function() {
|
|
||||||
el = $('<div></div>').selectable();
|
|
||||||
$.each(defaults, function(key, val) {
|
|
||||||
var actual = el.data(key + ".selectable"), expected = val;
|
|
||||||
same(actual, expected, key);
|
|
||||||
});
|
|
||||||
el.remove();
|
|
||||||
});
|
|
||||||
|
|
||||||
module("selectable: Options");
|
|
||||||
|
|
||||||
test("autoRefresh", function() {
|
|
||||||
expect(3);
|
|
||||||
el = $("#selectable1");
|
|
||||||
var actual, sel = $("*", el), selected = function() { actual += 1 };
|
|
||||||
|
|
||||||
actual = 0;
|
|
||||||
el = $("#selectable1").selectable({ autoRefresh: false, selected: selected });
|
|
||||||
sel.hide();
|
|
||||||
drag(1000, 1000);
|
|
||||||
equals(actual, sel.length);
|
|
||||||
el.selectable("destroy");
|
|
||||||
|
|
||||||
actual = 0;
|
|
||||||
sel.show();
|
|
||||||
el = $("#selectable1").selectable({ autoRefresh: true, selected: selected });
|
|
||||||
sel.hide();
|
|
||||||
drag(1000, 1000);
|
|
||||||
equals(actual, 0);
|
|
||||||
sel.show();
|
|
||||||
drag(1000, 1000);
|
|
||||||
equals(actual, sel.length);
|
|
||||||
el.selectable("destroy");
|
|
||||||
sel.show();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("filter", function() {
|
|
||||||
expect(2);
|
|
||||||
el = $("#selectable1");
|
|
||||||
var actual, sel = $("*", el), selected = function() { actual += 1 };
|
|
||||||
|
|
||||||
actual = 0;
|
|
||||||
el = $("#selectable1").selectable({ filter: '.special', selected: selected });
|
|
||||||
drag(1000, 1000);
|
|
||||||
ok(sel.length != 1, "this test assumes more than 1 selectee");
|
|
||||||
equals(actual, 1);
|
|
||||||
el.selectable("destroy");
|
|
||||||
});
|
|
||||||
|
|
||||||
module("selectable: Methods");
|
|
||||||
|
|
||||||
test("disable", function() {
|
|
||||||
expect(2);
|
|
||||||
var fired = false;
|
|
||||||
|
|
||||||
el = $("#selectable1");
|
|
||||||
el.selectable({
|
|
||||||
disabled: false,
|
|
||||||
start: function() { fired = true; }
|
|
||||||
});
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
equals(fired, true, "start fired");
|
|
||||||
el.selectable("disable");
|
|
||||||
fired = false;
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
equals(fired, false, "start fired");
|
|
||||||
el.selectable("destroy");
|
|
||||||
});
|
|
||||||
|
|
||||||
test("enable", function() {
|
|
||||||
expect(2);
|
|
||||||
var fired = false;
|
|
||||||
|
|
||||||
el = $("#selectable1");
|
|
||||||
el.selectable({
|
|
||||||
disabled: true,
|
|
||||||
start: function() { fired = true; }
|
|
||||||
});
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
equals(fired, false, "start fired");
|
|
||||||
el.selectable("enable");
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
equals(fired, true, "start fired");
|
|
||||||
el.selectable("destroy");
|
|
||||||
});
|
|
||||||
|
|
||||||
module("selectable: Callbacks");
|
|
||||||
|
|
||||||
test("start", function() {
|
|
||||||
expect(2);
|
|
||||||
el = $("#selectable1");
|
|
||||||
el.selectable({
|
|
||||||
start: function(ev, ui) {
|
|
||||||
ok(true, "drag fired start callback");
|
|
||||||
equals(this, el[0], "context of callback");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("stop", function() {
|
|
||||||
expect(2);
|
|
||||||
el = $("#selectable1");
|
|
||||||
el.selectable({
|
|
||||||
start: function(ev, ui) {
|
|
||||||
ok(true, "drag fired stop callback");
|
|
||||||
equals(this, el[0], "context of callback");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
el.simulate("drag", 20, 20);
|
|
||||||
});
|
|
||||||
|
|
||||||
module("selectable: Tickets");
|
|
||||||
|
|
||||||
})(jQuery);
|
|
@ -1,6 +1,23 @@
|
|||||||
/*
|
/*
|
||||||
* selectable_core.js
|
* selectable_core.js
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var el;
|
||||||
|
|
||||||
|
var drag = function(dx, dy) {
|
||||||
|
var off = el.offset(), pos = { clientX: off.left, clientY: off.top };
|
||||||
|
el.simulate("mousedown", pos);
|
||||||
|
$(document).simulate("mousemove", pos);
|
||||||
|
pos.clientX += dx;
|
||||||
|
pos.clientY += dy;
|
||||||
|
$(document).simulate("mousemove", pos);
|
||||||
|
$(document).simulate("mouseup", pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); }
|
||||||
|
|
||||||
|
var margin = function(el, side) { return parseInt(el.css('margin-' + side)); }
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
module("selectable: core");
|
module("selectable: core");
|
||||||
|
@ -3,7 +3,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var selectable_defaults = {
|
var selectable_defaults = {
|
||||||
disabled: false
|
appendTo: 'body',
|
||||||
|
autoRefresh: true,
|
||||||
|
cancel: ':input,option',
|
||||||
|
delay: 0,
|
||||||
|
disabled: false,
|
||||||
|
distance: 0,
|
||||||
|
filter: '*',
|
||||||
|
tolerance: 'touch'
|
||||||
};
|
};
|
||||||
|
|
||||||
commonWidgetTests('selectable', { defaults: selectable_defaults });
|
commonWidgetTests('selectable', { defaults: selectable_defaults });
|
||||||
|
@ -5,8 +5,28 @@
|
|||||||
|
|
||||||
module("selectable: events");
|
module("selectable: events");
|
||||||
|
|
||||||
test("testname", function() {
|
test("start", function() {
|
||||||
ok(false, "missing test - untested code is broken code.");
|
expect(2);
|
||||||
|
el = $("#selectable1");
|
||||||
|
el.selectable({
|
||||||
|
start: function(ev, ui) {
|
||||||
|
ok(true, "drag fired start callback");
|
||||||
|
equals(this, el[0], "context of callback");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("stop", function() {
|
||||||
|
expect(2);
|
||||||
|
el = $("#selectable1");
|
||||||
|
el.selectable({
|
||||||
|
start: function(ev, ui) {
|
||||||
|
ok(true, "drag fired stop callback");
|
||||||
|
equals(this, el[0], "context of callback");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
@ -5,8 +5,87 @@
|
|||||||
|
|
||||||
module("selectable: methods");
|
module("selectable: methods");
|
||||||
|
|
||||||
test("testname", function() {
|
test("init", function() {
|
||||||
ok(false, "missing test - untested code is broken code.");
|
expect(6);
|
||||||
|
|
||||||
|
$("<div></div>").appendTo('body').selectable().remove();
|
||||||
|
ok(true, '.selectable() called on element');
|
||||||
|
|
||||||
|
$([]).selectable().remove();
|
||||||
|
ok(true, '.selectable() called on empty collection');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().remove();
|
||||||
|
ok(true, '.selectable() called on disconnected DOMElement');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().selectable("foo").remove();
|
||||||
|
ok(true, 'arbitrary method called after init');
|
||||||
|
|
||||||
|
el = $("<div></div>").selectable()
|
||||||
|
var foo = el.data("foo.selectable");
|
||||||
|
el.remove();
|
||||||
|
ok(true, 'arbitrary option getter after init');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().data("foo.selectable", "bar").remove();
|
||||||
|
ok(true, 'arbitrary option setter after init');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("destroy", function() {
|
||||||
|
expect(6);
|
||||||
|
|
||||||
|
$("<div></div>").appendTo('body').selectable().selectable("destroy").remove();
|
||||||
|
ok(true, '.selectable("destroy") called on element');
|
||||||
|
|
||||||
|
$([]).selectable().selectable("destroy").remove();
|
||||||
|
ok(true, '.selectable("destroy") called on empty collection');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().selectable("destroy").remove();
|
||||||
|
ok(true, '.selectable("destroy") called on disconnected DOMElement');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().selectable("destroy").selectable("foo").remove();
|
||||||
|
ok(true, 'arbitrary method called after destroy');
|
||||||
|
|
||||||
|
el = $("<div></div>").selectable();
|
||||||
|
var foo = el.selectable("destroy").data("foo.selectable");
|
||||||
|
el.remove();
|
||||||
|
ok(true, 'arbitrary option getter after destroy');
|
||||||
|
|
||||||
|
$("<div></div>").selectable().selectable("destroy").data("foo.selectable", "bar").remove();
|
||||||
|
ok(true, 'arbitrary option setter after destroy');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("enable", function() {
|
||||||
|
expect(2);
|
||||||
|
var fired = false;
|
||||||
|
|
||||||
|
el = $("#selectable1");
|
||||||
|
el.selectable({
|
||||||
|
disabled: true,
|
||||||
|
start: function() { fired = true; }
|
||||||
|
});
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
|
equals(fired, false, "start fired");
|
||||||
|
el.selectable("enable");
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
|
equals(fired, true, "start fired");
|
||||||
|
el.selectable("destroy");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("disable", function() {
|
||||||
|
expect(2);
|
||||||
|
var fired = false;
|
||||||
|
|
||||||
|
el = $("#selectable1");
|
||||||
|
el.selectable({
|
||||||
|
disabled: false,
|
||||||
|
start: function() { fired = true; }
|
||||||
|
});
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
|
equals(fired, true, "start fired");
|
||||||
|
el.selectable("disable");
|
||||||
|
fired = false;
|
||||||
|
el.simulate("drag", 20, 20);
|
||||||
|
equals(fired, false, "start fired");
|
||||||
|
el.selectable("destroy");
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
@ -5,8 +5,42 @@
|
|||||||
|
|
||||||
module("selectable: options");
|
module("selectable: options");
|
||||||
|
|
||||||
test("testname", function() {
|
test("autoRefresh", function() {
|
||||||
ok(false, "missing test - untested code is broken code.");
|
expect(3);
|
||||||
|
el = $("#selectable1");
|
||||||
|
var actual, sel = $("*", el), selected = function() { actual += 1 };
|
||||||
|
|
||||||
|
actual = 0;
|
||||||
|
el = $("#selectable1").selectable({ autoRefresh: false, selected: selected });
|
||||||
|
sel.hide();
|
||||||
|
drag(1000, 1000);
|
||||||
|
equals(actual, sel.length);
|
||||||
|
el.selectable("destroy");
|
||||||
|
|
||||||
|
actual = 0;
|
||||||
|
sel.show();
|
||||||
|
el = $("#selectable1").selectable({ autoRefresh: true, selected: selected });
|
||||||
|
sel.hide();
|
||||||
|
drag(1000, 1000);
|
||||||
|
equals(actual, 0);
|
||||||
|
sel.show();
|
||||||
|
drag(1000, 1000);
|
||||||
|
equals(actual, sel.length);
|
||||||
|
el.selectable("destroy");
|
||||||
|
sel.show();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("filter", function() {
|
||||||
|
expect(2);
|
||||||
|
el = $("#selectable1");
|
||||||
|
var actual, sel = $("*", el), selected = function() { actual += 1 };
|
||||||
|
|
||||||
|
actual = 0;
|
||||||
|
el = $("#selectable1").selectable({ filter: '.special', selected: selected });
|
||||||
|
drag(1000, 1000);
|
||||||
|
ok(sel.length != 1, "this test assumes more than 1 selectee");
|
||||||
|
equals(actual, 1);
|
||||||
|
el.selectable("destroy");
|
||||||
});
|
});
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
@ -5,8 +5,4 @@
|
|||||||
|
|
||||||
module("selectable: tickets");
|
module("selectable: tickets");
|
||||||
|
|
||||||
test("testname", function() {
|
|
||||||
ok(false, "missing test - untested code is broken code.");
|
|
||||||
});
|
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
Loading…
Reference in New Issue
Block a user