Chromium Code Reviews| 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); |