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

Commit 2b6bae00 authored by Ján Sebechlebský's avatar Ján Sebechlebský Committed by Android (Google) Code Review
Browse files

Merge "Migrate audio policy test to AndroidJUnit4"

parents 4e85f27b d6f0bdb8
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -10,15 +10,11 @@ package {
android_test {
    name: "audiopolicytest",
    srcs: ["**/*.java"],
    libs: [
        "android.test.runner",
        "android.test.base",
    ],
    static_libs: [
        "mockito-target-minus-junit4",
        "androidx.test.ext.junit",
        "androidx.test.rules",
        "android-ex-camera2",
        "testng",
        "guava",
        "platform-test-annotations",
    ],
    platform_apis: true,
    certificate: "platform",
+1 −6
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@

    <application>
        <uses-library android:name="android.test.runner" />
        <activity android:label="@string/app_name" android:name="AudioPolicyTest"
        <activity android:label="@string/app_name" android:name="AudioPolicyTestActivity"
                  android:screenOrientation="landscape" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
@@ -33,11 +33,6 @@
        </activity>
    </application>

    <!--instrumentation android:name=".AudioPolicyTestRunner"
            android:targetPackage="com.android.audiopolicytest"
            android:label="AudioManager policy oriented integration tests InstrumentationRunner">
    </instrumentation-->

    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
            android:targetPackage="com.android.audiopolicytest"
            android:label="AudioManager policy oriented integration tests InstrumentationRunner">
+43 −10
Original line number Diff line number Diff line
@@ -16,28 +16,57 @@

package com.android.audiopolicytest;

import static androidx.test.core.app.ApplicationProvider.getApplicationContext;

import static com.android.audiopolicytest.AudioVolumeTestUtil.DEFAULT_ATTRIBUTES;
import static com.android.audiopolicytest.AudioVolumeTestUtil.incrementVolumeIndex;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.testng.Assert.assertThrows;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;

import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioVolumeGroup;
import android.platform.test.annotations.Presubmit;
import android.util.Log;

import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.google.common.primitives.Ints;

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

import java.util.List;

public class AudioManagerTest extends AudioVolumesTestBase {
@Presubmit
@RunWith(AndroidJUnit4.class)
public class AudioManagerTest {
    private static final String TAG = "AudioManagerTest";

    private AudioManager mAudioManager;

    @Rule
    public final AudioVolumesTestRule rule = new AudioVolumesTestRule();

    @Before
    public void setUp() {
        mAudioManager = getApplicationContext().getSystemService(AudioManager.class);
    }

    //-----------------------------------------------------------------
    // Test getAudioProductStrategies and validate strategies
    //-----------------------------------------------------------------
    public void testGetAndValidateProductStrategies() throws Exception {
    @Test
    public void testGetAndValidateProductStrategies() {
        List<AudioProductStrategy> audioProductStrategies =
                mAudioManager.getAudioProductStrategies();
        assertTrue(audioProductStrategies.size() > 0);
@@ -101,8 +130,8 @@ public class AudioManagerTest extends AudioVolumesTestBase {
    //-----------------------------------------------------------------
    // Test getAudioVolumeGroups and validate volume groups
    //-----------------------------------------------------------------

    public void testGetAndValidateVolumeGroups() throws Exception {
    @Test
    public void testGetAndValidateVolumeGroups() {
        List<AudioVolumeGroup> audioVolumeGroups = mAudioManager.getAudioVolumeGroups();
        assertTrue(audioVolumeGroups.size() > 0);

@@ -118,7 +147,7 @@ public class AudioManagerTest extends AudioVolumesTestBase {
            // for each volume group attributes, find the matching product strategy and ensure
            // it is linked the considered volume group
            for (final AudioAttributes aa : avgAttributes) {
                if (aa.equals(sDefaultAttributes)) {
                if (aa.equals(DEFAULT_ATTRIBUTES)) {
                    // Some volume groups may not have valid attributes, used for internal
                    // volume management like patch/rerouting
                    // so bailing out strategy retrieval from attributes
@@ -180,6 +209,7 @@ public class AudioManagerTest extends AudioVolumesTestBase {
    //-----------------------------------------------------------------
    // Test Volume per Attributes setter/getters
    //-----------------------------------------------------------------
    @Test
    public void testSetGetVolumePerAttributesWithInvalidAttributes() throws Exception {
        AudioAttributes nullAttributes = null;

@@ -197,7 +227,8 @@ public class AudioManagerTest extends AudioVolumesTestBase {
                        nullAttributes, 0 /*index*/, 0/*flags*/));
    }

    public void testSetGetVolumePerAttributes() throws Exception {
    @Test
    public void testSetGetVolumePerAttributes() {
        for (int usage : AudioAttributes.SDK_USAGES) {
            if (usage == AudioAttributes.USAGE_UNKNOWN) {
                continue;
@@ -248,12 +279,14 @@ public class AudioManagerTest extends AudioVolumesTestBase {
    //-----------------------------------------------------------------
    // Test register/unregister VolumeGroupCallback
    //-----------------------------------------------------------------
    public void testVolumeGroupCallback() throws Exception {
    @Test
    public void testVolumeGroupCallback() {
        List<AudioVolumeGroup> audioVolumeGroups = mAudioManager.getAudioVolumeGroups();
        assertTrue(audioVolumeGroups.size() > 0);

        AudioVolumeGroupCallbackHelper vgCbReceiver = new AudioVolumeGroupCallbackHelper();
        mAudioManager.registerVolumeGroupCallback(mContext.getMainExecutor(), vgCbReceiver);
        mAudioManager.registerVolumeGroupCallback(getApplicationContext().getMainExecutor(),
                vgCbReceiver);

        final List<Integer> publicStreams = Ints.asList(AudioManager.getPublicStreamTypes());
        try {
@@ -273,7 +306,7 @@ public class AudioManagerTest extends AudioVolumesTestBase {

                // Set the volume per attributes (if valid) and wait the callback
                for (final AudioAttributes aa : avgAttributes) {
                    if (aa.equals(sDefaultAttributes)) {
                    if (aa.equals(DEFAULT_ATTRIBUTES)) {
                        // Some volume groups may not have valid attributes, used for internal
                        // volume management like patch/rerouting
                        // so bailing out strategy retrieval from attributes
+2 −2
Original line number Diff line number Diff line
@@ -19,9 +19,9 @@ package com.android.audiopolicytest;
import android.app.Activity;
import android.os.Bundle;

public class AudioPolicyTest extends Activity  {
public class AudioPolicyTestActivity extends Activity  {

    public AudioPolicyTest() {
    public AudioPolicyTestActivity() {
    }

    /** Called when the activity is first created. */
+24 −4
Original line number Diff line number Diff line
@@ -16,25 +16,43 @@

package com.android.audiopolicytest;

import static com.android.audiopolicytest.AudioVolumeTestUtil.INVALID_ATTRIBUTES;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioVolumeGroup;
import android.platform.test.annotations.Presubmit;
import android.util.Log;

import androidx.test.ext.junit.runners.AndroidJUnit4;

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

import java.util.List;

public class AudioProductStrategyTest extends AudioVolumesTestBase {
@Presubmit
@RunWith(AndroidJUnit4.class)
public class AudioProductStrategyTest {
    private static final String TAG = "AudioProductStrategyTest";

    @Rule
    public final AudioVolumesTestRule rule = new AudioVolumesTestRule();

    //-----------------------------------------------------------------
    // Test getAudioProductStrategies and validate strategies
    //-----------------------------------------------------------------
    public void testGetProductStrategies() throws Exception {
    @Test
    public void testGetProductStrategies() {
        List<AudioProductStrategy> audioProductStrategies =
                AudioProductStrategy.getAudioProductStrategies();

@@ -65,6 +83,7 @@ public class AudioProductStrategyTest extends AudioVolumesTestBase {
    //-----------------------------------------------------------------
    // Test stream to/from attributes conversion
    //-----------------------------------------------------------------
    @Test
    public void testAudioAttributesFromStreamTypes() throws Exception {
        List<AudioProductStrategy> audioProductStrategies =
                AudioProductStrategy.getAudioProductStrategies();
@@ -81,7 +100,7 @@ public class AudioProductStrategyTest extends AudioVolumesTestBase {
            // hosting this stream type; Bailing out the test, just ensure that any request
            // for reciproque API with the unknown attributes would return default stream
            // for volume control, aka STREAM_MUSIC.
            if (aaFromStreamType.equals(sInvalidAttributes)) {
            if (aaFromStreamType.equals(INVALID_ATTRIBUTES)) {
                assertEquals(AudioSystem.STREAM_MUSIC,
                        AudioProductStrategy.getLegacyStreamTypeForStrategyWithAudioAttributes(
                            aaFromStreamType));
@@ -139,7 +158,8 @@ public class AudioProductStrategyTest extends AudioVolumesTestBase {
        }
    }

    public void testAudioAttributesToStreamTypes() throws Exception {
    @Test
    public void testAudioAttributesToStreamTypes() {
        List<AudioProductStrategy> audioProductStrategies =
                AudioProductStrategy.getAudioProductStrategies();

Loading