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 |
deleted file mode 100644 |
index 6b3bed9b2f1f6a77dd756c5cb7d76c0ad542a78a..0000000000000000000000000000000000000000 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java |
+++ /dev/null |
@@ -1,229 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.offlinepages; |
- |
-import static org.junit.Assert.assertEquals; |
-import static org.junit.Assert.assertFalse; |
-import static org.junit.Assert.assertNotNull; |
-import static org.junit.Assert.assertNull; |
-import static org.junit.Assert.assertSame; |
-import static org.junit.Assert.assertTrue; |
- |
-import android.app.Activity; |
-import android.content.Context; |
-import android.os.Bundle; |
- |
-import com.google.android.gms.common.ConnectionResult; |
-import com.google.android.gms.common.GoogleApiAvailability; |
-import com.google.android.gms.gcm.GcmNetworkManager; |
-import com.google.android.gms.gcm.Task; |
- |
-import org.junit.After; |
-import org.junit.Before; |
-import org.junit.Rule; |
-import org.junit.Test; |
-import org.junit.runner.RunWith; |
-import org.robolectric.RuntimeEnvironment; |
-import org.robolectric.annotation.Config; |
-import org.robolectric.internal.ShadowExtractor; |
-import org.robolectric.shadows.gms.Shadows; |
-import org.robolectric.shadows.gms.common.ShadowGoogleApiAvailability; |
- |
-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.SysUtils; |
-import org.chromium.base.test.util.Feature; |
-import org.chromium.chrome.browser.ChromeBackgroundServiceWaiter; |
-import org.chromium.chrome.browser.DisableHistogramsRule; |
-import org.chromium.net.ConnectionType; |
-import org.chromium.testing.local.LocalRobolectricTestRunner; |
- |
-/** |
- * Unit tests for BackgroundOfflinerTask. |
- */ |
-@RunWith(LocalRobolectricTestRunner.class) |
-@Config(manifest = Config.NONE, application = BaseChromiumApplication.class, sdk = 21, |
- shadows = {ShadowGcmNetworkManager.class, ShadowGoogleApiAvailability.class, |
- ShadowDeviceConditions.class}) |
-public class BackgroundOfflinerTaskTest { |
- private static final boolean REQUIRE_POWER = true; |
- 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; |
- |
- @Rule |
- public DisableHistogramsRule mDisableHistogramsRule = new DisableHistogramsRule(); |
- |
- private Bundle mTaskExtras; |
- private long mTestTime; |
- private StubBackgroundSchedulerProcessor mStubBackgroundSchedulerProcessor; |
- private TriggerConditions mTriggerConditions = |
- new TriggerConditions(!REQUIRE_POWER, MINIMUM_BATTERY_LEVEL, REQUIRE_UNMETERED); |
- private DeviceConditions mDeviceConditions = new DeviceConditions( |
- !POWER_CONNECTED, MINIMUM_BATTERY_LEVEL + 5, ConnectionType.CONNECTION_3G); |
- private Activity mTestActivity; |
- |
- private Context mContext; |
- private ShadowGcmNetworkManager mGcmNetworkManager; |
- |
- @Before |
- public void setUp() throws Exception { |
- Shadows.shadowOf(GoogleApiAvailability.getInstance()) |
- .setIsGooglePlayServicesAvailable(ConnectionResult.SUCCESS); |
- ShadowDeviceConditions.setCurrentConditions(mDeviceConditions); |
- |
- // Build a bundle with trigger conditions. |
- mTaskExtras = new Bundle(); |
- TaskExtrasPacker.packTimeInBundle(mTaskExtras); |
- TaskExtrasPacker.packTriggerConditionsInBundle(mTaskExtras, mTriggerConditions); |
- |
- mStubBackgroundSchedulerProcessor = new StubBackgroundSchedulerProcessor(); |
- mContext = RuntimeEnvironment.application; |
- mGcmNetworkManager = (ShadowGcmNetworkManager) ShadowExtractor.extract( |
- GcmNetworkManager.getInstance(mContext)); |
- mGcmNetworkManager.clear(); |
- |
- // Run tests as a low-end device. |
- CommandLine.init(new String[] {"testcommand", IS_LOW_END_DEVICE_SWITCH}); |
- |
- // Set up single, stopped Activity. |
- ApplicationStatus.destroyForJUnitTests(); |
- mTestActivity = new Activity(); |
- ApplicationStatus.onStateChangeForTesting(mTestActivity, ActivityState.CREATED); |
- ApplicationStatus.onStateChangeForTesting(mTestActivity, ActivityState.STOPPED); |
- } |
- |
- @After |
- public void tearDown() throws Exception { |
- // Clean up static state for subsequent Robolectric tests. |
- CommandLine.reset(); |
- SysUtils.reset(); |
- ApplicationStatus.destroyForJUnitTests(); |
- } |
- |
- @Test |
- @Feature({"OfflinePages"}) |
- public void testStartBackgroundRequests() { |
- BackgroundOfflinerTask task = new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter = new ChromeBackgroundServiceWaiter(1); |
- assertNull("Nothing scheduled", mGcmNetworkManager.getScheduledTask()); |
- |
- task.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter); |
- |
- // Check that the backup task was scheduled. |
- Task gcmTask = mGcmNetworkManager.getScheduledTask(); |
- assertNotNull("Backup task scheduled", gcmTask); |
- assertEquals(mTriggerConditions, |
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(gcmTask.getExtras())); |
- |
- // Check with BackgroundSchedulerProcessor that processing stated. |
- assertTrue(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- assertSame(mDeviceConditions, mStubBackgroundSchedulerProcessor.getDeviceConditions()); |
- |
- // Waiter is only released at the end of the test, when the processing concludes. |
- mStubBackgroundSchedulerProcessor.callback(); |
- waiter.startWaiting(); |
- } |
- |
- @Test |
- @Feature({"OfflinePages"}) |
- public void testStartBackgroundRequestsNotStarted() { |
- mStubBackgroundSchedulerProcessor.setFailToStart(true); |
- BackgroundOfflinerTask task = new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter = new ChromeBackgroundServiceWaiter(1); |
- assertNull("Nothing scheduled", mGcmNetworkManager.getScheduledTask()); |
- |
- task.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter); |
- waiter.startWaiting(); |
- |
- // Check that the backup task was scheduled. |
- Task gcmTask = mGcmNetworkManager.getScheduledTask(); |
- assertNotNull("Backup task scheduled", gcmTask); |
- assertEquals(mTriggerConditions, |
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(gcmTask.getExtras())); |
- |
- // Check with BackgroundSchedulerProcessor that it did not start. |
- assertFalse(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- } |
- |
- @Test |
- @Feature({"OfflinePages"}) |
- public void testStartBackgroundRequestsForLowBatteryLevel() { |
- // Setup low battery conditions. |
- DeviceConditions deviceConditionsLowBattery = new DeviceConditions( |
- !POWER_CONNECTED, MINIMUM_BATTERY_LEVEL - 1, ConnectionType.CONNECTION_WIFI); |
- ShadowDeviceConditions.setCurrentConditions(deviceConditionsLowBattery); |
- |
- BackgroundOfflinerTask task = new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter = new ChromeBackgroundServiceWaiter(1); |
- assertNull("Nothing scheduled", mGcmNetworkManager.getScheduledTask()); |
- task.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter); |
- waiter.startWaiting(); |
- |
- // Check that the backup task was scheduled. |
- Task gcmTask = mGcmNetworkManager.getScheduledTask(); |
- assertNotNull("Backup task scheduled", gcmTask); |
- assertEquals(mTriggerConditions, |
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(gcmTask.getExtras())); |
- |
- // Check that startScheduledProcessing was NOT called. |
- assertFalse(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- |
- // Now verify low battery level but with power connected will start processing. |
- DeviceConditions deviceConditionsPowerConnected = new DeviceConditions( |
- POWER_CONNECTED, MINIMUM_BATTERY_LEVEL - 1, ConnectionType.CONNECTION_WIFI); |
- ShadowDeviceConditions.setCurrentConditions(deviceConditionsPowerConnected); |
- |
- BackgroundOfflinerTask task2 = |
- new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter2 = new ChromeBackgroundServiceWaiter(1); |
- task2.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter2); |
- |
- assertTrue(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- |
- mStubBackgroundSchedulerProcessor.callback(); |
- waiter2.startWaiting(); |
- } |
- |
- @Test |
- @Feature({"OfflinePages"}) |
- public void testStartBackgroundRequestsForRunningActivityOnLowEndDevice() { |
- BackgroundOfflinerTask task = new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter = new ChromeBackgroundServiceWaiter(1); |
- assertNull("Nothing scheduled", mGcmNetworkManager.getScheduledTask()); |
- |
- // Transition the test Activity to a running state. |
- ApplicationStatus.onStateChangeForTesting(mTestActivity, ActivityState.STARTED); |
- |
- task.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter); |
- waiter.startWaiting(); |
- |
- // Check that the backup task was scheduled. |
- Task gcmTask = mGcmNetworkManager.getScheduledTask(); |
- assertNotNull("Backup task scheduled", gcmTask); |
- assertEquals(mTriggerConditions, |
- TaskExtrasPacker.unpackTriggerConditionsFromBundle(gcmTask.getExtras())); |
- |
- // Check that startScheduledProcessing was NOT called. |
- assertFalse(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- |
- // Now verify will start processing when Activity is stopped. |
- ApplicationStatus.onStateChangeForTesting(mTestActivity, ActivityState.STOPPED); |
- BackgroundOfflinerTask task2 = |
- new BackgroundOfflinerTask(mStubBackgroundSchedulerProcessor); |
- ChromeBackgroundServiceWaiter waiter2 = new ChromeBackgroundServiceWaiter(1); |
- task2.startBackgroundRequests(RuntimeEnvironment.application, mTaskExtras, waiter2); |
- |
- assertTrue(mStubBackgroundSchedulerProcessor.getDidStartProcessing()); |
- |
- mStubBackgroundSchedulerProcessor.callback(); |
- waiter2.startWaiting(); |
- } |
-} |