diff options
Diffstat (limited to 'tests')
4 files changed, 46 insertions, 164 deletions
diff --git a/tests/src/com/android/providers/downloads/AbstractDownloadManagerFunctionalTest.java b/tests/src/com/android/providers/downloads/AbstractDownloadManagerFunctionalTest.java index 06dd52af..326d9fff 100644 --- a/tests/src/com/android/providers/downloads/AbstractDownloadManagerFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/AbstractDownloadManagerFunctionalTest.java @@ -21,7 +21,6 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.database.Cursor; -import android.net.ConnectivityManager; import android.provider.Downloads; import android.test.MoreAsserts; import android.test.RenamingDelegatingContext; @@ -77,7 +76,6 @@ public abstract class AbstractDownloadManagerFunctionalTest extends private ContentResolver mResolver; boolean mHasServiceBeenStarted = false; - FakeIConnectivityManager mFakeIConnectivityManager; public TestContext(Context realContext) { super(realContext, FILENAME_PREFIX); @@ -86,7 +84,6 @@ public abstract class AbstractDownloadManagerFunctionalTest extends Context.NOTIFICATION_SERVICE, Context.POWER_SERVICE, })); - mFakeIConnectivityManager = new FakeIConnectivityManager(); } public void setResolver(ContentResolver resolver) { @@ -107,9 +104,6 @@ public abstract class AbstractDownloadManagerFunctionalTest extends */ @Override public Object getSystemService(String name) { - if (name.equals(Context.CONNECTIVITY_SERVICE)) { - return new ConnectivityManager(mFakeIConnectivityManager); - } if (mAllowedSystemServices.contains(name)) { return mRealContext.getSystemService(name); } diff --git a/tests/src/com/android/providers/downloads/DownloadManagerFunctionalTest.java b/tests/src/com/android/providers/downloads/DownloadManagerFunctionalTest.java index 7de90de5..3cd9cf58 100644 --- a/tests/src/com/android/providers/downloads/DownloadManagerFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/DownloadManagerFunctionalTest.java @@ -18,7 +18,7 @@ package com.android.providers.downloads; import android.content.ContentValues; import android.database.Cursor; -import android.net.NetworkInfo; +import android.net.ConnectivityManager; import android.net.Uri; import android.os.Environment; import android.provider.Downloads; @@ -102,12 +102,35 @@ public class DownloadManagerFunctionalTest extends AbstractDownloadManagerFuncti Uri downloadUri = requestDownload("/path"); // without connectivity, download immediately pauses - mTestContext.mFakeIConnectivityManager.setNetworkState(NetworkInfo.State.DISCONNECTED); + mSystemFacade.mActiveNetworkType = null; startService(null); - super.waitForDownloadToStop(getStatusReader(downloadUri), Downloads.STATUS_RUNNING_PAUSED); + waitForDownloadToStop(getStatusReader(downloadUri), Downloads.STATUS_RUNNING_PAUSED); // connecting should start the download - mTestContext.mFakeIConnectivityManager.setNetworkState(NetworkInfo.State.CONNECTED); + mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_WIFI; + runUntilStatus(downloadUri, Downloads.STATUS_SUCCESS); + } + + public void testRoaming() throws Exception { + mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_MOBILE; + mSystemFacade.mIsRoaming = true; + + // for a normal download, roaming is fine + enqueueResponse(HTTP_OK, FILE_CONTENT); + Uri downloadUri = requestDownload("/path"); + startService(null); + runUntilStatus(downloadUri, Downloads.STATUS_SUCCESS); + + // when roaming is disallowed, the download should pause... + downloadUri = requestDownload("/path"); + updateDownload(downloadUri, Downloads.COLUMN_DESTINATION, + Integer.toString(Downloads.DESTINATION_CACHE_PARTITION_NOROAMING)); + startService(null); + waitForDownloadToStop(getStatusReader(downloadUri), Downloads.STATUS_RUNNING_PAUSED); + + // ...and pick up when we're off roaming + enqueueResponse(HTTP_OK, FILE_CONTENT); + mSystemFacade.mIsRoaming = false; runUntilStatus(downloadUri, Downloads.STATUS_SUCCESS); } diff --git a/tests/src/com/android/providers/downloads/FakeIConnectivityManager.java b/tests/src/com/android/providers/downloads/FakeIConnectivityManager.java deleted file mode 100644 index 424411f8..00000000 --- a/tests/src/com/android/providers/downloads/FakeIConnectivityManager.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.downloads; - -import android.net.ConnectivityManager; -import android.net.IConnectivityManager; -import android.net.NetworkInfo; -import android.net.NetworkInfo.State; -import android.os.IBinder; -import android.os.RemoteException; - -class FakeIConnectivityManager implements IConnectivityManager { - private static class MockNetworkInfo extends NetworkInfo { - private State mState; - - @SuppressWarnings("deprecation") - public MockNetworkInfo(State state) { - super(0); - mState = state; - } - - @Override - public State getState() { - return mState; - } - - @Override - public int getType() { - return ConnectivityManager.TYPE_MOBILE; - } - } - - private State mCurrentState = State.CONNECTED; - - public void setNetworkState(State state) { - mCurrentState = state; - } - - public IBinder asBinder() { - throw new UnsupportedOperationException(); - } - - public NetworkInfo getActiveNetworkInfo() throws RemoteException { - return new MockNetworkInfo(mCurrentState); - } - - public NetworkInfo[] getAllNetworkInfo() throws RemoteException { - return new NetworkInfo[] {getActiveNetworkInfo()}; - } - - public boolean getBackgroundDataSetting() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int getLastTetherError(String iface) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public boolean getMobileDataEnabled() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public NetworkInfo getNetworkInfo(int networkType) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int getNetworkPreference() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public String[] getTetherableIfaces() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public String[] getTetherableUsbRegexs() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public String[] getTetherableWifiRegexs() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public String[] getTetheredIfaces() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public String[] getTetheringErroredIfaces() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public boolean isTetheringSupported() throws RemoteException { - throw new UnsupportedOperationException(); - } - - public void requestNetworkTransitionWakelock(String forWhom) { - throw new UnsupportedOperationException(); - } - - public boolean requestRouteToHost(int networkType, int hostAddress) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public void setBackgroundDataSetting(boolean allowBackgroundData) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public void setMobileDataEnabled(boolean enabled) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public void setNetworkPreference(int pref) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public boolean setRadio(int networkType, boolean turnOn) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public boolean setRadios(boolean onOff) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int startUsingNetworkFeature(int networkType, String feature, IBinder binder) - throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int stopUsingNetworkFeature(int networkType, String feature) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int tether(String iface) throws RemoteException { - throw new UnsupportedOperationException(); - } - - public int untether(String iface) throws RemoteException { - throw new UnsupportedOperationException(); - } -} diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java index b75e663a..c48f815d 100644 --- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java +++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java @@ -1,7 +1,13 @@ package com.android.providers.downloads; +import android.net.ConnectivityManager; + +import java.util.BitSet; + public class FakeSystemFacade implements SystemFacade { - private long mTimeMillis = 0; + long mTimeMillis = 0; + Integer mActiveNetworkType = ConnectivityManager.TYPE_WIFI; + boolean mIsRoaming = false; void incrementTimeMillis(long delta) { mTimeMillis += delta; @@ -10,4 +16,16 @@ public class FakeSystemFacade implements SystemFacade { public long currentTimeMillis() { return mTimeMillis; } + + public BitSet getConnectedNetworkTypes() { + BitSet connectedTypes = new BitSet(); + if (mActiveNetworkType != null) { + connectedTypes.set(mActiveNetworkType); + } + return connectedTypes; + } + + public boolean isNetworkRoaming() { + return mIsRoaming; + } } |