1abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato/* 2abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Copyright (C) 2016 The Android Open Source Project 3abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * 4abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 5abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * you may not use this file except in compliance with the License. 6abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * You may obtain a copy of the License at 7abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * 8abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * http://www.apache.org/licenses/LICENSE-2.0 9abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * 10abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Unless required by applicable law or agreed to in writing, software 11abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 12abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * See the License for the specific language governing permissions and 14abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * limitations under the License. 15abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 16abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 17abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratopackage com.android.internal.os; 18abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 19abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratoimport android.os.BatteryStats; 20abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratoimport android.os.Parcel; 2198f0d4692c6634ff5d4ffbbc150d405da66c4c38Adam Lesinskiimport android.support.test.filters.SmallTest; 22abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 23abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratoimport junit.framework.Assert; 24abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratoimport junit.framework.TestCase; 25abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 26abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato/** 27abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Provides test cases for android.os.BatteryStats. 28abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 29abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onoratopublic class BatteryStatsServTest extends TestCase { 30abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato private static final String TAG = "BatteryStatsServTest"; 31abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 32abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public static class TestServ extends BatteryStatsImpl.Uid.Pkg.Serv { 33abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ(MockBatteryStatsImpl bsi) { 34abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato super(bsi); 35abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 36abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 37abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato void populate() { 38abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mStartTime = 1010; 39abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mRunningSince = 2021; 40abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mRunning = true; 41abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mStarts = 4042; 42abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLaunchedTime = 5053; 43abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLaunchedSince = 6064; 44abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLaunched = true; 45abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLaunches = 8085; 46abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLoadedStartTime = 9096; 47abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLoadedStarts = 10017; 48abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLoadedLaunches = 11118; 49abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLastStartTime = 12219; 50abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLastStarts = 13310; 51abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLastLaunches = 14411; 52abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mUnpluggedStartTime = 15512; 53abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mUnpluggedStarts = 16613; 54abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mUnpluggedLaunches = 17714; 55abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 56abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 57abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getStartTime() { 58abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mStartTime; 59abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 60abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 61abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getRunningSince() { 62abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mRunningSince; 63abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 64abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 65abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato void setRunning(boolean val) { 66abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mRunning = val; 67abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 68abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 69abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato boolean getRunning() { 70abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mRunning; 71abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 72abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 73abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getStarts() { 74abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mStarts; 75abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 76abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 77abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getLaunchedTime() { 78abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLaunchedTime; 79abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 80abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 81abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getLaunchedSince() { 82abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLaunchedSince; 83abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 84abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 85abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato void setLaunched(boolean val) { 86abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato mLaunched = val; 87abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 88abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 89abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato boolean getLaunched() { 90abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLaunched; 91abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 92abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 93abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getLaunches() { 94abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLaunches; 95abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 96abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 97abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getLoadedStartTime() { 98abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLoadedStartTime; 99abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 100abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 101abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getLoadedStarts() { 102abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLoadedStarts; 103abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 104abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 105abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getLoadedLaunches() { 106abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLoadedLaunches; 107abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 108abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 109abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getLastStartTime() { 110abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLastStartTime; 111abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 112abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 113abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getLastStarts() { 114abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLastStarts; 115abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 116abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 117abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getLastLaunches() { 118abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mLastLaunches; 119abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 120abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 121abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato long getUnpluggedStartTime() { 122abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mUnpluggedStartTime; 123abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 124abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 125abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getUnpluggedStarts() { 126abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mUnpluggedStarts; 127abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 128abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 129abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato int getUnpluggedLaunches() { 130abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return mUnpluggedLaunches; 131abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 132abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 133abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 134abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 135abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test that the constructor and detach methods touch the time bast observer list. 136abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 137abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 138abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testConstructAndDetach() throws Exception { 139abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 140abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 141abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 142abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(bsi.getOnBatteryTimeBase().hasObserver(serv)); 143abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 144abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.detach(); 145abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(bsi.getOnBatteryTimeBase().hasObserver(serv)); 146abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 147abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 148abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 149abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test OnTimeStarted 150abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 151abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 152abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testOnTimeStarted() throws Exception { 153abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 154abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 155abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 156abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 157abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 158abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.onTimeStarted(111111, 20000, 222222); 159abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(18989, serv.getUnpluggedStartTime()); 160abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getUnpluggedStarts()); 161abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getUnpluggedLaunches()); 162abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 163abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 164abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(false); 165abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.onTimeStarted(111111, 20000, 222222); 166abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getUnpluggedStartTime()); 167abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getUnpluggedStarts()); 168abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getUnpluggedLaunches()); 169abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 170abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 171abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 172abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test parceling and unparceling. 173abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 174abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 175abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testParceling() throws Exception { 176abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 177abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ orig = new TestServ(bsi); 178abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato orig.populate(); 179abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 180abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Parcel parcel = Parcel.obtain(); 181abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato orig.writeToParcelLocked(parcel); 182abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 183abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato parcel.setDataPosition(0); 184abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 185abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 186abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.readFromParcelLocked(parcel); 187abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 188abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 189abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 190abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 191abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 192abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 193abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 194abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 195abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 196abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 197abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 198abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 199abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(0, serv.getLastStartTime()); 200abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(0, serv.getLastStarts()); 201abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(0, serv.getLastLaunches()); 202abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 203abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 204abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 205abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 206abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 207abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 208abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getLaunchTimeToNow() 209abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 210abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 211abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testLaunchTimeToNow() throws Exception { 212abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 213abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 214abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 215abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 216abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(true); 217abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8989, serv.getLaunchTimeToNowLocked(10000)); 218abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 219abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 220abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(false); 221abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchTimeToNowLocked(10000)); 222abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 223abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 224abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 225abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 226abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getStartTimeToNow() 227abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 228abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 229abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStartTimeToNow() throws Exception { 230abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 231abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 232abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 233abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 234abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 235abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(18989, serv.getStartTimeToNowLocked(20000)); 236abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 237abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 238abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(false); 239abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTimeToNowLocked(20000)); 240abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 241abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 242abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 243abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test startLaunchedLocked while not previously launched 244abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 245abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 246e1acd636d492f5c828a8abaccfd2fed185ddc0d6Joe Onorato public void testStartLaunchedLockedWhileLaunched() throws Exception { 247abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 248abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 249abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 250abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 251abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 252abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 253abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 254abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 255abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 256abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 257abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(true); 258abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.startLaunchedLocked(); 259abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 260abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No changes 261abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 262abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 263abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 264abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 265abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 266abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 267abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 268abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 269abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 270abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 271abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 272abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 273abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 274abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 275abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 276abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 277abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 278abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 279abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 280abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 281abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test startLaunchedLocked while previously launched 282abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 283abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 284e1acd636d492f5c828a8abaccfd2fed185ddc0d6Joe Onorato public void testStartLaunchedLockedWhileNotLaunched() throws Exception { 285abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 286abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 287abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 288abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 289abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 290abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 291abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 292abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 293abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 294abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 295abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(false); 296abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.startLaunchedLocked(); 297abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 298abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 299abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 300abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 301abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 302abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(777777L, serv.getLaunchedSince()); // <-- changed 303abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); // <-- changed 304abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8086, serv.getLaunches()); // <-- changed 305abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 306abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 307abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 308abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 309abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 310abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 311abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 312abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 313abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 314abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 315abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 316abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 317abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test stopLaunchedLocked when not previously launched. 318abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 319abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 320abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStopLaunchedLockedWhileNotLaunched() throws Exception { 321abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 322abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 323abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 324abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 325abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 326abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 327abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 328abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 329abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 330abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(false); 331abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 332abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.stopLaunchedLocked(); 333abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 334abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No changes 335abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 336abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 337abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 338abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 339abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 340abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 341abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getLaunched()); 342abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 343abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 344abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 345abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 346abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 347abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 348abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 349abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 350abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 351abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 352abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 353abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 354abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 355abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test stopLaunchedLocked when previously launched, with measurable time between 356abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * start and stop. 357abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 358abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 359abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStopLaunchedLockedWhileLaunchedNormal() throws Exception { 360abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 361abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 362abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 363abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 364abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 365abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 366abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 367abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 368abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 369abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(true); 370abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 371abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.stopLaunchedLocked(); 372abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 373abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 374abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 375abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 376abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 377abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(777777L-6064+5053, serv.getLaunchedTime()); // <-- changed 378abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 379abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getLaunched()); 380abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 381abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 382abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 383abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 384abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 385abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 386abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 387abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 388abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 389abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 390abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 391abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 392abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 393abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test stopLaunchedLocked when previously launched, with no measurable time between 394abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * start and stop. 395abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 396abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 397abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStopLaunchedLockedWhileLaunchedTooQuick() throws Exception { 398abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 399abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 400abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 401abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 6064L; 402abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 403abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 404abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 405abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 406abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 407abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setLaunched(true); 408abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 409abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.stopLaunchedLocked(); 410abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 411abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 412abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 413abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 414abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 415abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 416abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 417abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getLaunched()); 418abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085-1, serv.getLaunches()); // <-- changed 419abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 420abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 421abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 422abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 423abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 424abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 425abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 426abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 427abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 428abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 429abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 430abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 431abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test startRunningLocked while previously running 432abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 433abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 434abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStartRunningLockedWhileRunning() throws Exception { 435abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 436abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 437abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 438abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 439abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 440abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 441abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 442abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 443abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 444abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 445abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 446abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.startRunningLocked(); 447abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 448abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // no change 449abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 450abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 451abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 452abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 453abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 454abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 455abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 456abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 457abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 458abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 459abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 460abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 461abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 462abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 463abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 464abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 465abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 466abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 467abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 468abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 469abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test startRunningLocked while not previously launched 470abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 471abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 472abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStartRunningLockedWhileNotRunning() throws Exception { 473abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 474abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 475abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 476abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 477abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 478abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 479abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 480abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 481abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 482abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(false); 483abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 484abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.startRunningLocked(); 485abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 486abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 487abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(777777L, serv.getRunningSince()); 488abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 489abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042+1, serv.getStarts()); 490abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 491abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 492abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 493abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 494abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 495abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 496abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 497abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 498abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 499abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 500abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 501abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 502abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 503abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 504abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 505abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 506abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test stopRunningLocked when previously launched, with measurable time between 507abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * start and stop. 508abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 509abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 510abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStopRunningLockedWhileRunningNormal() throws Exception { 511abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 512abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 513abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 514abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 777777L; 515abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 516abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 517abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 518abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 519abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 520abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 521abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 522abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.stopRunningLocked(); 523abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 524abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(777777L-2021+1010, serv.getStartTime()); // <-- changed 525abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 526abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getRunning()); // <-- changed 527abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 528abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 529abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 530abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 531abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 532abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 533abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 534abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 535abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 536abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 537abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 538abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 539abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 540abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 541abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 542abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 543abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 544abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test stopRunningLocked when previously launched, with measurable time between 545abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * start and stop. 546abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 547abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 548abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testStopRunningLockedWhileRunningTooQuick() throws Exception { 549abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl() { 550abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @Override 551abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public long getBatteryUptimeLocked() { 552abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato return 2021; 553abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 554abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato }; 555abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 556abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 557abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 558abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 559abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 560abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.stopRunningLocked(); 561abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 562abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 563abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 564abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getRunning()); // <-- changed 565abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042-1, serv.getStarts()); // <-- changed 566abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 567abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 568abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 569abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 570abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 571abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 572abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 573abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 574abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 575abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 576abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 577abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 578abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 579abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 580abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 581abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 582abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test that getBatteryStats returns the BatteryStatsImpl passed in to the contstructor. 583abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 584abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 585abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testGetBatteryStats() throws Exception { 586abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 587abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 588abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 589abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(bsi, serv.getBatteryStats()); 590abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 591abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 592abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 593abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getLaunches 594abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 595abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 596abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testGetLaunches() throws Exception { 597abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 598abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 599abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 600abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 601abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches(BatteryStats.STATS_SINCE_CHARGED)); 602abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085-11118, serv.getLaunches(BatteryStats.STATS_CURRENT)); 603abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085-17714, serv.getLaunches(BatteryStats.STATS_SINCE_UNPLUGGED)); 604abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 605abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No change to fields 606abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 607abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 608abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 609abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 610abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 611abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 612abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 613abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 614abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 615abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 616abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 617abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 618abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 619abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 620abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 621abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 622abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 623abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 624abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 625abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 626abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getStartTime while running 627abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 628abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 629abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testGetStartTimeRunning() throws Exception { 630abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 631abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 632abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 633abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(true); 634abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 635abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato final long startTimeToNow = 1010 + 20000 - 2021; 636abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 637abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow, 638abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_SINCE_CHARGED)); 639abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow-9096, 640abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_CURRENT)); 641abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow-15512, 642abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_SINCE_UNPLUGGED)); 643abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 644abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No change to fields 645abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 646abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 647abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 648abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 649abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 650abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 651abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 652abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 653abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 654abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 655abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 656abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 657abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 658abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 659abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 660abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 661abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 662abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 663abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 664abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 665abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getStartTime while not running 666abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 667abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 668abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testGetStartTimeNotRunning() throws Exception { 669abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 670abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 671abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 672abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.setRunning(false); 673abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 674abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato final long startTimeToNow = 1010; 675abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 676abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow, 677abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_SINCE_CHARGED)); 678abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow-9096, 679abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_CURRENT)); 680abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(startTimeToNow-15512, 681abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.getStartTime(20000, BatteryStats.STATS_SINCE_UNPLUGGED)); 682abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 683abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No change to fields 684abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 685abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 686abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertFalse(serv.getRunning()); 687abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 688abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 689abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 690abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 691abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 692abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 693abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 694abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 695abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 696abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 697abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 698abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 699abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 700abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 701abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 702abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 703abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 704abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato /** 705abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato * Test getStarts 706abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato */ 707abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato @SmallTest 708abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato public void testGetStarts() throws Exception { 709abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato MockBatteryStatsImpl bsi = new MockBatteryStatsImpl(); 710abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato TestServ serv = new TestServ(bsi); 711abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato serv.populate(); 712abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 713abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts(BatteryStats.STATS_SINCE_CHARGED)); 714abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042-10017, serv.getStarts(BatteryStats.STATS_CURRENT)); 715abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042-16613, serv.getStarts(BatteryStats.STATS_SINCE_UNPLUGGED)); 716abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 717abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato // No change to fields 718abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(1010, serv.getStartTime()); 719abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(2021, serv.getRunningSince()); 720abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getRunning()); 721abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(4042, serv.getStarts()); 722abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(5053, serv.getLaunchedTime()); 723abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(6064, serv.getLaunchedSince()); 724abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertTrue(serv.getLaunched()); 725abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(8085, serv.getLaunches()); 726abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(9096, serv.getLoadedStartTime()); 727abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(10017, serv.getLoadedStarts()); 728abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(11118, serv.getLoadedLaunches()); 729abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(12219, serv.getLastStartTime()); 730abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(13310, serv.getLastStarts()); 731abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(14411, serv.getLastLaunches()); 732abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(15512, serv.getUnpluggedStartTime()); 733abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(16613, serv.getUnpluggedStarts()); 734abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato Assert.assertEquals(17714, serv.getUnpluggedLaunches()); 735abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato } 736abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 737abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato} 738abded113bde548734600dc1b6e4ce2e94f48e32eJoe Onorato 739