• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.base;
6 
7 import static junit.framework.Assert.assertEquals;
8 
9 import androidx.test.filters.SmallTest;
10 
11 import org.junit.Rule;
12 import org.junit.Test;
13 import org.junit.runner.RunWith;
14 import org.robolectric.annotation.Config;
15 
16 import org.chromium.base.TimeUtils.CurrentThreadTimeMillisTimer;
17 import org.chromium.base.TimeUtils.ElapsedRealtimeMillisTimer;
18 import org.chromium.base.TimeUtils.ElapsedRealtimeNanosTimer;
19 import org.chromium.base.TimeUtils.UptimeMillisTimer;
20 import org.chromium.base.test.BaseRobolectricTestRunner;
21 
22 /** Unit tests for {@link TimeUtils}. */
23 @RunWith(BaseRobolectricTestRunner.class)
24 @Config(manifest = Config.NONE)
25 public class TimeUtilsTest {
26     @Rule public FakeTimeTestRule mFakeTime = new FakeTimeTestRule();
27 
28     @Test
29     @SmallTest
testTimers()30     public void testTimers() {
31         UptimeMillisTimer uptimeTimer = new UptimeMillisTimer();
32         ElapsedRealtimeMillisTimer realtimeTimer = new ElapsedRealtimeMillisTimer();
33         ElapsedRealtimeNanosTimer realtimeTimerNanos = new ElapsedRealtimeNanosTimer();
34         CurrentThreadTimeMillisTimer threadTimeTimer = new CurrentThreadTimeMillisTimer();
35         mFakeTime.advanceMillis(1000);
36         assertEquals(1000, uptimeTimer.getElapsedMillis());
37         assertEquals(1000, realtimeTimer.getElapsedMillis());
38         assertEquals(
39                 1000 * TimeUtils.NANOSECONDS_PER_MILLISECOND, realtimeTimerNanos.getElapsedNanos());
40         assertEquals(1000, threadTimeTimer.getElapsedMillis());
41         mFakeTime.deepSleepMillis(1000);
42         assertEquals(1000, uptimeTimer.getElapsedMillis());
43         assertEquals(2000, realtimeTimer.getElapsedMillis());
44         assertEquals(
45                 2000 * TimeUtils.NANOSECONDS_PER_MILLISECOND, realtimeTimerNanos.getElapsedNanos());
46         assertEquals(1000, threadTimeTimer.getElapsedMillis());
47         mFakeTime.sleepMillis(1000);
48         assertEquals(2000, uptimeTimer.getElapsedMillis());
49         assertEquals(3000, realtimeTimer.getElapsedMillis());
50         assertEquals(
51                 3000 * TimeUtils.NANOSECONDS_PER_MILLISECOND, realtimeTimerNanos.getElapsedNanos());
52         assertEquals(1000, threadTimeTimer.getElapsedMillis());
53     }
54 }
55