summaryrefslogtreecommitdiffstats
path: root/chromium/base/android/junit/src/org/chromium/base/jank_tracker/JankMetricUMARecorderTest.java
diff options
context:
space:
mode:
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.java54
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);
+ }
+}