LastMileLoggerTest.java revision 3f2187fdcc3ed55c909cb4cdee589744655d3243
11716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal/* 21716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * Copyright (C) 2017 The Android Open Source Project 31716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * 41716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * Licensed under the Apache License, Version 2.0 (the "License"); 51716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * you may not use this file except in compliance with the License. 61716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * You may obtain a copy of the License at 71716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * 81716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * http://www.apache.org/licenses/LICENSE-2.0 91716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * 101716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * Unless required by applicable law or agreed to in writing, software 111716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * distributed under the License is distributed on an "AS IS" BASIS, 121716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * See the License for the specific language governing permissions and 141716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * limitations under the License. 151716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal */ 161716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 171716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalpackage com.android.server.wifi; 181716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 191716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.junit.Assert.assertEquals; 201716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.junit.Assert.assertTrue; 211716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.mockito.Matchers.anyString; 221716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.mockito.Matchers.contains; 231716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.mockito.Mockito.verify; 241716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.mockito.Mockito.verifyZeroInteractions; 251716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport static org.mockito.Mockito.when; 261716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 271716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport android.os.FileUtils; 281716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport android.test.suitebuilder.annotation.SmallTest; 291716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 301716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport libcore.io.IoUtils; 311716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 321716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport org.junit.Before; 331716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport org.junit.Test; 341716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport org.mockito.Mock; 351716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport org.mockito.MockitoAnnotations; 361716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport org.mockito.Spy; 371716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 381716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport java.io.File; 391716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport java.io.PrintWriter; 401716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalimport java.io.StringWriter; 411716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 421716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal/** 431716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal * Unit tests for {@link LastMileLogger}. 441716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal */ 451716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal@SmallTest 461716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawalpublic class LastMileLoggerTest { 471716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Mock WifiInjector mWifiInjector; 481716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Spy FakeWifiLog mLog; 493f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal private static final long FAKE_CONNECTION_ID = 1; 501716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 511716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Before 521716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void setUp() throws Exception { 531716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal MockitoAnnotations.initMocks(this); 541716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal when(mWifiInjector.makeLog(anyString())).thenReturn(mLog); 551716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceDataFile = File.createTempFile(TRACE_DATA_PREFIX, null); 561716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile = File.createTempFile(TRACE_ENABLE_PREFIX, null); 571716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceReleaseFile = File.createTempFile(TRACE_RELEASE_PREFIX, null); 581716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceDataFile.deleteOnExit(); 591716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile.deleteOnExit(); 601716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceReleaseFile.deleteOnExit(); 611716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mLastMileLogger = new LastMileLogger(mWifiInjector, mTraceDataFile.getPath(), 621716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile.getPath(), mTraceReleaseFile.getPath()); 631716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 641716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 651716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 661716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void ctorDoesNotCrash() throws Exception { 671716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal new LastMileLogger(mWifiInjector, mTraceDataFile.getPath(), mTraceEnableFile.getPath(), 681716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceReleaseFile.getPath()); 691716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal verifyZeroInteractions(mLog); 701716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 711716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 721716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 731716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void ctorDoesNotCrashEvenIfReleaseFileIsMissing() throws Exception { 741716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceReleaseFile.delete(); 751716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal new LastMileLogger(mWifiInjector, mTraceDataFile.getPath(), mTraceEnableFile.getPath(), 761716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceReleaseFile.getPath()); 771716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal verify(mLog).warn(contains("Failed")); 781716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 791716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 801716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 811716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventStartedEnablesTracing() throws Exception { 823f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 833f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 841716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertEquals("1", IoUtils.readFileAsString(mTraceEnableFile.getPath())); 851716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 861716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 871716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 881716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventStartedDoesNotCrashIfEnableFileIsMissing() throws Exception { 891716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile.delete(); 903f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 913f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 921716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 931716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 941716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 951716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventStartedDoesNotCrashOnRepeatedCalls() throws Exception { 963f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 973f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 983f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 993f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1001716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1011716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1021716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1031716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventSucceededDisablesTracing() throws Exception { 1043f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1053f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_SUCCEEDED); 1061716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertEquals("0", IoUtils.readFileAsString(mTraceEnableFile.getPath())); 1071716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1081716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1091716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1101716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventSucceededDoesNotCrashIfEnableFileIsMissing() throws Exception { 1111716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile.delete(); 1123f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1133f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_SUCCEEDED); 1141716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1151716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1161716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1171716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventSucceededDoesNotCrashOnRepeatedCalls() throws Exception { 1183f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1193f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_SUCCEEDED); 1203f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1213f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_SUCCEEDED); 1221716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1231716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1241716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1251716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventFailedDisablesTracing() throws Exception { 1263f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1273f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1281716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertEquals("0", IoUtils.readFileAsString(mTraceEnableFile.getPath())); 1291716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1301716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1311716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1321716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventFailedDoesNotCrashIfEnableFileIsMissing() throws Exception { 1331716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceEnableFile.delete(); 1343f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1353f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1361716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1371716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1381716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1391716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventFailedDoesNotCrashIfDataFileIsMissing() throws Exception { 1401716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceDataFile.delete(); 1413f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1423f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1431716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1441716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1451716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1461716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void connectionEventFailedDoesNotCrashOnRepeatedCalls() throws Exception { 1473f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1483f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1493f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1503f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1511716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1521716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1531716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1541716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpShowsFailureTrace() throws Exception { 1553f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1563f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1571716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect"); 1583f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1593f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1601716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(getDumpString().contains("rdev_connect")); 1611716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1621716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1631716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1641716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpShowsPendingConnectionTrace() throws Exception { 1653f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1663f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1671716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect"); 1681716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(getDumpString().contains("rdev_connect")); 1691716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1701716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1711716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1721716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpShowsLastFailureTraceAndPendingConnectionTrace() throws Exception { 1733f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1743f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1751716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect try #1"); 1763f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1773f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1783f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1793f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1801716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect try #2"); 1811716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1821716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal String dumpString = getDumpString(); 1831716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect try #1")); 1841716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect try #2")); 1851716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 1861716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 1871716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 1881716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpShowsLastFailureTraceAndCurrentConnectionTrace() throws Exception { 1893f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1903f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1911716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect try #1"); 1923f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1933f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 1943f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1953f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 1961716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect try #2"); 1973f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 1983f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_SUCCEEDED); 1991716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2001716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal String dumpString = getDumpString(); 2011716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect try #1")); 2021716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect try #2")); 2031716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2041716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2051716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 2061716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpDoesNotClearLastFailureData() throws Exception { 2073f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 2083f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 2091716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect"); 2103f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 2113f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_FAILED); 2121716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2131716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal getDumpString(); 2141716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal String dumpString = getDumpString(); 2151716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect")); 2161716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2171716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2181716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 2191716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpDoesNotClearPendingConnectionTrace() throws Exception { 2203f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal mLastMileLogger.reportConnectionEvent( 2213f2187fdcc3ed55c909cb4cdee589744655d3243mukesh agrawal FAKE_CONNECTION_ID, BaseWifiDiagnostics.CONNECTION_EVENT_STARTED); 2221716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal FileUtils.stringToFile(mTraceDataFile.getPath(), "rdev_connect"); 2231716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2241716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal getDumpString(); 2251716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal String dumpString = getDumpString(); 2261716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal assertTrue(dumpString.contains("rdev_connect")); 2271716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2281716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2291716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 2301716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpDoesNotCrashIfDataFileIsEmpty() throws Exception { 2311716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal getDumpString(); 2321716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2331716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2341716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal @Test 2351716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal public void dumpDoesNotCrashIfDataFileIsMissing() throws Exception { 2361716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mTraceDataFile.delete(); 2371716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal getDumpString(); 2381716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2391716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2401716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private static final String TRACE_DATA_PREFIX = "last-mile-logger-trace-data"; 2411716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private static final String TRACE_ENABLE_PREFIX = "last-mile-logger-trace-enable"; 2421716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private static final String TRACE_RELEASE_PREFIX = "last-mile-logger-trace-release"; 2431716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private LastMileLogger mLastMileLogger; 2441716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private File mTraceDataFile; 2451716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private File mTraceEnableFile; 2461716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private File mTraceReleaseFile; 2471716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal 2481716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal private String getDumpString() { 2491716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal StringWriter sw = new StringWriter(); 2501716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal PrintWriter pw = new PrintWriter(sw); 2511716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal mLastMileLogger.dump(pw); 2521716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal return sw.toString(); 2531716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal } 2541716aa7ad8e00a41980c4120c2104b25fe36630emukesh agrawal} 255