Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTaskTest.java

Issue 2830843002: [Offline pages] Updates to background scheduling to use BTS (Closed)
Patch Set: Addressing CR feedback from Pete Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698