Fix filed test case in BatteryInfoTest

Root cause: the test case has timezone dependency, it need to set
timezone before run the test case or it will be failed on different
timezone.
Solution: Replace AlarmManager.setTimeZone with TimeZone.setDefault,
AlarmManager.setTimeZone() seems failed to change timezone for test case.

Fix: 333857349
Test: http://ab/I51500010265016400
Change-Id: Id36dd10866720cba19cce471d294e09272c8091f
This commit is contained in:
pajacechen
2024-04-11 21:42:36 +08:00
parent 4812ce3732
commit 93599816d0

View File

@@ -31,7 +31,6 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.AlarmManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.BatteryManager; import android.os.BatteryManager;
@@ -48,6 +47,7 @@ import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.widget.UsageView; import com.android.settings.widget.UsageView;
import com.android.settingslib.fuelgauge.Estimate; import com.android.settingslib.fuelgauge.Estimate;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@@ -62,6 +62,7 @@ import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@@ -102,6 +103,7 @@ public class BatteryInfoTest {
private Intent mChargingBatteryBroadcast; private Intent mChargingBatteryBroadcast;
private Context mContext; private Context mContext;
private FakeFeatureFactory mFeatureFactory; private FakeFeatureFactory mFeatureFactory;
private TimeZone mOriginalTimeZone;
@Mock private BatteryUsageStats mBatteryUsageStats; @Mock private BatteryUsageStats mBatteryUsageStats;
@@ -123,6 +125,13 @@ public class BatteryInfoTest {
// Reset static cache for testing purpose. // Reset static cache for testing purpose.
com.android.settingslib.fuelgauge.BatteryUtils.setChargingStringV2Enabled(null); com.android.settingslib.fuelgauge.BatteryUtils.setChargingStringV2Enabled(null);
mOriginalTimeZone = TimeZone.getDefault();
}
@After
public void tearDown() throws Exception {
TimeZone.setDefault(mOriginalTimeZone);
} }
@Test @Test
@@ -668,7 +677,7 @@ public class BatteryInfoTest {
String expectedRemainingLabel, String expectedRemainingLabel,
String expectedChargeLabel) { String expectedChargeLabel) {
mContext.getResources().getConfiguration().setLocale(Locale.US); mContext.getResources().getConfiguration().setLocale(Locale.US);
mContext.getSystemService(AlarmManager.class).setTimeZone("UTC"); TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
var info = var info =
BatteryInfo.getBatteryInfo( BatteryInfo.getBatteryInfo(
mContext, mContext,