From de5809a4f6796f21d6dc1b7a099e09ac4492f649 Mon Sep 17 00:00:00 2001 From: Chun-Ku Lin Date: Fri, 2 Jun 2023 23:16:48 +0000 Subject: [PATCH] Pass the constant actionId directly when calling performAccessibilityAction **Root cause** When constructing an AccessibilityAction, robolectric's ShadowAccessibilityAction uses reflection to get the private static final variable `ACTION_TYPE_MASK` to check if the passed action is a valid action. However, since ag/I744b3a94fe3c3cc3b559758a95ab0b5b181155bb we renamed the internal variable, hence robolectric is not able to find the ACTION_TYPE_MASK variable when using reflection. By passing the action id directly when calling performAccessibilityAction, we don't need to use ShadowAccessibilityAction anymore. Bug: 279082331 Test: atest AccessibilityQuickSettingsTooltipWindowTest Change-Id: Ie956de44c9b19a2d19470ad670866d77ca272b3b --- .../AccessibilityQuickSettingsTooltipWindowTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java index 49602bcb2e1..104b9f87700 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java @@ -19,7 +19,9 @@ package com.android.settings.accessibility; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; +import static org.robolectric.Shadows.shadowOf; +import android.app.Application; import android.content.Context; import android.view.View; import android.view.accessibility.AccessibilityNodeInfo; @@ -37,8 +39,6 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.ShadowLooper; @@ -61,7 +61,7 @@ public class AccessibilityQuickSettingsTooltipWindowTest { @Before public void setUp() { mTooltipView = new AccessibilityQuickSettingsTooltipWindow(mContext); - mView = new View(RuntimeEnvironment.application); + mView = new View(mContext); } @Test @@ -92,7 +92,7 @@ public class AccessibilityQuickSettingsTooltipWindowTest { final boolean isActionPerformed = mTooltipView.getContentView().performAccessibilityAction( - AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(), + AccessibilityNodeInfo.ACTION_CLICK, /* arguments= */ null); assertThat(isActionPerformed).isTrue(); @@ -125,7 +125,8 @@ public class AccessibilityQuickSettingsTooltipWindowTest { } private static PopupWindow getLatestPopupWindow() { - final ShadowApplication shadowApplication = Shadow.extract(RuntimeEnvironment.application); + final ShadowApplication shadowApplication = shadowOf( + (Application) ApplicationProvider.getApplicationContext()); return shadowApplication.getLatestPopupWindow(); } }