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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/precache/PrecacheServiceLauncherTest.java

Issue 1751183002: Precache uses GcmNetworkManager for task scheduling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments and fixed tests Created 4 years, 9 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/javatests/src/org/chromium/chrome/browser/precache/PrecacheServiceLauncherTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/precache/PrecacheServiceLauncherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/precache/PrecacheServiceLauncherTest.java
deleted file mode 100644
index 80d6c46f726c9a29dcf333bf6f39a2b4e245f01d..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/precache/PrecacheServiceLauncherTest.java
+++ /dev/null
@@ -1,241 +0,0 @@
-// Copyright 2015 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.precache;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.preference.PreferenceManager;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.test.util.AdvancedMockContext;
-import org.chromium.base.test.util.Feature;
-import org.chromium.components.precache.MockDeviceState;
-
-import java.util.EnumSet;
-
-/**
- * Tests the |PrecacheServiceLauncher|.
- */
-public class PrecacheServiceLauncherTest extends InstrumentationTestCase {
- private MockPrecacheServiceLauncher mLauncher;
- private MockPrecacheLauncher mPrecacheLauncher;
- private Context mContext;
-
- class PrecacheMockContext extends AdvancedMockContext {
- @Override
- public String getPackageName() {
- return getInstrumentation().getTargetContext().getPackageName();
- }
-
- @Override
- public ApplicationInfo getApplicationInfo() {
- return getInstrumentation().getTargetContext().getApplicationInfo();
- }
- }
-
- static class MockPrecacheLauncher extends PrecacheLauncher {
- @Override
- public EnumSet<FailureReason> failureReasons() {
- return mFailureReasons;
- }
-
- public void setFailureReasons(EnumSet<FailureReason> reasons) {
- mFailureReasons = reasons;
- }
-
- @Override
- public void onPrecacheCompleted(boolean tryAgainSoon) {}
-
- private EnumSet<FailureReason> mFailureReasons = EnumSet.noneOf(FailureReason.class);
- }
-
- /**
- * Class mocks out the system-related function of |PrecacheServiceLauncher|
- * and provides a method to set a mocked elapsed realtime.
- */
- static class MockPrecacheServiceLauncher extends PrecacheServiceLauncher {
- private long mElapsedRealtime;
- protected boolean mCancelAlarmCalled;
- protected boolean mSetAlarmCalled;
- protected boolean mStartPrecacheCalled;
-
- @Override
- protected void setAlarmOnSystem(Context context, int type, long triggerAtMillis,
- PendingIntent operation) {
- mSetAlarmCalled = true;
- }
-
- @Override
- protected void cancelAlarmOnSystem(Context context, PendingIntent operation) {
- mCancelAlarmCalled = true;
- }
-
- @Override
- protected long getElapsedRealtimeOnSystem() {
- return mElapsedRealtime;
- }
-
- @Override
- protected void startPrecacheService(Context context) {
- mStartPrecacheCalled = true;
- }
-
- @Override
- protected void acquireWakeLock(Context context) {}
-
- protected void setElapsedRealtime(long elapsedRealtime) {
- mElapsedRealtime = elapsedRealtime;
- }
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mLauncher = new MockPrecacheServiceLauncher();
- mPrecacheLauncher = new MockPrecacheLauncher();
- mLauncher.setPrecacheLauncher(mPrecacheLauncher);
- mContext = new PrecacheMockContext();
- setPrecachingEnabled(true);
- }
-
- @Override
- public void tearDown() throws Exception {
- PrecacheService.setIsPrecaching(false);
- super.tearDown();
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testDoNothingIfNotEnabled() {
- setPrecachingEnabled(false);
- mPrecacheLauncher.setFailureReasons(EnumSet.of(FailureReason.NATIVE_SHOULD_RUN_IS_FALSE));
- mLauncher.setDeviceState(new MockDeviceState(0 /* stickyBatteryStatus */,
- true /* powerIsConnected */, true /* wifiIsAvailable */));
- mLauncher.setElapsedRealtime(PrecacheServiceLauncher.WAIT_UNTIL_NEXT_PRECACHE_MS);
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertFalse(mLauncher.mSetAlarmCalled);
- assertFalse(mLauncher.mCancelAlarmCalled);
- assertFalse(mLauncher.mStartPrecacheCalled);
- assertEquals(EnumSet.of(FailureReason.NATIVE_SHOULD_RUN_IS_FALSE),
- mLauncher.failureReasons(mContext));
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testGoodConditions() {
- mLauncher.setDeviceState(new MockDeviceState(0, true, true));
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertFalse(mLauncher.mSetAlarmCalled);
- assertFalse(mLauncher.mCancelAlarmCalled);
- assertTrue(mLauncher.mStartPrecacheCalled);
- assertEquals(EnumSet.noneOf(FailureReason.class), mLauncher.failureReasons(mContext));
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testNotEnoughTimeButGoodConditionsOtherwise() {
- mLauncher.setDeviceState(new MockDeviceState(0, true, true));
- setLastPrecacheMs(0L);
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertTrue(mLauncher.mSetAlarmCalled);
- assertFalse(mLauncher.mCancelAlarmCalled);
- assertFalse(mLauncher.mStartPrecacheCalled);
- assertEquals(EnumSet.of(FailureReason.NOT_ENOUGH_TIME_SINCE_LAST_PRECACHE),
- mLauncher.failureReasons(mContext));
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testEnoughTimeButNoPower() {
- mLauncher.setDeviceState(new MockDeviceState(0, false, true));
- mLauncher.setElapsedRealtime(PrecacheServiceLauncher.WAIT_UNTIL_NEXT_PRECACHE_MS);
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertFalse(mLauncher.mSetAlarmCalled);
- assertTrue(mLauncher.mCancelAlarmCalled);
- assertFalse(mLauncher.mStartPrecacheCalled);
- assertEquals(EnumSet.of(FailureReason.NO_POWER), mLauncher.failureReasons(mContext));
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testAllFailureReasons() {
- mPrecacheLauncher.setFailureReasons(
- EnumSet.of(FailureReason.UPDATE_PRECACHING_ENABLED_NEVER_CALLED,
- FailureReason.SYNC_NOT_INITIALIZED,
- FailureReason.PRERENDER_PRIVACY_PREFERENCE_NOT_ENABLED,
- FailureReason.NATIVE_SHOULD_RUN_IS_FALSE));
- mLauncher.setDeviceState(new MockDeviceState(0, false, false));
- setLastPrecacheMs(0L);
- PrecacheService.setIsPrecaching(true);
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertFalse(mLauncher.mSetAlarmCalled);
- assertTrue(mLauncher.mCancelAlarmCalled);
- assertFalse(mLauncher.mStartPrecacheCalled);
- assertEquals(EnumSet.allOf(FailureReason.class), mLauncher.failureReasons(mContext));
- }
-
- @SmallTest
- @Feature({"Precache"})
- public void testStateIsResetAfterReboot() {
- // 1. Precache is successfully run at time X.
- mLauncher.setDeviceState(new MockDeviceState(0, true, true));
- mLauncher.setElapsedRealtime(PrecacheServiceLauncher.WAIT_UNTIL_NEXT_PRECACHE_MS);
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- // precachingFinishedInternal() is not called in the test. Fake the time being updated.
- setLastPrecacheMs(PrecacheServiceLauncher.WAIT_UNTIL_NEXT_PRECACHE_MS);
-
- assertTrue(mLauncher.mStartPrecacheCalled);
- mLauncher.mStartPrecacheCalled = false;
-
- // 2. The device loses power and reboots.
- mLauncher.setDeviceState(new MockDeviceState(0, false /* power */, true));
- mLauncher.setElapsedRealtime(0);
-
- // 3. Some intent is triggered, which allows the reciever to notice the reboot and reset
- // lastPrecacheTimeMs.
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertTrue(mLauncher.mCancelAlarmCalled);
- assertEquals(EnumSet.of(FailureReason.NO_POWER), mLauncher.failureReasons(mContext));
- mLauncher.mCancelAlarmCalled = false;
-
- // 4. Precache is successfully run at time X+1.
- mLauncher.setDeviceState(new MockDeviceState(0, true, true));
- mLauncher.setElapsedRealtime(PrecacheServiceLauncher.WAIT_UNTIL_NEXT_PRECACHE_MS + 1);
-
- mLauncher.onReceive(mContext, new Intent(PrecacheServiceLauncher.ACTION_ALARM));
-
- assertEquals(EnumSet.noneOf(FailureReason.class), mLauncher.failureReasons(mContext));
- assertTrue(mLauncher.mStartPrecacheCalled);
- }
-
- private void setPrecachingEnabled(boolean enabled) {
- PreferenceManager.getDefaultSharedPreferences(mContext)
- .edit()
- .putBoolean(PrecacheServiceLauncher.PREF_IS_PRECACHING_ENABLED, enabled)
- .commit();
- }
-
- private void setLastPrecacheMs(long ms) {
- PreferenceManager.getDefaultSharedPreferences(mContext)
- .edit()
- .putLong(PrecacheServiceLauncher.PREF_PRECACHE_LAST_TIME, ms)
- .apply();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698