Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c982871 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "add-android.test.legacy"

* changes:
  Add android.test.legacy target
  Modify android.test.runner to use new mock APIs
parents 91fef994 a70f66cb
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -63,6 +63,26 @@ java_library_static {
    jarjar_rules: "jarjar-rules.txt",
}

// Build the android.test.base-minus-junit library
// ===============================================
// This contains the android.test classes from android.test.base plus
// the com.android.internal.util.Predicate[s] classes. This is only
// intended for inclusion in the android.test.legacy static library and
// must not be used elsewhere.
java_library_static {
    name: "android.test.base-minus-junit",

    srcs: [
        "src/android/**/*.java",
        "src/com/**/*.java",
    ],

    sdk_version: "current",
    libs: [
        "junit",
    ],
}

// Build the legacy-android-test library
// =====================================
// This contains the android.test classes that were in Android API level 25,
+15 −0
Original line number Diff line number Diff line
@@ -117,5 +117,20 @@ update-android-test-runner-api: $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) | $(ACP)

endif  # not TARGET_BUILD_APPS not TARGET_BUILD_PDK=true

# Build the android.test.legacy library
# =====================================
include $(CLEAR_VARS)

LOCAL_MODULE := android.test.legacy

LOCAL_SRC_FILES := $(call all-java-files-under, src/android)

LOCAL_SDK_VERSION := current

LOCAL_JAVA_LIBRARIES := android.test.mock.stubs junit
LOCAL_STATIC_JAVA_LIBRARIES := android.test.base-minus-junit

include $(BUILD_STATIC_JAVA_LIBRARY)

# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
+3 −76
Original line number Diff line number Diff line
@@ -17,12 +17,6 @@
package android.test;

import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OnAccountsUpdateListener;
import android.accounts.OperationCanceledException;
import android.accounts.Account;
import android.content.ContextWrapper;
import android.content.ContentResolver;
import android.content.Intent;
@@ -32,12 +26,10 @@ import android.content.BroadcastReceiver;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Handler;
import android.test.mock.MockAccountManager;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import java.util.List;


@@ -52,7 +44,7 @@ import java.util.List;
public class IsolatedContext extends ContextWrapper {

    private ContentResolver mResolver;
    private final MockAccountManager mMockAccountManager;
    private final AccountManager mMockAccountManager;

    private List<Intent> mBroadcastIntents = new ArrayList<>();

@@ -60,7 +52,7 @@ public class IsolatedContext extends ContextWrapper {
            ContentResolver resolver, Context targetContext) {
        super(targetContext);
        mResolver = resolver;
        mMockAccountManager = new MockAccountManager();
        mMockAccountManager = MockAccountManager.newMockAccountManager(IsolatedContext.this);
    }

    /** Returns the list of intents that were broadcast since the last call to this method. */
@@ -123,71 +115,6 @@ public class IsolatedContext extends ContextWrapper {
        return null;
    }

    private class MockAccountManager extends AccountManager {
        public MockAccountManager() {
            super(IsolatedContext.this, null /* IAccountManager */, null /* handler */);
        }

        public void addOnAccountsUpdatedListener(OnAccountsUpdateListener listener,
                Handler handler, boolean updateImmediately) {
            // do nothing
        }

        public Account[] getAccounts() {
            return new Account[]{};
        }

        public AccountManagerFuture<Account[]> getAccountsByTypeAndFeatures(
                final String type, final String[] features,
                AccountManagerCallback<Account[]> callback, Handler handler) {
            return new MockAccountManagerFuture<Account[]>(new Account[0]);
        }

        public String blockingGetAuthToken(Account account, String authTokenType,
                boolean notifyAuthFailure)
                throws OperationCanceledException, IOException, AuthenticatorException {
            return null;
        }


        /**
         * A very simple AccountManagerFuture class
         * that returns what ever was passed in
         */
        private class MockAccountManagerFuture<T>
                implements AccountManagerFuture<T> {

            T mResult;

            public MockAccountManagerFuture(T result) {
                mResult = result;
            }

            public boolean cancel(boolean mayInterruptIfRunning) {
                return false;
            }

            public boolean isCancelled() {
                return false;
            }

            public boolean isDone() {
                return true;
            }

            public T getResult()
                    throws OperationCanceledException, IOException, AuthenticatorException {
                return mResult;
            }

            public T getResult(long timeout, TimeUnit unit)
                    throws OperationCanceledException, IOException, AuthenticatorException {
                return getResult();
            }
        }

    }

    @Override
    public File getFilesDir() {
        return new File("/dev/null");
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.ProviderInfo;
import android.content.res.Resources;
import android.test.mock.MockContentProvider;
import android.test.mock.MockContext;
import android.test.mock.MockContentResolver;
import android.database.DatabaseUtils;
@@ -152,7 +153,7 @@ public abstract class ProviderTestCase2<T extends ContentProvider> extends Andro
        T instance = providerClass.newInstance();
        ProviderInfo providerInfo = new ProviderInfo();
        providerInfo.authority = authority;
        instance.attachInfoForTesting(context, providerInfo);
        MockContentProvider.attachInfoForTesting(instance, context, providerInfo);
        return instance;
    }

+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.ContextWrapper;
import android.content.ContentProvider;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.test.mock.MockContentProvider;
import android.util.Log;

import java.io.File;
@@ -71,7 +72,7 @@ public class RenamingDelegatingContext extends ContextWrapper {
        if (allowAccessToExistingFilesAndDbs) {
            mContext.makeExistingFilesAndDbsAccessible();
        }
        mProvider.attachInfoForTesting(mContext, null);
        MockContentProvider.attachInfoForTesting(mProvider, mContext, null);
        return mProvider;
    }

Loading