diff options
Diffstat (limited to 'chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java')
-rw-r--r-- | chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java b/chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java new file mode 100644 index 00000000000..c3167888ac3 --- /dev/null +++ b/chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java @@ -0,0 +1,54 @@ +// Copyright 2021 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.base.jank_tracker; + +import static org.mockito.Mockito.verify; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.annotation.Config; + +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.util.JniMocker; + +/** + * Tests for JankMetricUMARecorder. + */ +@RunWith(BaseRobolectricTestRunner.class) +@Config(manifest = Config.NONE) +public class JankMetricUMARecorderTest { + @Rule + public JniMocker mocker = new JniMocker(); + + @Mock + JankMetricUMARecorder.Natives mNativeMock; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mocker.mock(JankMetricUMARecorderJni.TEST_HOOKS, mNativeMock); + } + + @Test + public void testRecordMetricsToNative() { + long[] timestampsNs = new long[] {1_000_000_000L, 2_000_000_000L, 3_000_000_000L}; + long[] durationsNs = new long[] {5_000_000L, 8_000_000L, 30_000_000L}; + long[] jankBurstsNs = new long[] {30_000L}; + int missedFrames = 3; + + JankMetrics metric = new JankMetrics(timestampsNs, durationsNs, jankBurstsNs, missedFrames); + + JankMetricUMARecorder.recordJankMetricsToUMA(metric, JankScenario.OMNIBOX_FOCUS); + + // Ensure that the relevant fields are sent down to native. + verify(mNativeMock) + .recordJankMetrics( + "OmniboxFocus", timestampsNs, durationsNs, jankBurstsNs, missedFrames); + } +} |