1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
test("Properly executed", function() {
// Create one once() call.
$('#test1 span').once(function() {
$(this).data('test1', 'foobar');
});
var data = $('#test1 span').data('test1');
ok(data === "foobar");
});
test("Called only once", function() {
// Count the number of times once() was called.
$('#test2 span').data('count', 0);
// Create the once() callback.
var callback = function() {
var count = $('#test2 span').data('count');
count++;
$('#test2 span').data('count', count);
};
// Call once() a bunch of times.
for (var i = 0; i < 10; i++) {
$('#test2 span').once('count', callback);
}
// Verify that it was only called once.
var count = $('#test2 span').data('count');
ok(count === 1);
});
test("Apply the class correctly", function() {
// Verify that the element starts without the class.
var hasClass = $('#test3 span').hasClass('test3-processed');
ok(!hasClass, 'Processed class not applied in the beginning.');
// Create one once() call.
$('#test3 span').once('test3', function() {
// Do nothing.
});
// Verify the class is applied.
hasClass = $('#test3 span').hasClass('test3-processed');
ok(hasClass, 'The processed class is properly applied after once().');
});
test("Remove the class correctly", function() {
// Create one once() call.
$('#test4 span').once('test4', function() {
// Do nothing.
});
// Verify the class is applied.
var hasClass = $('#test4 span').hasClass('test4-processed');
ok(hasClass, 'The processed class is properly applied after once().');
// Remove the once property.
$('#test4 span').removeOnce('test4');
hasClass = $('#test4 span').hasClass('test4-processed');
ok(!hasClass, 'The processed class is properly removed when called removeOnce().');
});
|