From 1eac68b1219cb1b77a082a4edcf7c3acfd8605ca Mon Sep 17 00:00:00 2001 From: Jackal Guo Date: Wed, 19 Feb 2020 09:37:10 +0800 Subject: [PATCH] Fix failure in postsubmit There are some package-pricate classes and methods in a11y framework so we use DexmakerShareClassLoaderRule to mock them. However, this results in some unexpected excpetions during testing. Change some of them to public with @VisibleForTesting annotation, and remove the DexmakerShareClassLoaderRule to avoid the exception. Bug: 149362507 Test: atest FrameworksServicesTests:com.android.server.accessibility Change-Id: I1e526ca79cf14b3d394ee132480dcd8c226ae69a --- .../server/accessibility/AccessibilityWindowManager.java | 5 ++++- .../android/server/accessibility/SystemActionPerformer.java | 3 ++- .../AbstractAccessibilityServiceConnectionTest.java | 6 ------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java index 8c0058130510c..446e8821298f2 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityWindowManager.java @@ -43,6 +43,7 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityWindowInfo; import android.view.accessibility.IAccessibilityInteractionConnection; +import com.android.internal.annotations.VisibleForTesting; import com.android.server.accessibility.AccessibilitySecurityPolicy.AccessibilityUserManager; import com.android.server.wm.WindowManagerInternal; @@ -781,7 +782,9 @@ public class AccessibilityWindowManager { /** * Wrapper of accessibility interaction connection for window. */ - final class RemoteAccessibilityConnection implements IBinder.DeathRecipient { + // In order to avoid using DexmakerShareClassLoaderRule, make this class visible for testing. + @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) + public final class RemoteAccessibilityConnection implements IBinder.DeathRecipient { private final int mUid; private final String mPackageName; private final int mWindowId; diff --git a/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java b/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java index 11dcfefd7e3b1..ef8d524bee25a 100644 --- a/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java +++ b/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java @@ -193,7 +193,8 @@ public class SystemActionPerformer { /** * This method returns the list of available system actions. */ - List getSystemActions() { + @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) + public List getSystemActions() { List systemActions = new ArrayList<>(); synchronized (mSystemActionLock) { for (Map.Entry entry : mRegisteredSystemActions.entrySet()) { diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java index dfe950ea93d65..69ca643f1abfc 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java @@ -78,7 +78,6 @@ import android.os.PowerManager; import android.os.Process; import android.os.RemoteCallback; import android.os.RemoteException; -import android.testing.DexmakerShareClassLoaderRule; import android.view.Display; import android.view.KeyEvent; import android.view.accessibility.AccessibilityNodeInfo; @@ -91,7 +90,6 @@ import com.android.server.accessibility.test.MessageCapturingHandler; import com.android.server.wm.WindowManagerInternal; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; @@ -147,10 +145,6 @@ public class AbstractAccessibilityServiceConnectionTest { private ArrayList mDisplayList = new ArrayList<>(Arrays.asList( Display.DEFAULT_DISPLAY, SECONDARY_DISPLAY_ID)); - // To mock package-private class. - @Rule public final DexmakerShareClassLoaderRule mDexmakerShareClassLoaderRule = - new DexmakerShareClassLoaderRule(); - @Mock private Context mMockContext; @Mock private IPowerManager mMockIPowerManager; @Mock private PackageManager mMockPackageManager;