Chromium Code Reviews| 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)); |
| + } |
| } |