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

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

Issue 2362323002: [NTP Snippets] Reschedule background fetching on app upgrade if it was scheduled before (Closed)
Patch Set: bauerb review Created 4 years, 3 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java
index 67d2ec86c63e0109c9a3d63a05d2a9e464786238..b3e69b29472978f01df4bd0cce4573ae530df551 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java
@@ -10,6 +10,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.google.android.gms.gcm.TaskParams;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.util.AdvancedMockContext;
@@ -31,6 +32,7 @@ public class ChromeBackgroundServiceTest extends InstrumentationTestCase {
static class MockTaskService extends ChromeBackgroundService {
private boolean mDidLaunchBrowser = false;
private boolean mDidFetchSnippets = false;
+ private boolean mDidRescheduleFetching = false;
private boolean mHasPrecacheInstance = true;
private boolean mPrecachingStarted = false;
@@ -45,6 +47,11 @@ public class ChromeBackgroundServiceTest extends InstrumentationTestCase {
}
@Override
+ protected void rescheduleFetching() {
+ mDidRescheduleFetching = true;
+ }
+
+ @Override
protected boolean hasPrecacheInstance() {
return mHasPrecacheInstance;
}
@@ -56,17 +63,26 @@ public class ChromeBackgroundServiceTest extends InstrumentationTestCase {
}
}
+ @Override
+ protected void rescheduleBackgroundSyncTasksOnUpgrade() {}
+
+ @Override
+ protected void reschedulePrecacheTasksOnUpgrade() {}
+
// Posts an assertion task to the UI thread. Since this is only called after the call
// to onRunTask, it will be enqueued after any possible call to launchBrowser, and we
// can reliably check whether launchBrowser was called.
protected void checkExpectations(final boolean expectedLaunchBrowser,
- final boolean expectedPrecacheStarted, final boolean expectedFetchSnippets) {
+ final boolean expectedPrecacheStarted, final boolean expectedFetchSnippets,
+ final boolean expectedRescheduleFetching) {
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
assertEquals("StartedService", expectedLaunchBrowser, mDidLaunchBrowser);
assertEquals("StartedPrecache", expectedPrecacheStarted, mPrecachingStarted);
assertEquals("FetchedSnippets", expectedFetchSnippets, mDidFetchSnippets);
+ assertEquals("RescheduledFetching", expectedRescheduleFetching,
+ mDidRescheduleFetching);
}
});
}
@@ -99,7 +115,7 @@ public class ChromeBackgroundServiceTest extends InstrumentationTestCase {
private void startOnRunTaskAndVerify(String taskTag, boolean shouldStart,
boolean shouldPrecache, boolean shouldFetchSnippets) {
mTaskService.onRunTask(new TaskParams(taskTag));
- mTaskService.checkExpectations(shouldStart, shouldPrecache, shouldFetchSnippets);
+ mTaskService.checkExpectations(shouldStart, shouldPrecache, shouldFetchSnippets, false);
}
@SmallTest
@@ -153,4 +169,47 @@ public class ChromeBackgroundServiceTest extends InstrumentationTestCase {
mTaskService.deletePrecacheInstance();
startOnRunTaskAndVerify(PrecacheController.PERIODIC_TASK_TAG, true, true, false);
}
+
+ private void startOnInitializeTasksAndVerify(boolean shouldStart, boolean shouldReschedule) {
+ mTaskService.onInitializeTasks();
+ mTaskService.checkExpectations(shouldStart, false, false, shouldReschedule);
+ }
+
+ @SmallTest
+ @Feature({"NTPSnippets"})
+ public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceExists() {
+ startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedule=*/false);
+ }
+
+ @SmallTest
+ @Feature({"NTPSnippets"})
+ public void testNTPSnippetsNoRescheduleWithoutPrefWhenInstanceDoesNotExist() {
+ deleteSnippetsLauncherInstance();
+ startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedule=*/false);
+ }
+
+ @SmallTest
+ @Feature({"NTPSnippets"})
+ public void testNTPSnippetsRescheduleWithPrefWhenInstanceExists() {
+ // Set the pref indicating that fetching was scheduled before.
+ ContextUtils.getAppSharedPreferences()
+ .edit()
+ .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true)
+ .apply();
+
+ startOnInitializeTasksAndVerify(/*shouldStart=*/false, /*shouldReschedule=*/true);
+ }
+
+ @SmallTest
+ @Feature({"NTPSnippets"})
+ public void testNTPSnippetsRescheduleAndLaunchBrowserWithPrefWhenInstanceDoesNotExist() {
+ deleteSnippetsLauncherInstance();
+ // Set the pref indicating that fetching was scheduled before.
+ ContextUtils.getAppSharedPreferences()
+ .edit()
+ .putBoolean(SnippetsLauncher.PREF_IS_SCHEDULED, true)
+ .apply();
+
+ startOnInitializeTasksAndVerify(/*shouldStart=*/true, /*shouldReschedule=*/true);
+ }
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698