summaryrefslogtreecommitdiffstats
path: root/test/test.js
blob: c93cdfd61262d2f9d152346905422466db73b987 (plain)
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().');
});