| // Copyright 2010 Google Inc. All Rights Reserved. |
| package elemental.js.testing; |
| |
| import com.google.gwt.junit.client.GWTTestCase; |
| import com.google.gwt.user.client.Timer; |
| |
| /** |
| * Tests for {@link MockClock} |
| */ |
| public class MockClockTest extends GWTTestCase { |
| |
| public void testClearTimeout() { |
| MockClock.run(new Runnable() { |
| public void run() { |
| TestTimer t = new TestTimer(); |
| t.schedule(100); |
| t.cancel(); |
| MockClock.tick(101); |
| assertFalse(t.hasRun); |
| } |
| }); |
| } |
| |
| public void testGetCurrentTime() { |
| MockClock.reset(); |
| assertEquals(0.0, MockClock.getCurrentTime()); |
| } |
| |
| public void testGetTimeoutsMade() throws Exception { |
| MockClock.run(new Runnable() { |
| public void run() { |
| TestTimer t = new TestTimer(); |
| assertEquals(0, MockClock.getTimeoutsMade()); |
| t.schedule(100); |
| MockClock.tick(101); |
| assertEquals(1, MockClock.getTimeoutsMade()); |
| } |
| }); |
| } |
| |
| public void testRun() { |
| MockClock.run(new Runnable() { |
| public void run() { |
| TestTimer t = new TestTimer(); |
| t.schedule(100); |
| MockClock.tick(101); |
| assertTrue(t.hasRun); |
| } |
| }); |
| } |
| |
| public void testSetTimeoutDelay() { |
| MockClock.run(new Runnable() { |
| public void run() { |
| MockClock.setTimeoutDelay(30); |
| TestTimer t = new TestTimer() { |
| @Override |
| public void run() { |
| super.run(); |
| assertTrue(MockClock.getCurrentTime() >= 130); |
| } |
| }; |
| assertEquals(0, MockClock.getTimeoutsMade()); |
| t.schedule(100); |
| assertEquals(1, MockClock.getTimeoutsMade()); |
| MockClock.tick(100); |
| assertFalse(t.hasRun); |
| MockClock.tick(30); |
| assertTrue(t.hasRun); |
| } |
| }); |
| } |
| |
| public void testTick() { |
| MockClock.reset(); |
| MockClock.tick(1234.0); |
| assertEquals(1234.0, MockClock.getCurrentTime()); |
| } |
| |
| @Override |
| public String getModuleName() { |
| return "elemental.Elemental"; |
| } |
| |
| private static class TestTimer extends Timer { |
| |
| private boolean hasRun; |
| |
| @Override |
| public void run() { |
| hasRun = true; |
| } |
| } |
| } |