From c76ca765c3ee306ed2ccdc0a71e79e1dcc028715 Mon Sep 17 00:00:00 2001 From: Sailesh Nepal Date: Thu, 14 Apr 2016 20:38:40 -0700 Subject: Add LatencyReport for every call [This is a manual cherry pick from ub-contactsdialer-b-dev.] This CL tracks latency for all incoming and outgoing calls. We now measure the following latency values: - time for a connection service to add a call to telecom. - time for telecom to process a call - time for the dialer app to launch and have a call added to it by telecom. - time for dialer to check if a call should be blocked. - time to show a notification about the call (incoming only) - time it took to show the InCallUI (only if HUN wasn't displayed) Change-Id: I08685d312cbaefc564feb4119350da71df9b9e6c --- .../com/android/incallui/LatencyReportTest.java | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 InCallUI/tests/src/com/android/incallui/LatencyReportTest.java (limited to 'InCallUI/tests') diff --git a/InCallUI/tests/src/com/android/incallui/LatencyReportTest.java b/InCallUI/tests/src/com/android/incallui/LatencyReportTest.java new file mode 100644 index 000000000..9d8a5131b --- /dev/null +++ b/InCallUI/tests/src/com/android/incallui/LatencyReportTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui; + +import static com.android.incallui.LatencyReport.INVALID_TIME; + +import android.os.Bundle; +import android.telecom.Connection; +import android.test.AndroidTestCase; +import android.test.suitebuilder.annotation.SmallTest; + +import java.util.ArrayList; +import java.util.Arrays; + +public class LatencyReportTest extends AndroidTestCase { + public void testEmptyInit() { + LatencyReport report = new LatencyReport(); + assertEquals(INVALID_TIME, report.getCreatedTimeMillis()); + assertEquals(INVALID_TIME, report.getTelecomRoutingStartTimeMillis()); + assertEquals(INVALID_TIME, report.getTelecomRoutingEndTimeMillis()); + assertTrue(report.getCallAddedTimeMillis() > 0); + } + + public void testCallBlocking() { + LatencyReport report = new LatencyReport(); + assertEquals(INVALID_TIME, report.getCallBlockingTimeMillis()); + report.onCallBlockingDone(); + assertTrue(report.getCallBlockingTimeMillis() > 0); + } + + public void testNotificationShown() { + LatencyReport report = new LatencyReport(); + assertEquals(INVALID_TIME, report.getCallNotificationTimeMillis()); + report.onNotificationShown(); + assertTrue(report.getCallNotificationTimeMillis() > 0); + } + + public void testInCallUiShown() { + LatencyReport report = new LatencyReport(); + assertEquals(INVALID_TIME, report.getInCallUiShownTimeMillis()); + report.onInCallUiShown(false); + assertTrue(report.getInCallUiShownTimeMillis() > 0); + assertFalse(report.getDidDisplayHeadsUpNotification()); + } +} -- cgit v1.2.3