~jstys-z/helioviewer.org/timeline

« back to all changes in this revision

Viewing changes to lib/jquery/jquery.ui-1.6rc2/tests/selectable.js

  • Committer: V. Keith Hughitt
  • Date: 2009-03-26 19:20:57 UTC
  • Revision ID: hughitt1@kore-20090326192057-u0x8rf8sf5lmmnwh
nightly build 03-26-2009: Using alpha-channel JPEG 2000 dataset

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * selectable unit tests
3
 
 */
4
 
(function($) {
5
 
//
6
 
// Selectable Test Helper Functions
7
 
//
8
 
var el;
9
 
 
10
 
var drag = function(dx, dy) {
11
 
        var off = el.offset(), pos = { clientX: off.left, clientY: off.top };
12
 
        el.simulate("mousedown", pos);
13
 
        $(document).simulate("mousemove", pos);
14
 
        pos.clientX += dx;
15
 
        pos.clientY += dy;
16
 
        $(document).simulate("mousemove", pos);
17
 
        $(document).simulate("mouseup", pos);
18
 
}
19
 
 
20
 
var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); }
21
 
 
22
 
var margin = function(el, side) { return parseInt(el.css('margin-' + side)); }
23
 
 
24
 
// Selectable Tests
25
 
module("selectable");
26
 
 
27
 
test("init", function() {
28
 
        expect(6);
29
 
 
30
 
        $("#selectable1").selectable().remove();
31
 
        ok(true, '.selectable() called on element');
32
 
 
33
 
        $([]).selectable().remove();
34
 
        ok(true, '.selectable() called on empty collection');
35
 
 
36
 
        $("<div/>").selectable().remove();
37
 
        ok(true, '.selectable() called on disconnected DOMElement');
38
 
 
39
 
        $("<div/>").selectable().selectable("foo").remove();
40
 
        ok(true, 'arbitrary method called after init');
41
 
 
42
 
        el = $("<div/>").selectable()
43
 
        var foo = el.data("foo.selectable");
44
 
        el.remove();
45
 
        ok(true, 'arbitrary option getter after init');
46
 
 
47
 
        $("<div/>").selectable().data("foo.selectable", "bar").remove();
48
 
        ok(true, 'arbitrary option setter after init');
49
 
});
50
 
 
51
 
test("destroy", function() {
52
 
        expect(6);
53
 
 
54
 
        $("#selectable1").selectable().selectable("destroy").remove();
55
 
        ok(true, '.selectable("destroy") called on element');
56
 
 
57
 
        $([]).selectable().selectable("destroy").remove();
58
 
        ok(true, '.selectable("destroy") called on empty collection');
59
 
 
60
 
        $("<div/>").selectable().selectable("destroy").remove();
61
 
        ok(true, '.selectable("destroy") called on disconnected DOMElement');
62
 
 
63
 
        $("<div/>").selectable().selectable("destroy").selectable("foo").remove();
64
 
        ok(true, 'arbitrary method called after destroy');
65
 
 
66
 
        el = $("<div/>").selectable();
67
 
        var foo = el.selectable("destroy").data("foo.selectable");
68
 
        el.remove();
69
 
        ok(true, 'arbitrary option getter after destroy');
70
 
 
71
 
        $("<div/>").selectable().selectable("destroy").data("foo.selectable", "bar").remove();
72
 
        ok(true, 'arbitrary option setter after destroy');
73
 
});
74
 
 
75
 
test("defaults", function() {
76
 
        el = $('#selectable1').selectable();
77
 
        var defaults = {
78
 
                autoRefresh: true,
79
 
                filter: '*'
80
 
        };
81
 
        $.each(defaults, function(key, val) {
82
 
                var actual = el.data(key + ".selectable"), expected = val,
83
 
                        method = (expected && expected.constructor == Object) ?
84
 
                                compare2 : equals;
85
 
                method(actual, expected, key);
86
 
        });
87
 
        el.remove();
88
 
});
89
 
 
90
 
module("selectable: Options");
91
 
 
92
 
