1 var common = require('../common');
2 var assert = require('assert');
4 var WINDOW = 200; // why is does this need to be so big?
6 var interval_count = 0;
7 var setTimeout_called = false;
9 // check that these don't blow up.
13 assert.equal(true, setTimeout instanceof Function);
14 var starttime = new Date;
15 setTimeout(function() {
16 var endtime = new Date;
18 var diff = endtime - starttime;
20 console.error('diff: ' + diff);
22 assert.equal(true, 1000 - WINDOW < diff && diff < 1000 + WINDOW);
23 setTimeout_called = true;
26 // this timer shouldn't execute
27 var id = setTimeout(function() { assert.equal(true, false); }, 500);
30 setInterval(function() {
32 var endtime = new Date;
34 var diff = endtime - starttime;
36 console.error('diff: ' + diff);
38 var t = interval_count * 1000;
40 assert.equal(true, t - WINDOW < diff && diff < t + WINDOW);
42 assert.equal(true, interval_count <= 3);
43 if (interval_count == 3)
49 setTimeout(function(param) {
50 assert.equal('test param', param);
51 }, 1000, 'test param');
53 var interval_count2 = 0;
54 setInterval(function(param) {
56 assert.equal('test param', param);
58 if (interval_count2 == 3)
60 }, 1000, 'test param');
64 setTimeout(function(param1, param2) {
65 assert.equal('param1', param1);
66 assert.equal('param2', param2);
67 }, 1000, 'param1', 'param2');
69 var interval_count3 = 0;
70 setInterval(function(param1, param2) {
72 assert.equal('param1', param1);
73 assert.equal('param2', param2);
75 if (interval_count3 == 3)
77 }, 1000, 'param1', 'param2');
79 // setInterval(cb, 0) should be called multiple times.
81 var interval4 = setInterval(function() {
82 if (++count4 > 10) clearInterval(interval4);
86 // we should be able to clearTimeout multiple times without breakage.
87 var expectedTimeouts = 3;
93 var w = setTimeout(t, 200);
94 var x = setTimeout(t, 200);
95 var y = setTimeout(t, 200);
98 var z = setTimeout(t, 200);
102 process.on('exit', function() {
103 assert.equal(true, setTimeout_called);
104 assert.equal(3, interval_count);
105 assert.equal(11, count4);
106 assert.equal(0, expectedTimeouts, 'clearTimeout cleared too many timeouts');