// intentionally attach to same function to test // delegate naming this.del1 = new LzDelegate( this, "execdel" ); this.del2 = new LzDelegate( this, "execdel" ); assertEquals(0, lz.Timer.countTimers(tt1.del1), "before add"); var t1 = lz.Timer.addTimer(tt1.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt1.del1), "after add"); var td1 = lz.Timer.removeTimer(tt1.del1); assertEquals(0, lz.Timer.countTimers(tt1.del1), "after remove"); assertEquals(t1, td1, "same timer"); this.addTest("testAddRemove"); // test whether we get confused between delegates. Remove in // opposite order to avoid false positive due to FIFI policy. assertEquals(0, lz.Timer.countTimers(tt2.del1), "before add 1"); assertEquals(0, lz.Timer.countTimers(tt2.del2), "before add 2"); var t1 = lz.Timer.addTimer(tt2.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt2.del1), "after add 1,1"); assertEquals(0, lz.Timer.countTimers(tt2.del2), "after add 1,2"); var t2 = lz.Timer.addTimer(tt2.del2, 10000); assertEquals(1, lz.Timer.countTimers(tt2.del1), "after add 2,1"); assertEquals(1, lz.Timer.countTimers(tt2.del2), "after add 2,2"); var td2 = lz.Timer.removeTimer(tt2.del2); assertEquals(1, lz.Timer.countTimers(tt2.del1), "after remove 2,1"); assertEquals(0, lz.Timer.countTimers(tt2.del2), "after remove 2,2"); assertEquals(t2, td2, "same timer 2"); var td1 = lz.Timer.removeTimer(tt2.del1); assertEquals(0, lz.Timer.countTimers(tt2.del1), "after remove 1,1"); assertEquals(0, lz.Timer.countTimers(tt2.del2), "after remove 1,2"); assertEquals(t1, td1, "same timer 1"); this.addTest("testAddRemoveTwoDelegates"); assertEquals(0, lz.Timer.countTimers(tt3.del1), "before add"); var t1 = lz.Timer.addTimer(tt3.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt3.del1), "after add"); var t2 = lz.Timer.resetTimer(tt3.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt3.del1), "after reset"); var td1 = lz.Timer.removeTimer(tt3.del1); assertEquals(0, lz.Timer.countTimers(tt3.del1), "after remove"); assertEquals(t2, td1, "same timer"); this.addTest("testAddReset"); // test order of removal. assertEquals(0, lz.Timer.countTimers(tt4.del1), "before add"); var t1 = lz.Timer.addTimer(tt4.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt4.del1), "after add 1"); var t2 = lz.Timer.addTimer(tt4.del1, 10000); assertEquals(2, lz.Timer.countTimers(tt4.del1), "after add 2"); var td1 = lz.Timer.removeTimer(tt4.del1); assertEquals(1, lz.Timer.countTimers(tt4.del1), "after remove 1"); assertEquals(t1, td1, "same timer 1"); var td2 = lz.Timer.removeTimer(tt4.del1); assertEquals(0, lz.Timer.countTimers(tt4.del1), "after remove 2"); assertEquals(t2, td2, "same timer 2"); this.addTest("testMultiAddRemove2"); // test order of removal. assertEquals(0, lz.Timer.countTimers(tt4.del1), "before add"); var t1 = lz.Timer.addTimer(tt4.del1, 10000); assertEquals(1, lz.Timer.countTimers(tt4.del1), "after add 1"); var t2 = lz.Timer.addTimer(tt4.del1, 10000); assertEquals(2, lz.Timer.countTimers(tt4.del1), "after add 2"); var t3 = lz.Timer.addTimer(tt4.del1, 10000); assertEquals(3, lz.Timer.countTimers(tt4.del1), "after add 3"); var td1 = lz.Timer.removeTimer(tt4.del1); assertEquals(2, lz.Timer.countTimers(tt4.del1), "after remove 1"); assertEquals(t1, td1, "same timer 1"); var td2 = lz.Timer.removeTimer(tt4.del1); assertEquals(1, lz.Timer.countTimers(tt4.del1), "after remove 2"); assertEquals(t2, td2, "same timer 2"); var td3 = lz.Timer.removeTimer(tt4.del1); assertEquals(0, lz.Timer.countTimers(tt4.del1), "after remove 3"); assertEquals(t3, td3, "same timer 3"); this.addTest("testMultiAddRemove3");