test("autoRefresh", function() {
93
 
        expect(3);
94
 
        el = $("#selectable1");
95
 
        var actual, sel = $("*", el), selected = function() { actual += 1 };
96
 
 
97
 
        actual = 0;
98
 
        el = $("#selectable1").selectable({ autoRefresh: false, selected: selected });
99
 
        sel.hide();
100
 
        drag(1000, 1000);
101
 
        equals(actual, sel.length);
102
 
        el.selectable("destroy");
103
 
 
104
 
        actual = 0;
105
 
        sel.show();
106
 
        el = $("#selectable1").selectable({ autoRefresh: true,  selected: selected });
107
 
        sel.hide();
108
 
        drag(1000, 1000);
109
 
        equals(actual, 0);
110
 
        sel.show();
111
 
        drag(1000, 1000);
112
 
        equals(actual, sel.length);
113
 
        el.selectable("destroy");
114
 
        sel.show();
115
 
});
116
 
 
117
 
test("filter", function() {
118
 
        expect(2);
119
 
        el = $("#selectable1");
120
 
        var actual, sel = $("*", el), selected = function() { actual += 1 };
121
 
 
122
 
        actual = 0;
123
 
        el = $("#selectable1").selectable({ filter: '.special', selected: selected });
124
 
        drag(1000, 1000);
125
 
        ok(sel.length != 1, "this test assumes more than 1 selectee");
126
 
        equals(actual, 1);
127
 
        el.selectable("destroy");
128
 
});
129
 
 
130
 
module("selectable: Methods");
131
 
 
132
 
test("disable", function() {
133
 
        expect(2);
134
 
        var fired = false;
135
 
 
136
 
        el = $("#selectable1");
137
 
        el.selectable({
138
 
                disabled: false,
139
 
                start: function() { fired = true; }
140
 
        });
141
 
        el.simulate("drag", 20, 20);
142
 
        equals(fired, true, "start fired");
143
 
        el.selectable("disable");
144
 
        fired = false;
145
 
        el.simulate("drag", 20, 20);
146
 
        equals(fired, false, "start fired");
147
 
        el.selectable("destroy");
148
 
});
149
 
 
150
 
test("enable", function() {
151
 
        expect(2);
152
 
        var fired = false;
153
 
 
154
 
        el = $("#selectable1");
155
 
        el.selectable({
156
 
                disabled: true,
157
 
                start: function() { fired = true; }
158
 
        });
159
 
        el.simulate("drag", 20, 20);
160
 
        equals(fired, false, "start fired");
161
 
        el.selectable("enable");
162
 
        el.simulate("drag", 20, 20);
163
 
        equals(fired, true, "start fired");
164
 
        el.selectable("destroy");
165
 
});
166
 
 
167
 
test("toggle", function() {
168
 
        expect(2);
169
 
 
170
 
        el = $("#selectable1").selectable({ disabled: true }).selectable("toggle");
171
 
        equals(el.data("disabled.selectable"), false, "disabled -> enabled");
172
 
        el.selectable("destroy");
173
 
 
174
 
        el = $("#selectable1").selectable({ disabled: false }).selectable("toggle");
175
 
        equals(el.data("disabled.selectable"), true, "enabled -> disabled");
176
 
        el.selectable("destroy");
177
 
});
178
 
 
179
 
module("selectable: Callbacks");
180
 
 
181
 
test("start", function() {
182
 
        expect(2);
183
 
        el = $("#selectable1");
184
 
        el.selectable({
185
 
                start: function(ev, ui) {
186
 
                        ok(true, "drag fired start callback");
187
 
                        equals(this, el[0], "context of callback");
188
 
                }
189
 
        });
190
 
        el.simulate("drag", 20, 20);
191
 
});
192
 
 
193
 
test("stop", function() {
194
 
        expect(2);
195
 
        el = $("#selectable1");
196
 
        el.selectable({
197
 
                start: function(ev, ui) {
198
 
                        ok(true, "drag fired stop callback");
199
 
                        equals(this, el[0], "context of callback");
200
 
                }
201
 
        });
202
 
        el.simulate("drag", 20, 20);
203
 
});
204
 
 
205
 
module("selectable: Tickets");
206
 
 
207
 
})(jQuery);