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

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java

Issue 1288593003: [BackgroundSync] Move read and write of shared preferences to an AsyncTask (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean up Created 5 years, 4 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: content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java b/content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java
index c058953f650ee6e18541d94fd0b2d7cec17d6451..39b4da0435103a8d4a9ecdb0f7c3ebd19be71096 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/BackgroundSyncLauncherTest.java
@@ -6,7 +6,6 @@ package org.chromium.content.browser;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
@@ -14,6 +13,8 @@ import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature;
+import java.util.concurrent.Semaphore;
+
/**
* Tests {@link BackgroundSyncLauncherService} and {@link BackgroundSyncLauncherService.Receiver}.
*/
@@ -21,8 +22,7 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
private Context mContext;
private BackgroundSyncLauncher mLauncher;
private MockReceiver mLauncherServiceReceiver;
-
- private SharedPreferences mPrefs;
+ private Boolean mShouldLaunchResult;
static class MockReceiver extends BackgroundSyncLauncherService.Receiver {
private boolean mIsOnline = true;
@@ -56,9 +56,6 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
mContext = new AdvancedMockContext(getInstrumentation().getTargetContext());
mLauncher = BackgroundSyncLauncher.create(mContext);
mLauncherServiceReceiver = new MockReceiver();
-
- mPrefs = mContext.getSharedPreferences(
- mContext.getPackageName() + "_preferences", Context.MODE_PRIVATE);
}
private void deleteLauncherInstance() {
@@ -72,6 +69,31 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
mLauncherServiceReceiver.checkExpectations(shouldStart);
}
+ private Boolean syncShouldLaunchWhenNextOnline() {
+ mShouldLaunchResult = false;
+
+ // Use a semaphore to wait for the callback to be called.
+ final Semaphore semaphore = new Semaphore(0);
+
+ BackgroundSyncLauncher.ShouldLaunchCallback callback =
+ new BackgroundSyncLauncher.ShouldLaunchCallback() {
+ @Override
+ public void run(Boolean shouldLaunch) {
+ mShouldLaunchResult = shouldLaunch;
+ semaphore.release();
+ }
+ };
+
+ BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mContext, callback);
+ try {
+ // Wait on the callback to be called.
+ semaphore.acquire();
+ } catch (InterruptedException e) {
+ fail("Failed to acquire semaphore");
+ }
+ return mShouldLaunchResult;
+ }
+
@SmallTest
@Feature({"BackgroundSync"})
public void testHasInstance() {
@@ -83,55 +105,35 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
@SmallTest
@Feature({"BackgroundSync"})
public void testDefaultNoLaunch() {
- assertFalse(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
+ assertFalse(syncShouldLaunchWhenNextOnline());
}
@SmallTest
@Feature({"BackgroundSync"})
public void testSetLaunchWhenNextOnline() {
- assertFalse(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
- mLauncher.setLaunchWhenNextOnline(true);
- assertTrue(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
- mLauncher.setLaunchWhenNextOnline(false);
- assertFalse(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
+ assertFalse(syncShouldLaunchWhenNextOnline());
+ mLauncher.setLaunchWhenNextOnline(mContext, true);
jdduke (slow) 2015/08/19 17:32:42 Are AsyncTasks all serviced by the same worker thr
jkarlin 2015/08/19 17:38:35 Yep! "When first introduced, AsyncTasks were exec
+ assertTrue(syncShouldLaunchWhenNextOnline());
+ mLauncher.setLaunchWhenNextOnline(mContext, false);
+ assertFalse(syncShouldLaunchWhenNextOnline());
}
@SmallTest
@Feature({"BackgroundSync"})
public void testNewLauncherDisablesNextOnline() {
- mLauncher.setLaunchWhenNextOnline(true);
- assertTrue(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
+ mLauncher.setLaunchWhenNextOnline(mContext, true);
+ assertTrue(syncShouldLaunchWhenNextOnline());
// Simulate restarting the browser by deleting the launcher and creating a new one.
deleteLauncherInstance();
mLauncher = BackgroundSyncLauncher.create(mContext);
- assertFalse(BackgroundSyncLauncher.shouldLaunchWhenNextOnline(mPrefs));
- }
-
- @SmallTest
- @Feature({"BackgroundSync"})
- public void testFireWhenScheduled() {
- mLauncher.setLaunchWhenNextOnline(true);
- deleteLauncherInstance();
-
- mLauncherServiceReceiver.setOnline(true);
- startOnReceiveAndVerify(true);
- }
-
- @SmallTest
- @Feature({"BackgroundSync"})
- public void testNoFireWhenNotScheduled() {
- mLauncher.setLaunchWhenNextOnline(false);
- deleteLauncherInstance();
-
- mLauncherServiceReceiver.setOnline(true);
- startOnReceiveAndVerify(false);
+ assertFalse(syncShouldLaunchWhenNextOnline());
}
@SmallTest
@Feature({"BackgroundSync"})
public void testNoFireWhenInstanceExists() {
- mLauncher.setLaunchWhenNextOnline(true);
+ mLauncher.setLaunchWhenNextOnline(mContext, true);
mLauncherServiceReceiver.setOnline(true);
startOnReceiveAndVerify(false);
@@ -142,7 +144,7 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
@SmallTest
@Feature({"BackgroundSync"})
public void testReceiverOffline() {
- mLauncher.setLaunchWhenNextOnline(true);
+ mLauncher.setLaunchWhenNextOnline(mContext, true);
mLauncherServiceReceiver.setOnline(false);
deleteLauncherInstance();
startOnReceiveAndVerify(false);
@@ -151,7 +153,7 @@ public class BackgroundSyncLauncherTest extends InstrumentationTestCase {
@SmallTest
@Feature({"BackgroundSync"})
public void testReceiverOnline() {
- mLauncher.setLaunchWhenNextOnline(true);
+ mLauncher.setLaunchWhenNextOnline(mContext, true);
mLauncherServiceReceiver.setOnline(true);
deleteLauncherInstance();
startOnReceiveAndVerify(true);

Powered by Google App Engine
This is Rietveld 408576698