Fix testcase error
- Because BatteryFixSlice.updateBatteryTipAvailabilityCache() doesn't
run in ShadowThreadUtils shadow function, add a function to override
default behavior.
Fixes: 144405844
Test: make RunSettingsRoboTests
Change-Id: I72ee40a7a8fc524ab7bdc1fd838f8243159f2d21
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
index e20305d..dcfba42 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
@@ -40,7 +40,6 @@
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -82,7 +81,6 @@
}
@Test
- @Ignore
public void updateBatteryTipAvailabilityCache_hasImportantTip_shouldReturnTrue() {
final List<BatteryTip> tips = new ArrayList<>();
tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, ""));
@@ -108,7 +106,6 @@
}
@Test
- @Ignore
@Config(shadows = {
BatteryFixSliceTest.ShadowEarlyWarningTip.class,
BatteryFixSliceTest.ShadowSliceBackgroundWorker.class
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
index 285d88d..61ce13d 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
@@ -16,16 +16,21 @@
package com.android.settings.testutils.shadow;
+import android.util.Log;
+
import com.android.settingslib.utils.ThreadUtils;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
+import java.util.concurrent.Callable;
+
@Implements(ThreadUtils.class)
public class ShadowThreadUtils {
private static boolean sIsMainThread = true;
+ private static final String TAG = "ShadowThreadUtils";
@Resetter
public static void reset() {
@@ -38,6 +43,15 @@
}
@Implementation
+ protected static void postOnBackgroundThread(Callable callable) {
+ try {
+ callable.call();
+ } catch (Exception e) {
+ Log.e(TAG, e.getMessage(), e);
+ }
+ }
+
+ @Implementation
protected static void postOnMainThread(Runnable runnable) {
runnable.run();
}