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

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

Merge "Add test for correct MBR ComponentName resolution"

parents 8af9e2cd 9244e025
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -275,6 +275,10 @@ final class MediaButtonReceiverHolder {
                String.valueOf(mComponentType));
    }

    public ComponentName getComponentName() {
        return mComponentName;
    }

    @ComponentType
    private static int getComponentType(PendingIntent pendingIntent) {
        if (pendingIntent.isBroadcast()) {
+1 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ android_test {
        ":SimpleServiceTestApp3",
        ":StubTestApp",
        ":SuspendTestApp",
        ":MediaButtonReceiverHolderTestHelperApp",
    ],

    java_resources: [
+3 −0
Original line number Diff line number Diff line
@@ -110,6 +110,9 @@

    <queries>
        <package android:name="com.android.servicestests.apps.suspendtestapp" />
        <intent>
            <action android:name="android.media.browse.MediaBrowserService" />
        </intent>
    </queries>

    <!-- Uses API introduced in O (26) -->
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
        <option name="test-file-name" value="SimpleServiceTestApp1.apk" />
        <option name="test-file-name" value="SimpleServiceTestApp2.apk" />
        <option name="test-file-name" value="SimpleServiceTestApp3.apk" />
        <option name="test-file-name" value="MediaButtonReceiverHolderTestHelperApp.apk" />
    </target_preparer>

    <!-- Create place to store apks -->
+45 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.server.media;

import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;

import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;

import com.google.common.truth.Truth;

import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(AndroidJUnit4.class)
public class MediaButtonReceiverHolderTest {

    @Test
    public void createMediaButtonReceiverHolder_resolvesNullComponentName() {
        Context context = InstrumentationRegistry.getInstrumentation().getContext();
        Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
        PendingIntent pi = PendingIntent.getBroadcast(context, /* requestCode= */ 0, intent,
                PendingIntent.FLAG_IMMUTABLE);
        MediaButtonReceiverHolder a = MediaButtonReceiverHolder.create(/* userId= */ 0, pi,
                context.getPackageName());
        Truth.assertWithMessage("Component name must match PendingIntent creator package.").that(
                a.getComponentName()).isNull();
    }
}
Loading