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

Commit d662113d authored by Eric Biggers's avatar Eric Biggers Committed by Automerger Merge Worker
Browse files

Merge "Fix TrustManagerServiceTest failures due to PackageMonitor changes" into main am: 0cd23b3a

parents b5e39568 0cd23b3a
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -1940,7 +1940,8 @@ public class TrustManagerService extends SystemService {
        };
        };
    }
    }


    private final PackageMonitor mPackageMonitor = new PackageMonitor() {
    @VisibleForTesting
    final PackageMonitor mPackageMonitor = new PackageMonitor() {
        @Override
        @Override
        public void onSomePackagesChanged() {
        public void onSomePackagesChanged() {
            refreshAgentList(UserHandle.USER_ALL);
            refreshAgentList(UserHandle.USER_ALL);
+11 −24
Original line number Original line Diff line number Diff line
@@ -47,7 +47,6 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricManager;
import android.hardware.biometrics.BiometricManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.HandlerThread;
@@ -280,7 +279,7 @@ public class TrustManagerServiceTest {
                "com.android/.SystemTrustAgent");
                "com.android/.SystemTrustAgent");
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ true);
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ true);


        mMockContext.sendPackageChangedBroadcast(newAgentComponentName);
        notifyPackageChanged(newAgentComponentName);


        assertThat(mEnabledTrustAgents).containsExactly(newAgentComponentName);
        assertThat(mEnabledTrustAgents).containsExactly(newAgentComponentName);
        assertThat(mKnownTrustAgents).containsExactly(newAgentComponentName);
        assertThat(mKnownTrustAgents).containsExactly(newAgentComponentName);
@@ -299,7 +298,7 @@ public class TrustManagerServiceTest {
                "com.android/.SystemTrustAgent");
                "com.android/.SystemTrustAgent");
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ true);
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ true);


        mMockContext.sendPackageChangedBroadcast(newAgentComponentName);
        notifyPackageChanged(newAgentComponentName);


        assertThat(mEnabledTrustAgents).containsExactly(defaultTrustAgent);
        assertThat(mEnabledTrustAgents).containsExactly(defaultTrustAgent);
        assertThat(mKnownTrustAgents).containsExactly(defaultTrustAgent, newAgentComponentName);
        assertThat(mKnownTrustAgents).containsExactly(defaultTrustAgent, newAgentComponentName);
@@ -312,7 +311,7 @@ public class TrustManagerServiceTest {
                "com.user/.UserTrustAgent");
                "com.user/.UserTrustAgent");
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ false);
        addTrustAgent(newAgentComponentName, /* isSystemApp= */ false);


        mMockContext.sendPackageChangedBroadcast(newAgentComponentName);
        notifyPackageChanged(newAgentComponentName);


        assertThat(mEnabledTrustAgents).isEmpty();
        assertThat(mEnabledTrustAgents).isEmpty();
        assertThat(mKnownTrustAgents).containsExactly(newAgentComponentName);
        assertThat(mKnownTrustAgents).containsExactly(newAgentComponentName);
@@ -330,7 +329,7 @@ public class TrustManagerServiceTest {
        // Simulate user turning off systemTrustAgent2
        // Simulate user turning off systemTrustAgent2
        mLockPatternUtils.setEnabledTrustAgents(List.of(systemTrustAgent1), TEST_USER_ID);
        mLockPatternUtils.setEnabledTrustAgents(List.of(systemTrustAgent1), TEST_USER_ID);


        mMockContext.sendPackageChangedBroadcast(systemTrustAgent2);
        notifyPackageChanged(systemTrustAgent2);


        assertThat(mEnabledTrustAgents).containsExactly(systemTrustAgent1);
        assertThat(mEnabledTrustAgents).containsExactly(systemTrustAgent1);
    }
    }
@@ -440,11 +439,16 @@ public class TrustManagerServiceTest {
                permission, PackageManager.PERMISSION_GRANTED);
                permission, PackageManager.PERMISSION_GRANTED);
    }
    }


    private void notifyPackageChanged(ComponentName changedComponent) {
        mService.mPackageMonitor.onPackageChanged(
                changedComponent.getPackageName(),
                UserHandle.of(TEST_USER_ID).getUid(1234),
                new String[] { changedComponent.getClassName() });
    }

    /** A mock Context that allows the test process to send protected broadcasts. */
    /** A mock Context that allows the test process to send protected broadcasts. */
    private static final class MockContext extends TestableContext {
    private static final class MockContext extends TestableContext {


        private final ArrayList<BroadcastReceiver> mPackageChangedBroadcastReceivers =
                new ArrayList<>();
        private final ArrayList<BroadcastReceiver> mUserStartedBroadcastReceivers =
        private final ArrayList<BroadcastReceiver> mUserStartedBroadcastReceivers =
                new ArrayList<>();
                new ArrayList<>();


@@ -458,9 +462,6 @@ public class TrustManagerServiceTest {
                UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
                UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
                @Nullable Handler scheduler) {
                @Nullable Handler scheduler) {


            if (filter.hasAction(Intent.ACTION_PACKAGE_CHANGED)) {
                mPackageChangedBroadcastReceivers.add(receiver);
            }
            if (filter.hasAction(Intent.ACTION_USER_STARTED)) {
            if (filter.hasAction(Intent.ACTION_USER_STARTED)) {
                mUserStartedBroadcastReceivers.add(receiver);
                mUserStartedBroadcastReceivers.add(receiver);
            }
            }
@@ -473,20 +474,6 @@ public class TrustManagerServiceTest {
                @Nullable String receiverPermission, @Nullable Bundle options) {
                @Nullable String receiverPermission, @Nullable Bundle options) {
        }
        }


        void sendPackageChangedBroadcast(ComponentName changedComponent) {
            Intent intent = new Intent(
                    Intent.ACTION_PACKAGE_CHANGED,
                    Uri.fromParts(URI_SCHEME_PACKAGE,
                            changedComponent.getPackageName(), /* fragment= */ null))
                    .putExtra(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST,
                            new String[]{changedComponent.getClassName()})
                    .putExtra(Intent.EXTRA_USER_HANDLE, TEST_USER_ID)
                    .putExtra(Intent.EXTRA_UID, UserHandle.of(TEST_USER_ID).getUid(1234));
            for (BroadcastReceiver receiver : mPackageChangedBroadcastReceivers) {
                receiver.onReceive(this, intent);
            }
        }

        void sendUserStartedBroadcast() {
        void sendUserStartedBroadcast() {
            Intent intent = new Intent(Intent.ACTION_USER_STARTED)
            Intent intent = new Intent(Intent.ACTION_USER_STARTED)
                    .putExtra(Intent.EXTRA_USER_HANDLE, TEST_USER_ID);
                    .putExtra(Intent.EXTRA_USER_HANDLE, TEST_USER_ID);