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