Stubs/api check for legacy-test and android.test.runner
Adds stub generation for legacy-test classes and android.test.runner
classes. Changes name of android.test.mock.sdk to
android.test.mock.stubs for consistency and clarity, adds new
temporary android.test.mock.sdk target to prevent build breakage.
Adds api check and update targets for legacy.test.stubs,
android.test.runner.stubs and android.test.mock.stubs to prevent
accidental changes to the API.
Bug: 30188076
Test: make checkapi and make update-api
Change-Id: I40cc7b967f1ab1c7e148407d6965526550ee2f9b
diff --git a/test-runner/Android.mk b/test-runner/Android.mk
index 0752661..b41dadb 100644
--- a/test-runner/Android.mk
+++ b/test-runner/Android.mk
@@ -16,6 +16,8 @@
LOCAL_PATH:= $(call my-dir)
+android_test_mock_source_files := $(call all-java-files-under, src/android/test/mock)
+
# Build the android.test.runner library
# =====================================
include $(CLEAR_VARS)
@@ -28,11 +30,109 @@
include $(BUILD_JAVA_LIBRARY)
+# Generate the stub source files for android.test.runner.stubs
+# ============================================================
+include $(CLEAR_VARS)
+
+# Exclude android.test.mock classes as stubs for them are created in the
+# android.test.mock.stubs target
+LOCAL_SRC_FILES := \
+ $(filter-out $(android_test_mock_source_files), $(call all-java-files-under, src))
+
+LOCAL_JAVA_LIBRARIES := \
+ core-oj \
+ core-libart \
+ framework \
+ legacy-test \
+ android.test.mock \
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src
+
+ANDROID_TEST_RUNNER_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/api.txt
+ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/removed.txt
+
+ANDROID_TEST_RUNNER_API_FILE := $(LOCAL_PATH)/api/android-test-runner-current.txt
+ANDROID_TEST_RUNNER_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-runner-removed.txt
+
+LOCAL_DROIDDOC_OPTIONS:= \
+ -stubpackages android.test:android.test.suitebuilder:junit.runner:junit.textui \
+ -stubsourceonly \
+ -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.runner.stubs_intermediates/src \
+ -nodocs \
+ -api $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) \
+ -removedApi $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE) \
+
+LOCAL_UNINSTALLABLE_MODULE := true
+LOCAL_MODULE := android-test-runner-api-stubs-gen
+
+include $(BUILD_DROIDDOC)
+
+# Remember the target that will trigger the code generation.
+android_test_runner_api_gen_stamp := $(full_target)
+
+# Add some additional dependencies
+$(ANDROID_TEST_RUNNER_OUTPUT_API_FILE): $(full_target)
+$(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE): $(full_target)
+
+# Build the android.test.runner.stubs library
+# ===========================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.test.runner.stubs
+
+LOCAL_JAVA_LIBRARIES := \
+ legacy.test.stubs \
+ android.test.mock.stubs \
+
+LOCAL_SOURCE_FILES_ALL_GENERATED := true
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+# Make sure to run droiddoc first to generate the stub source files.
+$(full_classes_compiled_jar) : $(android_test_runner_api_gen_stamp)
+$(full_classes_jack) : $(android_test_runner_api_gen_stamp)
+
+# Archive a copy of the classes.jar in SDK build.
+$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.runner.stubs.jar)
+
+# Check that the android.test.runner.stubs library has not changed
+# ================================================================
+
+# Check that the API we're building hasn't changed from the not-yet-released
+# SDK version.
+$(eval $(call check-api, \
+ check-android-test-runner-api-current, \
+ $(ANDROID_TEST_RUNNER_API_FILE), \
+ $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE), \
+ $(ANDROID_TEST_RUNNER_REMOVED_API_FILE), \
+ $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE), \
+ -error 2 -error 3 -error 4 -error 5 -error 6 \
+ -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
+ -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
+ -error 25 -error 26 -error 27, \
+ cat $(LOCAL_PATH)/api/apicheck_msg_android_test_runner.txt, \
+ check-android-test-runner-api, \
+ $(call doc-timestamp-for,android-test-runner-api-stubs-gen) \
+ ))
+
+.PHONY: check-android-test-runner-api
+checkapi: check-android-test-runner-api
+
+.PHONY: update-android-test-runner-api
+update-api: update-android-test-runner-api
+
+update-android-test-runner-api: $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) | $(ACP)
+ @echo Copying current.txt
+ $(hide) $(ACP) $(ANDROID_TEST_RUNNER_OUTPUT_API_FILE) $(ANDROID_TEST_RUNNER_API_FILE)
+ @echo Copying removed.txt
+ $(hide) $(ACP) $(ANDROID_TEST_RUNNER_OUTPUT_REMOVED_API_FILE) $(ANDROID_TEST_RUNNER_REMOVED_API_FILE)
+
# Build the android.test.mock library
# ===================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
+LOCAL_SRC_FILES := $(android_test_mock_source_files)
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
@@ -40,33 +140,45 @@
include $(BUILD_JAVA_LIBRARY)
-# Generate the stub source files for android.test.mock.sdk
-# ========================================================
+# Generate the stub source files for android.test.mock.stubs
+# ==========================================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(call all-java-files-under, src/android/test/mock)
+LOCAL_SRC_FILES := $(android_test_mock_source_files)
LOCAL_JAVA_LIBRARIES := core-oj core-libart framework
LOCAL_MODULE_CLASS := JAVA_LIBRARIES
LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src/android/test/mock
+ANDROID_TEST_MOCK_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/api.txt
+ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/removed.txt
+
+ANDROID_TEST_MOCK_API_FILE := $(LOCAL_PATH)/api/android-test-mock-current.txt
+ANDROID_TEST_MOCK_REMOVED_API_FILE := $(LOCAL_PATH)/api/android-test-mock-removed.txt
+
LOCAL_DROIDDOC_OPTIONS:= \
-stubpackages android.test.mock \
- -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.sdk_intermediates/src \
- -nodocs
+ -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android.test.mock.stubs_intermediates/src \
+ -nodocs \
+ -api $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) \
+ -removedApi $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE) \
LOCAL_UNINSTALLABLE_MODULE := true
-LOCAL_MODULE := android-test-mock-stubs-gen
+LOCAL_MODULE := android-test-mock-api-stubs-gen
include $(BUILD_DROIDDOC)
# Remember the target that will trigger the code generation.
android_test_mock_gen_stamp := $(full_target)
-# Build the android.test.mock.sdk library
-# =======================================
+# Add some additional dependencies
+$(ANDROID_TEST_MOCK_OUTPUT_API_FILE): $(full_target)
+$(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE): $(full_target)
+
+# Build the android.test.mock.stubs library
+# =========================================
include $(CLEAR_VARS)
-LOCAL_MODULE := android.test.mock.sdk
+LOCAL_MODULE := android.test.mock.stubs
LOCAL_SOURCE_FILES_ALL_GENERATED := true
@@ -77,7 +189,49 @@
$(full_classes_jack) : $(android_test_mock_gen_stamp)
# Archive a copy of the classes.jar in SDK build.
-$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.jar)
+$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):android.test.mock.stubs.jar)
+
+# Check that the android.test.mock.stubs library has not changed
+# ==============================================================
+
+# Check that the API we're building hasn't changed from the not-yet-released
+# SDK version.
+$(eval $(call check-api, \
+ check-android-test-mock-api-current, \
+ $(ANDROID_TEST_MOCK_API_FILE), \
+ $(ANDROID_TEST_MOCK_OUTPUT_API_FILE), \
+ $(ANDROID_TEST_MOCK_REMOVED_API_FILE), \
+ $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE), \
+ -error 2 -error 3 -error 4 -error 5 -error 6 \
+ -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
+ -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
+ -error 25 -error 26 -error 27, \
+ cat $(LOCAL_PATH)/api/apicheck_msg_android_test_mock.txt, \
+ check-android-test-mock-api, \
+ $(call doc-timestamp-for,android-test-mock-api-stubs-gen) \
+ ))
+
+.PHONY: check-android-test-mock-api
+checkapi: check-android-test-mock-api
+
+.PHONY: update-android-test-mock-api
+update-api: update-android-test-mock-api
+
+update-android-test-mock-api: $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) | $(ACP)
+ @echo Copying current.txt
+ $(hide) $(ACP) $(ANDROID_TEST_MOCK_OUTPUT_API_FILE) $(ANDROID_TEST_MOCK_API_FILE)
+ @echo Copying removed.txt
+ $(hide) $(ACP) $(ANDROID_TEST_MOCK_OUTPUT_REMOVED_API_FILE) $(ANDROID_TEST_MOCK_REMOVED_API_FILE)
+
+# Build the android.test.mock.sdk library
+# =======================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.test.mock.sdk
+
+LOCAL_STATIC_JAVA_LIBRARIES := android.test.mock.stubs
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/test-runner/api/android-test-mock-current.txt b/test-runner/api/android-test-mock-current.txt
new file mode 100644
index 0000000..4063ed7
--- /dev/null
+++ b/test-runner/api/android-test-mock-current.txt
@@ -0,0 +1,413 @@
+package android.test.mock {
+
+ public deprecated class MockApplication extends android.app.Application {
+ ctor public MockApplication();
+ }
+
+ public class MockContentProvider extends android.content.ContentProvider {
+ ctor protected MockContentProvider();
+ ctor public MockContentProvider(android.content.Context);
+ ctor public MockContentProvider(android.content.Context, java.lang.String, java.lang.String, android.content.pm.PathPermission[]);
+ method public android.content.ContentProviderResult[] applyBatch(java.util.ArrayList<android.content.ContentProviderOperation>);
+ method public int delete(android.net.Uri, java.lang.String, java.lang.String[]);
+ method public java.lang.String getType(android.net.Uri);
+ method public android.net.Uri insert(android.net.Uri, android.content.ContentValues);
+ method public boolean onCreate();
+ method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle);
+ method public android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
+ method public int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]);
+ }
+
+ public class MockContentResolver extends android.content.ContentResolver {
+ ctor public MockContentResolver();
+ ctor public MockContentResolver(android.content.Context);
+ method protected android.content.IContentProvider acquireProvider(android.content.Context, java.lang.String);
+ method protected android.content.IContentProvider acquireUnstableProvider(android.content.Context, java.lang.String);
+ method public void addProvider(java.lang.String, android.content.ContentProvider);
+ method public boolean releaseProvider(android.content.IContentProvider);
+ method public boolean releaseUnstableProvider(android.content.IContentProvider);
+ method public void unstableProviderDied(android.content.IContentProvider);
+ }
+
+ public class MockContext extends android.content.Context {
+ ctor public MockContext();
+ method public boolean bindService(android.content.Intent, android.content.ServiceConnection, int);
+ method public boolean canLoadUnsafeResources();
+ method public int checkCallingOrSelfPermission(java.lang.String);
+ method public int checkCallingOrSelfUriPermission(android.net.Uri, int);
+ method public int checkCallingPermission(java.lang.String);
+ method public int checkCallingUriPermission(android.net.Uri, int);
+ method public int checkPermission(java.lang.String, int, int);
+ method public int checkPermission(java.lang.String, int, int, android.os.IBinder);
+ method public int checkSelfPermission(java.lang.String);
+ method public int checkUriPermission(android.net.Uri, int, int, int);
+ method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
+ method public int checkUriPermission(android.net.Uri, int, int, int, android.os.IBinder);
+ method public void clearWallpaper();
+ method public android.content.Context createApplicationContext(android.content.pm.ApplicationInfo, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.Context createConfigurationContext(android.content.res.Configuration);
+ method public android.content.Context createContextForSplit(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.Context createCredentialProtectedStorageContext();
+ method public android.content.Context createDeviceProtectedStorageContext();
+ method public android.content.Context createDisplayContext(android.view.Display);
+ method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.Context createPackageContextAsUser(java.lang.String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.lang.String[] databaseList();
+ method public boolean deleteDatabase(java.lang.String);
+ method public boolean deleteFile(java.lang.String);
+ method public boolean deleteSharedPreferences(java.lang.String);
+ method public void enforceCallingOrSelfPermission(java.lang.String, java.lang.String);
+ method public void enforceCallingOrSelfUriPermission(android.net.Uri, int, java.lang.String);
+ method public void enforceCallingPermission(java.lang.String, java.lang.String);
+ method public void enforceCallingUriPermission(android.net.Uri, int, java.lang.String);
+ method public void enforcePermission(java.lang.String, int, int, java.lang.String);
+ method public void enforceUriPermission(android.net.Uri, int, int, int, java.lang.String);
+ method public void enforceUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int, java.lang.String);
+ method public java.lang.String[] fileList();
+ method public android.content.Context getApplicationContext();
+ method public android.content.pm.ApplicationInfo getApplicationInfo();
+ method public android.content.res.AssetManager getAssets();
+ method public java.lang.String getBasePackageName();
+ method public java.io.File getCacheDir();
+ method public java.lang.ClassLoader getClassLoader();
+ method public java.io.File getCodeCacheDir();
+ method public android.content.ContentResolver getContentResolver();
+ method public java.io.File getDataDir();
+ method public java.io.File getDatabasePath(java.lang.String);
+ method public java.io.File getDir(java.lang.String, int);
+ method public android.view.Display getDisplay();
+ method public android.view.DisplayAdjustments getDisplayAdjustments(int);
+ method public java.io.File getExternalCacheDir();
+ method public java.io.File[] getExternalCacheDirs();
+ method public java.io.File getExternalFilesDir(java.lang.String);
+ method public java.io.File[] getExternalFilesDirs(java.lang.String);
+ method public java.io.File[] getExternalMediaDirs();
+ method public java.io.File getFileStreamPath(java.lang.String);
+ method public java.io.File getFilesDir();
+ method public android.os.Looper getMainLooper();
+ method public java.io.File getNoBackupFilesDir();
+ method public java.io.File getObbDir();
+ method public java.io.File[] getObbDirs();
+ method public java.lang.String getOpPackageName();
+ method public java.lang.String getPackageCodePath();
+ method public android.content.pm.PackageManager getPackageManager();
+ method public java.lang.String getPackageName();
+ method public java.lang.String getPackageResourcePath();
+ method public java.io.File getPreloadsFileCache();
+ method public android.content.res.Resources getResources();
+ method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int);
+ method public android.content.SharedPreferences getSharedPreferences(java.io.File, int);
+ method public java.io.File getSharedPreferencesPath(java.lang.String);
+ method public java.lang.Object getSystemService(java.lang.String);
+ method public java.lang.String getSystemServiceName(java.lang.Class<?>);
+ method public android.content.res.Resources.Theme getTheme();
+ method public int getUserId();
+ method public android.graphics.drawable.Drawable getWallpaper();
+ method public int getWallpaperDesiredMinimumHeight();
+ method public int getWallpaperDesiredMinimumWidth();
+ method public void grantUriPermission(java.lang.String, android.net.Uri, int);
+ method public boolean isCredentialProtectedStorage();
+ method public boolean isDeviceProtectedStorage();
+ method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
+ method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
+ method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
+ method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
+ method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+ method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory, android.database.DatabaseErrorHandler);
+ method public android.graphics.drawable.Drawable peekWallpaper();
+ method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter);
+ method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, int);
+ method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler);
+ method public android.content.Intent registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, android.os.Handler, int);
+ method public android.content.Intent registerReceiverAsUser(android.content.BroadcastReceiver, android.os.UserHandle, android.content.IntentFilter, java.lang.String, android.os.Handler);
+ method public void reloadSharedPreferences();
+ method public void removeStickyBroadcast(android.content.Intent);
+ method public void removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+ method public void revokeUriPermission(android.net.Uri, int);
+ method public void revokeUriPermission(java.lang.String, android.net.Uri, int);
+ method public void sendBroadcast(android.content.Intent);
+ method public void sendBroadcast(android.content.Intent, java.lang.String);
+ method public void sendBroadcast(android.content.Intent, java.lang.String, android.os.Bundle);
+ method public void sendBroadcast(android.content.Intent, java.lang.String, int);
+ method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+ method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String);
+ method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.os.Bundle);
+ method public void sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, int);
+ method public void sendBroadcastMultiplePermissions(android.content.Intent, java.lang.String[]);
+ method public void sendOrderedBroadcast(android.content.Intent, java.lang.String);
+ method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendOrderedBroadcast(android.content.Intent, java.lang.String, int, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, int, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, int, android.os.Bundle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendStickyBroadcast(android.content.Intent);
+ method public void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle);
+ method public void sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.os.Bundle);
+ method public void sendStickyOrderedBroadcast(android.content.Intent, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle);
+ method public void setTheme(int);
+ method public void setWallpaper(android.graphics.Bitmap) throws java.io.IOException;
+ method public void setWallpaper(java.io.InputStream) throws java.io.IOException;
+ method public void startActivities(android.content.Intent[]);
+ method public void startActivities(android.content.Intent[], android.os.Bundle);
+ method public void startActivity(android.content.Intent);
+ method public void startActivity(android.content.Intent, android.os.Bundle);
+ method public android.content.ComponentName startForegroundService(android.content.Intent);
+ method public android.content.ComponentName startForegroundServiceAsUser(android.content.Intent, android.os.UserHandle);
+ method public boolean startInstrumentation(android.content.ComponentName, java.lang.String, android.os.Bundle);
+ method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int) throws android.content.IntentSender.SendIntentException;
+ method public void startIntentSender(android.content.IntentSender, android.content.Intent, int, int, int, android.os.Bundle) throws android.content.IntentSender.SendIntentException;
+ method public android.content.ComponentName startService(android.content.Intent);
+ method public android.content.ComponentName startServiceAsUser(android.content.Intent, android.os.UserHandle);
+ method public boolean stopService(android.content.Intent);
+ method public boolean stopServiceAsUser(android.content.Intent, android.os.UserHandle);
+ method public void unbindService(android.content.ServiceConnection);
+ method public void unregisterReceiver(android.content.BroadcastReceiver);
+ method public void updateDisplay(int);
+ }
+
+ public deprecated class MockCursor implements android.database.Cursor {
+ ctor public MockCursor();
+ method public void close();
+ method public void copyStringToBuffer(int, android.database.CharArrayBuffer);
+ method public deprecated void deactivate();
+ method public byte[] getBlob(int);
+ method public int getColumnCount();
+ method public int getColumnIndex(java.lang.String);
+ method public int getColumnIndexOrThrow(java.lang.String);
+ method public java.lang.String getColumnName(int);
+ method public java.lang.String[] getColumnNames();
+ method public int getCount();
+ method public double getDouble(int);
+ method public android.os.Bundle getExtras();
+ method public float getFloat(int);
+ method public int getInt(int);
+ method public long getLong(int);
+ method public android.net.Uri getNotificationUri();
+ method public int getPosition();
+ method public short getShort(int);
+ method public java.lang.String getString(int);
+ method public int getType(int);
+ method public boolean getWantsAllOnMoveCalls();
+ method public boolean isAfterLast();
+ method public boolean isBeforeFirst();
+ method public boolean isClosed();
+ method public boolean isFirst();
+ method public boolean isLast();
+ method public boolean isNull(int);
+ method public boolean move(int);
+ method public boolean moveToFirst();
+ method public boolean moveToLast();
+ method public boolean moveToNext();
+ method public boolean moveToPosition(int);
+ method public boolean moveToPrevious();
+ method public void registerContentObserver(android.database.ContentObserver);
+ method public void registerDataSetObserver(android.database.DataSetObserver);
+ method public deprecated boolean requery();
+ method public android.os.Bundle respond(android.os.Bundle);
+ method public void setExtras(android.os.Bundle);
+ method public void setNotificationUri(android.content.ContentResolver, android.net.Uri);
+ method public void unregisterContentObserver(android.database.ContentObserver);
+ method public void unregisterDataSetObserver(android.database.DataSetObserver);
+ }
+
+ public deprecated class MockDialogInterface implements android.content.DialogInterface {
+ ctor public MockDialogInterface();
+ method public void cancel();
+ method public void dismiss();
+ }
+
+ public deprecated class MockPackageManager extends android.content.pm.PackageManager {
+ ctor public MockPackageManager();
+ method public void addCrossProfileIntentFilter(android.content.IntentFilter, int, int, int);
+ method public void addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+ method public void addPackageToPreferred(java.lang.String);
+ method public boolean addPermission(android.content.pm.PermissionInfo);
+ method public boolean addPermissionAsync(android.content.pm.PermissionInfo);
+ method public void addPreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
+ method public boolean canRequestPackageInstalls();
+ method public java.lang.String[] canonicalToCurrentPackageNames(java.lang.String[]);
+ method public int checkPermission(java.lang.String, java.lang.String);
+ method public int checkSignatures(java.lang.String, java.lang.String);
+ method public int checkSignatures(int, int);
+ method public void clearApplicationUserData(java.lang.String, android.content.pm.IPackageDataObserver);
+ method public void clearCrossProfileIntentFilters(int);
+ method public void clearInstantAppCookie();
+ method public void clearPackagePreferredActivities(java.lang.String);
+ method public java.lang.String[] currentToCanonicalPackageNames(java.lang.String[]);
+ method public void deleteApplicationCacheFiles(java.lang.String, android.content.pm.IPackageDataObserver);
+ method public void deleteApplicationCacheFilesAsUser(java.lang.String, int, android.content.pm.IPackageDataObserver);
+ method public void deletePackage(java.lang.String, android.content.pm.IPackageDeleteObserver, int);
+ method public void deletePackageAsUser(java.lang.String, android.content.pm.IPackageDeleteObserver, int, int);
+ method public void extendVerificationTimeout(int, int, long);
+ method public void flushPackageRestrictionsAsUser(int);
+ method public void freeStorage(java.lang.String, long, android.content.IntentSender);
+ method public void freeStorageAndNotify(java.lang.String, long, android.content.pm.IPackageDataObserver);
+ method public android.graphics.drawable.Drawable getActivityBanner(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.graphics.drawable.Drawable getActivityBanner(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.graphics.drawable.Drawable getActivityIcon(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.graphics.drawable.Drawable getActivityIcon(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.ActivityInfo getActivityInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.graphics.drawable.Drawable getActivityLogo(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.graphics.drawable.Drawable getActivityLogo(android.content.Intent) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.util.List<android.content.IntentFilter> getAllIntentFilters(java.lang.String);
+ method public java.util.List<android.content.pm.PermissionGroupInfo> getAllPermissionGroups(int);
+ method public android.graphics.drawable.Drawable getApplicationBanner(android.content.pm.ApplicationInfo);
+ method public android.graphics.drawable.Drawable getApplicationBanner(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int getApplicationEnabledSetting(java.lang.String);
+ method public boolean getApplicationHiddenSettingAsUser(java.lang.String, android.os.UserHandle);
+ method public android.graphics.drawable.Drawable getApplicationIcon(android.content.pm.ApplicationInfo);
+ method public android.graphics.drawable.Drawable getApplicationIcon(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.ApplicationInfo getApplicationInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.ApplicationInfo getApplicationInfoAsUser(java.lang.String, int, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.lang.CharSequence getApplicationLabel(android.content.pm.ApplicationInfo);
+ method public android.graphics.drawable.Drawable getApplicationLogo(android.content.pm.ApplicationInfo);
+ method public android.graphics.drawable.Drawable getApplicationLogo(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.ChangedPackages getChangedPackages(int);
+ method public int getComponentEnabledSetting(android.content.ComponentName);
+ method public android.graphics.drawable.Drawable getDefaultActivityIcon();
+ method public java.lang.String getDefaultBrowserPackageNameAsUser(int);
+ method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo);
+ method public android.content.ComponentName getHomeActivities(java.util.List<android.content.pm.ResolveInfo>);
+ method public int getInstallReason(java.lang.String, android.os.UserHandle);
+ method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int);
+ method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
+ method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int);
+ method public java.util.List<android.content.pm.PackageInfo> getInstalledPackagesAsUser(int, int);
+ method public java.lang.String getInstallerPackageName(java.lang.String);
+ method public java.lang.String getInstantAppAndroidId(java.lang.String, android.os.UserHandle);
+ method public byte[] getInstantAppCookie();
+ method public int getInstantAppCookieMaxBytes();
+ method public int getInstantAppCookieMaxSize();
+ method public android.graphics.drawable.Drawable getInstantAppIcon(java.lang.String);
+ method public android.content.ComponentName getInstantAppInstallerComponent();
+ method public android.content.ComponentName getInstantAppResolverSettingsComponent();
+ method public java.util.List<android.content.pm.InstantAppInfo> getInstantApps();
+ method public android.content.pm.InstrumentationInfo getInstrumentationInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.util.List<android.content.pm.IntentFilterVerificationInfo> getIntentFilterVerifications(java.lang.String);
+ method public int getIntentVerificationStatusAsUser(java.lang.String, int);
+ method public android.content.pm.KeySet getKeySetByAlias(java.lang.String, java.lang.String);
+ method public android.content.Intent getLaunchIntentForPackage(java.lang.String);
+ method public android.content.Intent getLeanbackLaunchIntentForPackage(java.lang.String);
+ method public int getMoveStatus(int);
+ method public java.lang.String getNameForUid(int);
+ method public java.util.List<android.os.storage.VolumeInfo> getPackageCandidateVolumes(android.content.pm.ApplicationInfo);
+ method public android.os.storage.VolumeInfo getPackageCurrentVolume(android.content.pm.ApplicationInfo);
+ method public int[] getPackageGids(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int[] getPackageGids(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.PackageInfo getPackageInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.PackageInfo getPackageInfo(android.content.pm.VersionedPackage, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.PackageInfo getPackageInfoAsUser(java.lang.String, int, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.PackageInstaller getPackageInstaller();
+ method public void getPackageSizeInfoAsUser(java.lang.String, int, android.content.pm.IPackageStatsObserver);
+ method public int getPackageUid(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int getPackageUidAsUser(java.lang.String, int, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int getPackageUidAsUser(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.lang.String[] getPackagesForUid(int);
+ method public java.util.List<android.content.pm.PackageInfo> getPackagesHoldingPermissions(java.lang.String[], int);
+ method public java.lang.String getPermissionControllerPackageName();
+ method public int getPermissionFlags(java.lang.String, java.lang.String, android.os.UserHandle);
+ method public android.content.pm.PermissionGroupInfo getPermissionGroupInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.PermissionInfo getPermissionInfo(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int getPreferredActivities(java.util.List<android.content.IntentFilter>, java.util.List<android.content.ComponentName>, java.lang.String);
+ method public java.util.List<android.content.pm.PackageInfo> getPreferredPackages(int);
+ method public java.util.List<android.os.storage.VolumeInfo> getPrimaryStorageCandidateVolumes();
+ method public android.os.storage.VolumeInfo getPrimaryStorageCurrentVolume();
+ method public android.content.pm.ProviderInfo getProviderInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.pm.ActivityInfo getReceiverInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.res.Resources getResourcesForActivity(android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.res.Resources getResourcesForApplication(android.content.pm.ApplicationInfo);
+ method public android.content.res.Resources getResourcesForApplication(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public android.content.res.Resources getResourcesForApplicationAsUser(java.lang.String, int);
+ method public android.content.pm.ServiceInfo getServiceInfo(android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public java.lang.String getServicesSystemSharedLibraryPackageName();
+ method public java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibraries(int);
+ method public java.util.List<android.content.pm.SharedLibraryInfo> getSharedLibrariesAsUser(int, int);
+ method public java.lang.String getSharedSystemSharedLibraryPackageName();
+ method public android.content.pm.KeySet getSigningKeySet(java.lang.String);
+ method public android.content.pm.FeatureInfo[] getSystemAvailableFeatures();
+ method public java.lang.String[] getSystemSharedLibraryNames();
+ method public java.lang.CharSequence getText(java.lang.String, int, android.content.pm.ApplicationInfo);
+ method public int getUidForSharedUser(java.lang.String);
+ method public android.graphics.drawable.Drawable getUserBadgeForDensity(android.os.UserHandle, int);
+ method public android.graphics.drawable.Drawable getUserBadgeForDensityNoBackground(android.os.UserHandle, int);
+ method public android.graphics.drawable.Drawable getUserBadgedDrawableForDensity(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
+ method public android.graphics.drawable.Drawable getUserBadgedIcon(android.graphics.drawable.Drawable, android.os.UserHandle);
+ method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle);
+ method public android.content.pm.VerifierDeviceIdentity getVerifierDeviceIdentity();
+ method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo);
+ method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+ method public boolean hasSystemFeature(java.lang.String);
+ method public boolean hasSystemFeature(java.lang.String, int);
+ method public int installExistingPackage(java.lang.String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int installExistingPackage(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public int installExistingPackageAsUser(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public void installPackage(android.net.Uri, android.content.pm.IPackageInstallObserver, int, java.lang.String);
+ method public void installPackage(android.net.Uri, android.app.PackageInstallObserver, int, java.lang.String);
+ method public boolean isInstantApp();
+ method public boolean isInstantApp(java.lang.String);
+ method public boolean isPackageAvailable(java.lang.String);
+ method public boolean isPackageSuspendedForUser(java.lang.String, int);
+ method public boolean isPermissionReviewModeEnabled();
+ method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String);
+ method public boolean isSafeMode();
+ method public boolean isSignedBy(java.lang.String, android.content.pm.KeySet);
+ method public boolean isSignedByExactly(java.lang.String, android.content.pm.KeySet);
+ method public boolean isUpgrade();
+ method public android.graphics.drawable.Drawable loadItemIcon(android.content.pm.PackageItemInfo, android.content.pm.ApplicationInfo);
+ method public android.graphics.drawable.Drawable loadUnbadgedItemIcon(android.content.pm.PackageItemInfo, android.content.pm.ApplicationInfo);
+ method public int movePackage(java.lang.String, android.os.storage.VolumeInfo);
+ method public int movePrimaryStorage(android.os.storage.VolumeInfo);
+ method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, int);
+ method public java.util.List<android.content.pm.ProviderInfo> queryContentProviders(java.lang.String, int, int);
+ method public java.util.List<android.content.pm.InstrumentationInfo> queryInstrumentation(java.lang.String, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivities(android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivitiesAsUser(android.content.Intent, int, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentActivityOptions(android.content.ComponentName, android.content.Intent[], android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProviders(android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentContentProvidersAsUser(android.content.Intent, int, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentServices(android.content.Intent, int);
+ method public java.util.List<android.content.pm.ResolveInfo> queryIntentServicesAsUser(android.content.Intent, int, int);
+ method public java.util.List<android.content.pm.PermissionInfo> queryPermissionsByGroup(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback);
+ method public void registerMoveCallback(android.content.pm.PackageManager.MoveCallback, android.os.Handler);
+ method public void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener);
+ method public void removePackageFromPreferred(java.lang.String);
+ method public void removePermission(java.lang.String);
+ method public void replacePreferredActivity(android.content.IntentFilter, int, android.content.ComponentName[], android.content.ComponentName);
+ method public android.content.pm.ResolveInfo resolveActivity(android.content.Intent, int);
+ method public android.content.pm.ResolveInfo resolveActivityAsUser(android.content.Intent, int, int);
+ method public android.content.pm.ProviderInfo resolveContentProvider(java.lang.String, int);
+ method public android.content.pm.ProviderInfo resolveContentProviderAsUser(java.lang.String, int, int);
+ method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int);
+ method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
+ method public void setApplicationCategoryHint(java.lang.String, int);
+ method public void setApplicationEnabledSetting(java.lang.String, int, int);
+ method public boolean setApplicationHiddenSettingAsUser(java.lang.String, boolean, android.os.UserHandle);
+ method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
+ method public boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int);
+ method public void setInstallerPackageName(java.lang.String, java.lang.String);
+ method public boolean setInstantAppCookie(byte[]);
+ method public java.lang.String[] setPackagesSuspendedAsUser(java.lang.String[], boolean, int);
+ method public void setUpdateAvailable(java.lang.String, boolean);
+ method public boolean shouldShowRequestPermissionRationale(java.lang.String);
+ method public void unregisterMoveCallback(android.content.pm.PackageManager.MoveCallback);
+ method public void updateInstantAppCookie(byte[]);
+ method public boolean updateIntentVerificationStatusAsUser(java.lang.String, int, int);
+ method public void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle);
+ method public void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
+ method public void verifyPendingInstall(int, int);
+ }
+
+ public deprecated class MockResources extends android.content.res.Resources {
+ ctor public MockResources();
+ method public int getColor(int) throws android.content.res.Resources.NotFoundException;
+ method public android.content.res.ColorStateList getColorStateList(int) throws android.content.res.Resources.NotFoundException;
+ method public android.graphics.drawable.Drawable getDrawable(int) throws android.content.res.Resources.NotFoundException;
+ method public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+ }
+
+}
+
diff --git a/test-runner/api/android-test-mock-removed.txt b/test-runner/api/android-test-mock-removed.txt
new file mode 100644
index 0000000..9920f63d
--- /dev/null
+++ b/test-runner/api/android-test-mock-removed.txt
@@ -0,0 +1,9 @@
+package android.test.mock {
+
+ public deprecated class MockPackageManager extends android.content.pm.PackageManager {
+ method public deprecated java.lang.String getDefaultBrowserPackageName(int);
+ method public deprecated boolean setDefaultBrowserPackageName(java.lang.String, int);
+ }
+
+}
+
diff --git a/test-runner/api/android-test-runner-current.txt b/test-runner/api/android-test-runner-current.txt
new file mode 100644
index 0000000..34121dd
--- /dev/null
+++ b/test-runner/api/android-test-runner-current.txt
@@ -0,0 +1,335 @@
+package android.test {
+
+ public abstract deprecated class ActivityInstrumentationTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
+ ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class<T>);
+ ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class<T>, boolean);
+ method public T getActivity();
+ method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
+ }
+
+ public abstract deprecated class ActivityInstrumentationTestCase2<T extends android.app.Activity> extends android.test.ActivityTestCase {
+ ctor public deprecated ActivityInstrumentationTestCase2(java.lang.String, java.lang.Class<T>);
+ ctor public ActivityInstrumentationTestCase2(java.lang.Class<T>);
+ method public T getActivity();
+ method public void setActivityInitialTouchMode(boolean);
+ method public void setActivityIntent(android.content.Intent);
+ }
+
+ public abstract deprecated class ActivityTestCase extends android.test.InstrumentationTestCase {
+ ctor public ActivityTestCase();
+ method protected android.app.Activity getActivity();
+ method protected void scrubClass(java.lang.Class<?>) throws java.lang.IllegalAccessException;
+ method protected void setActivity(android.app.Activity);
+ }
+
+ public abstract deprecated class ActivityUnitTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
+ ctor public ActivityUnitTestCase(java.lang.Class<T>);
+ method public T getActivity();
+ method public int getFinishedActivityRequest();
+ method public int getRequestedOrientation();
+ method public android.content.Intent getStartedActivityIntent();
+ method public int getStartedActivityRequest();
+ method public boolean isFinishCalled();
+ method public void setActivityContext(android.content.Context);
+ method public void setApplication(android.app.Application);
+ method protected T startActivity(android.content.Intent, android.os.Bundle, java.lang.Object);
+ }
+
+ public deprecated class AndroidTestRunner extends junit.runner.BaseTestRunner {
+ ctor public AndroidTestRunner();
+ method public void addTestListener(junit.framework.TestListener);
+ method public void clearTestListeners();
+ method protected junit.framework.TestResult createTestResult();
+ method public java.util.List<junit.framework.TestCase> getTestCases();
+ method public java.lang.String getTestClassName();
+ method public junit.framework.TestResult getTestResult();
+ method protected void runFailed(java.lang.String);
+ method public void runTest();
+ method public void runTest(junit.framework.TestResult);
+ method public void setContext(android.content.Context);
+ method public deprecated void setInstrumentaiton(android.app.Instrumentation);
+ method public void setInstrumentation(android.app.Instrumentation);
+ method public void setTest(junit.framework.Test);
+ method public void setTestClassName(java.lang.String, java.lang.String);
+ method public void testEnded(java.lang.String);
+ method public void testFailed(int, junit.framework.Test, java.lang.Throwable);
+ method public void testStarted(java.lang.String);
+ }
+
+ public abstract deprecated class ApplicationTestCase<T extends android.app.Application> extends android.test.AndroidTestCase {
+ ctor public ApplicationTestCase(java.lang.Class<T>);
+ method protected final void createApplication();
+ method public T getApplication();
+ method public android.content.Context getSystemContext();
+ method protected final void terminateApplication();
+ method public final void testApplicationTestCaseSetUpProperly() throws java.lang.Exception;
+ }
+
+ public deprecated class AssertionFailedError extends java.lang.Error {
+ ctor public AssertionFailedError();
+ ctor public AssertionFailedError(java.lang.String);
+ }
+
+ public deprecated class ComparisonFailure extends android.test.AssertionFailedError {
+ ctor public ComparisonFailure(java.lang.String, java.lang.String, java.lang.String);
+ }
+
+ public deprecated class InstrumentationTestRunner extends android.app.Instrumentation implements android.test.TestSuiteProvider {
+ ctor public InstrumentationTestRunner();
+ method public junit.framework.TestSuite getAllTests();
+ method protected android.test.AndroidTestRunner getAndroidTestRunner();
+ method public android.os.Bundle getArguments();
+ method public java.lang.ClassLoader getLoader();
+ method public junit.framework.TestSuite getTestSuite();
+ field public static final java.lang.String REPORT_KEY_NAME_CLASS = "class";
+ field public static final java.lang.String REPORT_KEY_NAME_TEST = "test";
+ field public static final java.lang.String REPORT_KEY_NUM_CURRENT = "current";
+ field public static final java.lang.String REPORT_KEY_NUM_TOTAL = "numtests";
+ field public static final java.lang.String REPORT_KEY_STACK = "stack";
+ field public static final java.lang.String REPORT_VALUE_ID = "InstrumentationTestRunner";
+ field public static final int REPORT_VALUE_RESULT_ERROR = -1; // 0xffffffff
+ field public static final int REPORT_VALUE_RESULT_FAILURE = -2; // 0xfffffffe
+ field public static final int REPORT_VALUE_RESULT_OK = 0; // 0x0
+ field public static final int REPORT_VALUE_RESULT_START = 1; // 0x1
+ }
+
+ public deprecated class IsolatedContext extends android.content.ContextWrapper {
+ ctor public IsolatedContext(android.content.ContentResolver, android.content.Context);
+ method public java.util.List<android.content.Intent> getAndClearBroadcastIntents();
+ }
+
+ public class LoaderTestCase extends android.test.AndroidTestCase {
+ ctor public LoaderTestCase();
+ method public <T> T getLoaderResultSynchronously(android.content.Loader<T>);
+ }
+
+ public final deprecated class MoreAsserts {
+ method public static void assertAssignableFrom(java.lang.Class<?>, java.lang.Object);
+ method public static void assertAssignableFrom(java.lang.Class<?>, java.lang.Class<?>);
+ method public static java.util.regex.MatchResult assertContainsRegex(java.lang.String, java.lang.String, java.lang.String);
+ method public static java.util.regex.MatchResult assertContainsRegex(java.lang.String, java.lang.String);
+ method public static void assertContentsInAnyOrder(java.lang.String, java.lang.Iterable<?>, java.lang.Object...);
+ method public static void assertContentsInAnyOrder(java.lang.Iterable<?>, java.lang.Object...);
+ method public static void assertContentsInOrder(java.lang.String, java.lang.Iterable<?>, java.lang.Object...);
+ method public static void assertContentsInOrder(java.lang.Iterable<?>, java.lang.Object...);
+ method public static void assertEmpty(java.lang.String, java.lang.Iterable<?>);
+ method public static void assertEmpty(java.lang.Iterable<?>);
+ method public static void assertEmpty(java.lang.String, java.util.Map<?, ?>);
+ method public static void assertEmpty(java.util.Map<?, ?>);
+ method public static void assertEquals(java.lang.String, byte[], byte[]);
+ method public static void assertEquals(byte[], byte[]);
+ method public static void assertEquals(java.lang.String, int[], int[]);
+ method public static void assertEquals(int[], int[]);
+ method public static void assertEquals(java.lang.String, double[], double[]);
+ method public static void assertEquals(double[], double[]);
+ method public static void assertEquals(java.lang.String, java.lang.Object[], java.lang.Object[]);
+ method public static void assertEquals(java.lang.Object[], java.lang.Object[]);
+ method public static void assertEquals(java.lang.String, java.util.Set<? extends java.lang.Object>, java.util.Set<? extends java.lang.Object>);
+ method public static void assertEquals(java.util.Set<? extends java.lang.Object>, java.util.Set<? extends java.lang.Object>);
+ method public static java.util.regex.MatchResult assertMatchesRegex(java.lang.String, java.lang.String, java.lang.String);
+ method public static java.util.regex.MatchResult assertMatchesRegex(java.lang.String, java.lang.String);
+ method public static void assertNotContainsRegex(java.lang.String, java.lang.String, java.lang.String);
+ method public static void assertNotContainsRegex(java.lang.String, java.lang.String);
+ method public static void assertNotEmpty(java.lang.String, java.lang.Iterable<?>);
+ method public static void assertNotEmpty(java.lang.Iterable<?>);
+ method public static void assertNotEmpty(java.lang.String, java.util.Map<?, ?>);
+ method public static void assertNotEmpty(java.util.Map<?, ?>);
+ method public static void assertNotEqual(java.lang.String, java.lang.Object, java.lang.Object);
+ method public static void assertNotEqual(java.lang.Object, java.lang.Object);
+ method public static void assertNotMatchesRegex(java.lang.String, java.lang.String, java.lang.String);
+ method public static void assertNotMatchesRegex(java.lang.String, java.lang.String);
+ method public static void checkEqualsAndHashCodeMethods(java.lang.String, java.lang.Object, java.lang.Object, boolean);
+ method public static void checkEqualsAndHashCodeMethods(java.lang.Object, java.lang.Object, boolean);
+ }
+
+ public abstract deprecated class ProviderTestCase<T extends android.content.ContentProvider> extends android.test.InstrumentationTestCase {
+ ctor public ProviderTestCase(java.lang.Class<T>, java.lang.String);
+ method public android.test.mock.MockContentResolver getMockContentResolver();
+ method public android.test.IsolatedContext getMockContext();
+ method public T getProvider();
+ method public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class<T>, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public abstract class ProviderTestCase2<T extends android.content.ContentProvider> extends android.test.AndroidTestCase {
+ ctor public ProviderTestCase2(java.lang.Class<T>, java.lang.String);
+ method public android.test.mock.MockContentResolver getMockContentResolver();
+ method public android.test.IsolatedContext getMockContext();
+ method public T getProvider();
+ method public static <T extends android.content.ContentProvider> android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class<T>, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public deprecated class RenamingDelegatingContext extends android.content.ContextWrapper {
+ ctor public RenamingDelegatingContext(android.content.Context, java.lang.String);
+ ctor public RenamingDelegatingContext(android.content.Context, android.content.Context, java.lang.String);
+ method public java.lang.String getDatabasePrefix();
+ method public void makeExistingFilesAndDbsAccessible();
+ method public static <T extends android.content.ContentProvider> T providerWithRenamedContext(java.lang.Class<T>, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public static <T extends android.content.ContentProvider> T providerWithRenamedContext(java.lang.Class<T>, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public abstract deprecated class ServiceTestCase<T extends android.app.Service> extends android.test.AndroidTestCase {
+ ctor public ServiceTestCase(java.lang.Class<T>);
+ method protected android.os.IBinder bindService(android.content.Intent);
+ method public android.app.Application getApplication();
+ method public T getService();
+ method public android.content.Context getSystemContext();
+ method public void setApplication(android.app.Application);
+ method protected void setupService();
+ method protected void shutdownService();
+ method protected void startService(android.content.Intent);
+ method public void testServiceTestCaseSetUpProperly() throws java.lang.Exception;
+ }
+
+ public abstract deprecated class SingleLaunchActivityTestCase<T extends android.app.Activity> extends android.test.InstrumentationTestCase {
+ ctor public SingleLaunchActivityTestCase(java.lang.String, java.lang.Class<T>);
+ method public T getActivity();
+ method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception;
+ }
+
+ public deprecated class SyncBaseInstrumentation extends android.test.InstrumentationTestCase {
+ ctor public SyncBaseInstrumentation();
+ method protected void cancelSyncsandDisableAutoSync();
+ method protected void syncProvider(android.net.Uri, java.lang.String, java.lang.String) throws java.lang.Exception;
+ }
+
+ public abstract deprecated interface TestSuiteProvider {
+ method public abstract junit.framework.TestSuite getTestSuite();
+ }
+
+ public deprecated class TouchUtils {
+ ctor public TouchUtils();
+ method public static void clickView(android.test.InstrumentationTestCase, android.view.View);
+ method public static deprecated void drag(android.test.ActivityInstrumentationTestCase, float, float, float, float, int);
+ method public static void drag(android.test.InstrumentationTestCase, float, float, float, float, int);
+ method public static deprecated void dragQuarterScreenDown(android.test.ActivityInstrumentationTestCase);
+ method public static void dragQuarterScreenDown(android.test.InstrumentationTestCase, android.app.Activity);
+ method public static deprecated void dragQuarterScreenUp(android.test.ActivityInstrumentationTestCase);
+ method public static void dragQuarterScreenUp(android.test.InstrumentationTestCase, android.app.Activity);
+ method public static deprecated int dragViewBy(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
+ method public static deprecated int dragViewBy(android.test.InstrumentationTestCase, android.view.View, int, int, int);
+ method public static deprecated int dragViewTo(android.test.ActivityInstrumentationTestCase, android.view.View, int, int, int);
+ method public static int dragViewTo(android.test.InstrumentationTestCase, android.view.View, int, int, int);
+ method public static deprecated void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View);
+ method public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View);
+ method public static deprecated void dragViewToBottom(android.test.ActivityInstrumentationTestCase, android.view.View, int);
+ method public static void dragViewToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.View, int);
+ method public static deprecated void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View);
+ method public static deprecated void dragViewToTop(android.test.ActivityInstrumentationTestCase, android.view.View, int);
+ method public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View);
+ method public static void dragViewToTop(android.test.InstrumentationTestCase, android.view.View, int);
+ method public static deprecated int dragViewToX(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
+ method public static int dragViewToX(android.test.InstrumentationTestCase, android.view.View, int, int);
+ method public static deprecated int dragViewToY(android.test.ActivityInstrumentationTestCase, android.view.View, int, int);
+ method public static int dragViewToY(android.test.InstrumentationTestCase, android.view.View, int, int);
+ method public static deprecated void longClickView(android.test.ActivityInstrumentationTestCase, android.view.View);
+ method public static void longClickView(android.test.InstrumentationTestCase, android.view.View);
+ method public static deprecated void scrollToBottom(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
+ method public static void scrollToBottom(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
+ method public static deprecated void scrollToTop(android.test.ActivityInstrumentationTestCase, android.view.ViewGroup);
+ method public static void scrollToTop(android.test.InstrumentationTestCase, android.app.Activity, android.view.ViewGroup);
+ method public static void tapView(android.test.InstrumentationTestCase, android.view.View);
+ method public static void touchAndCancelView(android.test.InstrumentationTestCase, android.view.View);
+ }
+
+ public deprecated class ViewAsserts {
+ method public static void assertBaselineAligned(android.view.View, android.view.View);
+ method public static void assertBottomAligned(android.view.View, android.view.View);
+ method public static void assertBottomAligned(android.view.View, android.view.View, int);
+ method public static void assertGroupContains(android.view.ViewGroup, android.view.View);
+ method public static void assertGroupIntegrity(android.view.ViewGroup);
+ method public static void assertGroupNotContains(android.view.ViewGroup, android.view.View);
+ method public static void assertHasScreenCoordinates(android.view.View, android.view.View, int, int);
+ method public static void assertHorizontalCenterAligned(android.view.View, android.view.View);
+ method public static void assertLeftAligned(android.view.View, android.view.View);
+ method public static void assertLeftAligned(android.view.View, android.view.View, int);
+ method public static void assertOffScreenAbove(android.view.View, android.view.View);
+ method public static void assertOffScreenBelow(android.view.View, android.view.View);
+ method public static void assertOnScreen(android.view.View, android.view.View);
+ method public static void assertRightAligned(android.view.View, android.view.View);
+ method public static void assertRightAligned(android.view.View, android.view.View, int);
+ method public static void assertTopAligned(android.view.View, android.view.View);
+ method public static void assertTopAligned(android.view.View, android.view.View, int);
+ method public static void assertVerticalCenterAligned(android.view.View, android.view.View);
+ }
+
+}
+
+package android.test.suitebuilder {
+
+ public deprecated class TestMethod {
+ ctor public TestMethod(java.lang.reflect.Method, java.lang.Class<? extends junit.framework.TestCase>);
+ ctor public TestMethod(java.lang.String, java.lang.Class<? extends junit.framework.TestCase>);
+ ctor public TestMethod(junit.framework.TestCase);
+ method public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException;
+ method public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T>);
+ method public java.lang.Class<? extends junit.framework.TestCase> getEnclosingClass();
+ method public java.lang.String getEnclosingClassname();
+ method public java.lang.String getName();
+ }
+
+ public deprecated class TestSuiteBuilder {
+ ctor public TestSuiteBuilder(java.lang.Class);
+ ctor public TestSuiteBuilder(java.lang.String, java.lang.ClassLoader);
+ method public android.test.suitebuilder.TestSuiteBuilder addRequirements(java.util.List<com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>>);
+ method public final android.test.suitebuilder.TestSuiteBuilder addRequirements(com.android.internal.util.Predicate<android.test.suitebuilder.TestMethod>...);
+ method public final junit.framework.TestSuite build();
+ method public android.test.suitebuilder.TestSuiteBuilder excludePackages(java.lang.String...);
+ method protected java.lang.String getSuiteName();
+ method public final android.test.suitebuilder.TestSuiteBuilder includeAllPackagesUnderHere();
+ method public android.test.suitebuilder.TestSuiteBuilder includePackages(java.lang.String...);
+ method public android.test.suitebuilder.TestSuiteBuilder named(java.lang.String);
+ }
+
+ public static deprecated class TestSuiteBuilder.FailedToCreateTests extends junit.framework.TestCase {
+ ctor public TestSuiteBuilder.FailedToCreateTests(java.lang.Exception);
+ method public void testSuiteConstructionFailed();
+ }
+
+}
+
+package junit.runner {
+
+ public abstract class BaseTestRunner implements junit.framework.TestListener {
+ ctor public BaseTestRunner();
+ method public synchronized void addError(junit.framework.Test, java.lang.Throwable);
+ method public synchronized void addFailure(junit.framework.Test, junit.framework.AssertionFailedError);
+ method protected void clearStatus();
+ method public java.lang.String elapsedTimeAsString(long);
+ method public synchronized void endTest(junit.framework.Test);
+ method public java.lang.String extractClassName(java.lang.String);
+ method public static java.lang.String getFilteredTrace(java.lang.Throwable);
+ method public static java.lang.String getFilteredTrace(java.lang.String);
+ method public deprecated junit.runner.TestSuiteLoader getLoader();
+ method public static java.lang.String getPreference(java.lang.String);
+ method public static int getPreference(java.lang.String, int);
+ method protected static java.util.Properties getPreferences();
+ method public junit.framework.Test getTest(java.lang.String);
+ method public static deprecated boolean inVAJava();
+ method protected java.lang.Class<?> loadSuiteClass(java.lang.String) throws java.lang.ClassNotFoundException;
+ method protected java.lang.String processArguments(java.lang.String[]);
+ method protected abstract void runFailed(java.lang.String);
+ method public static void savePreferences() throws java.io.IOException;
+ method public void setLoading(boolean);
+ method public void setPreference(java.lang.String, java.lang.String);
+ method protected static void setPreferences(java.util.Properties);
+ method protected static boolean showStackRaw();
+ method public synchronized void startTest(junit.framework.Test);
+ method public abstract void testEnded(java.lang.String);
+ method public abstract void testFailed(int, junit.framework.Test, java.lang.Throwable);
+ method public abstract void testStarted(java.lang.String);
+ method public static java.lang.String truncate(java.lang.String);
+ method protected boolean useReloadingTestSuiteLoader();
+ field public static final java.lang.String SUITE_METHODNAME = "suite";
+ }
+
+ public abstract interface TestSuiteLoader {
+ method public abstract java.lang.Class load(java.lang.String) throws java.lang.ClassNotFoundException;
+ method public abstract java.lang.Class reload(java.lang.Class) throws java.lang.ClassNotFoundException;
+ }
+
+ public class Version {
+ method public static java.lang.String id();
+ }
+
+}
+
diff --git a/test-runner/api/android-test-runner-removed.txt b/test-runner/api/android-test-runner-removed.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test-runner/api/android-test-runner-removed.txt
diff --git a/test-runner/api/apicheck_msg_android_test_mock.txt b/test-runner/api/apicheck_msg_android_test_mock.txt
new file mode 100644
index 0000000..e388935
--- /dev/null
+++ b/test-runner/api/apicheck_msg_android_test_mock.txt
@@ -0,0 +1,17 @@
+
+******************************
+You have tried to change the API from what has been previously approved.
+
+To make these errors go away, you have two choices:
+ 1) You can add "@hide" javadoc comments to the methods, etc. listed in the
+ errors above.
+
+ 2) You can update android-test-mock-current.txt by executing the following command:
+ make update-android-test-mock-api
+
+ To submit the revised android-test-mock-current.txt to the main Android repository,
+ you will need approval.
+******************************
+
+
+
diff --git a/test-runner/api/apicheck_msg_android_test_runner.txt b/test-runner/api/apicheck_msg_android_test_runner.txt
new file mode 100644
index 0000000..cf2d15e
--- /dev/null
+++ b/test-runner/api/apicheck_msg_android_test_runner.txt
@@ -0,0 +1,17 @@
+
+******************************
+You have tried to change the API from what has been previously approved.
+
+To make these errors go away, you have two choices:
+ 1) You can add "@hide" javadoc comments to the methods, etc. listed in the
+ errors above.
+
+ 2) You can update android-test-runner-current.txt by executing the following command:
+ make update-android-test-runner-api
+
+ To submit the revised android-test-runner-current.txt to the main Android repository,
+ you will need approval.
+******************************
+
+
+