Index: content/public/android/javatests/src/org/chromium/content/browser/VSyncMonitorTest.java |
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/VSyncMonitorTest.java b/content/public/android/javatests/src/org/chromium/content/browser/VSyncMonitorTest.java |
index 65153f71824148895982a7b5ddc08e9c1292c15b..7b34461316b3fcac311907fe7269a45144d2a635 100644 |
--- a/content/public/android/javatests/src/org/chromium/content/browser/VSyncMonitorTest.java |
+++ b/content/public/android/javatests/src/org/chromium/content/browser/VSyncMonitorTest.java |
@@ -127,4 +127,21 @@ |
assertTrue(monitor.getVSyncPeriodInMicroseconds() < 1000000 / 30); |
} |
} |
+ |
+ @MediumTest |
+ public void testVSyncActivationFromIdle() throws InterruptedException { |
+ // Check that the vsync period roughly matches the timestamps that the monitor generates. |
+ VSyncDataCollector collector = new VSyncDataCollector(1); |
+ VSyncMonitor monitor = createVSyncMonitor(collector); |
+ |
+ requestVSyncMonitorUpdate(monitor); |
+ collector.waitTillDone(); |
+ assertTrue(collector.isDone()); |
+ |
+ long period = monitor.getVSyncPeriodInMicroseconds() / 1000; |
+ long delay = SystemClock.uptimeMillis() - collector.mLastVSyncCpuTimeMillis; |
+ |
+ // The VSync should have activated immediately instead of at the next real vsync. |
+ assertTrue(delay < period); |
+ } |
} |