Index: chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java |
index e4d58c9bcd3321ec0209bdc81202f0171917463f..269f9300c2a6b52a08e3b9e1e3e974790b566be8 100644 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java |
@@ -13,12 +13,17 @@ import static org.junit.Assert.assertTrue; |
import static org.mockito.Mockito.any; |
import static org.mockito.Mockito.when; |
+import android.app.Activity; |
import android.content.Context; |
import android.os.Bundle; |
import com.google.android.gms.gcm.Task; |
+import org.chromium.base.ActivityState; |
+import org.chromium.base.ApplicationStatus; |
import org.chromium.base.BaseChromiumApplication; |
+import org.chromium.base.BaseSwitches; |
+import org.chromium.base.CommandLine; |
import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.base.test.util.Feature; |
import org.chromium.chrome.browser.ChromeBackgroundServiceWaiter; |
@@ -44,6 +49,8 @@ public class BackgroundOfflinerTaskTest { |
private static final boolean REQUIRE_UNMETERED = true; |
private static final boolean POWER_CONNECTED = true; |
private static final int MINIMUM_BATTERY_LEVEL = 33; |
+ private static final String IS_LOW_END_DEVICE_SWITCH = |
+ "--" + BaseSwitches.ENABLE_LOW_END_DEVICE_MODE; |
@Mock |
private OfflinePageUtils mOfflinePageUtils; |
@@ -71,6 +78,7 @@ public class BackgroundOfflinerTaskTest { |
mStubBackgroundSchedulerProcessor = new StubBackgroundSchedulerProcessor(); |
RecordHistogram.disableForTests(); |
ShadowGcmNetworkManager.clear(); |
+ CommandLine.init(new String[] {"testcommand", IS_LOW_END_DEVICE_SWITCH}); |
} |
@Test |
@@ -138,4 +146,32 @@ public class BackgroundOfflinerTaskTest { |
ChromeBackgroundServiceWaiter waiter2 = new ChromeBackgroundServiceWaiter(1); |
assertTrue(task2.startBackgroundRequests(Robolectric.application, mTaskExtras, waiter2)); |
} |
+ |
+ @Test |
+ @Feature({"OfflinePages"}) |
+ public void testStartBackgroundRequestsForRunningActivityOnLowEndDevice() { |
+ BackgroundOfflinerTask task = new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
+ ChromeBackgroundServiceWaiter waiter = new ChromeBackgroundServiceWaiter(1); |
+ assertNull("Nothing scheduled", ShadowGcmNetworkManager.getScheduledTask()); |
+ Activity testActivity = new Activity(); |
Pete Williamson
2016/07/19 21:15:43
Maybe add a comment here:
// Create another activ
dougarnett
2016/07/19 21:29:06
Done.
|
+ ApplicationStatus.onStateChangeForTesting(testActivity, ActivityState.CREATED); |
+ ApplicationStatus.onStateChangeForTesting(testActivity, ActivityState.STARTED); |
+ assertFalse(task.startBackgroundRequests(Robolectric.application, mTaskExtras, waiter)); |
+ |
+ // Check that the backup task was scheduled. |
+ Task gcmTask = ShadowGcmNetworkManager.getScheduledTask(); |
+ assertNotNull("Backup task scheduled", gcmTask); |
+ assertEquals(mTriggerConditions, |
+ TaskExtrasPacker.unpackTriggerConditionsFromBundle(gcmTask.getExtras())); |
+ |
+ // Check that startProcessing was NOT called. |
+ assertFalse(mStubBackgroundSchedulerProcessor.getStartProcessingCalled()); |
+ |
+ // Now verify will start processing when Activity is stopped. |
+ ApplicationStatus.onStateChangeForTesting(testActivity, ActivityState.STOPPED); |
+ BackgroundOfflinerTask task2 = |
+ new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
+ ChromeBackgroundServiceWaiter waiter2 = new ChromeBackgroundServiceWaiter(1); |
+ assertTrue(task2.startBackgroundRequests(Robolectric.application, mTaskExtras, waiter2)); |
+ } |
} |