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

Commit 50ed70cb authored by Sungsoo Lim's avatar Sungsoo Lim Committed by Automerger Merge Worker
Browse files

Merge "Prevant test failures on tearDown()" into main am: 14ba2224 am: bb644039 am: e099c700

parents b2fda6a5 e099c700
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ public class HapClientStateMachineTest {
    private HapClientStateMachine mHapClientStateMachine;
    private BluetoothDevice mTestDevice;
    private static final int TIMEOUT_MS = 1000;
    boolean mIsAdapterServiceSet;

    @Mock
    private AdapterService mAdapterService;
@@ -70,6 +71,7 @@ public class HapClientStateMachineTest {
        // Set up mocks and test assets
        MockitoAnnotations.initMocks(this);
        TestUtils.setAdapterService(mAdapterService);
        mIsAdapterServiceSet = true;

        mAdapter = BluetoothAdapter.getDefaultAdapter();

@@ -88,8 +90,13 @@ public class HapClientStateMachineTest {

    @After
    public void tearDown() throws Exception {
        if (!mIsAdapterServiceSet) {
            return;
        }
        if (mHapClientStateMachine != null) {
            mHapClientStateMachine.doQuit();
            mHandlerThread.quit();
        }
        TestUtils.clearAdapterService(mAdapterService);
    }

+22 −11
Original line number Diff line number Diff line
@@ -105,6 +105,8 @@ public class HeadsetServiceAndStateMachineTest {
    private HeadsetIntentReceiver mHeadsetIntentReceiver;
    private int mOriginalVrTimeoutMs = 5000;
    private PowerManager.WakeLock mVoiceRecognitionWakeLock;
    boolean mIsAdapterServiceSet;
    boolean mIsHeadsetServiceStarted;

    @Mock private HeadsetNativeInterface mNativeInterface;

@@ -166,6 +168,7 @@ public class HeadsetServiceAndStateMachineTest {
        mVoiceRecognitionWakeLock =
                powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "VoiceRecognitionTest");
        TestUtils.setAdapterService(mAdapterService);
        mIsAdapterServiceSet = true;
        doReturn(MAX_HEADSET_CONNECTIONS).when(mAdapterService).getMaxConnectedAudioDevices();
        doReturn(new ParcelUuid[]{BluetoothUuid.HFP}).when(mAdapterService)
                .getRemoteUuids(any(BluetoothDevice.class));
@@ -220,6 +223,7 @@ public class HeadsetServiceAndStateMachineTest {
        mOriginalVrTimeoutMs = HeadsetService.sStartVrTimeoutMs;
        HeadsetService.sStartVrTimeoutMs = START_VR_TIMEOUT_MILLIS;
        TestUtils.startService(mServiceRule, HeadsetService.class);
        mIsHeadsetServiceStarted = true;
        mHeadsetService = HeadsetService.getHeadsetService();
        Assert.assertNotNull(mHeadsetService);
        verify(mObjectsFactory).makeSystemInterface(mHeadsetService);
@@ -238,22 +242,29 @@ public class HeadsetServiceAndStateMachineTest {

    @After
    public void tearDown() throws Exception {
        if (!mIsAdapterServiceSet) {
            return;
        }
        mConnectionStateChangedQueue.clear();
        mActiveDeviceChangedQueue.clear();

        if (mIsHeadsetServiceStarted) {
            mTargetContext.unregisterReceiver(mHeadsetIntentReceiver);
            TestUtils.stopService(mServiceRule, HeadsetService.class);
        HeadsetService.sStartVrTimeoutMs = mOriginalVrTimeoutMs;
        Intents.release();
            mHeadsetService = HeadsetService.getHeadsetService();
            Assert.assertNull(mHeadsetService);
        Method method = HeadsetObjectsFactory.class.getDeclaredMethod("setInstanceForTesting",
                HeadsetObjectsFactory.class);
            // Clear classes that is spied on and has static life time
            clearInvocations(mNativeInterface);
        }
        HeadsetService.sStartVrTimeoutMs = mOriginalVrTimeoutMs;
        Intents.release();
        Method method =
                HeadsetObjectsFactory.class.getDeclaredMethod(
                        "setInstanceForTesting", HeadsetObjectsFactory.class);
        method.setAccessible(true);
        method.invoke(null, (HeadsetObjectsFactory) null);
        TestUtils.clearAdapterService(mAdapterService);
        mBondedDevices.clear();
        mConnectionStateChangedQueue.clear();
        mActiveDeviceChangedQueue.clear();
        // Clear classes that is spied on and has static life time
        clearInvocations(mNativeInterface);
        TestUtils.clearAdapterService(mAdapterService);
    }

    /**
+14 −14
Original line number Diff line number Diff line
@@ -62,6 +62,8 @@ public class HeadsetClientServiceTest {
    private HeadsetClientService mService = null;
    private BluetoothAdapter mAdapter = null;
    private Context mTargetContext;
    private boolean mIsAdapterServiceSet;
    private boolean mIsHeadsetClientServiceStarted;

    private static final int STANDARD_WAIT_MILLIS = 1000;

@@ -79,6 +81,7 @@ public class HeadsetClientServiceTest {
        MockitoAnnotations.initMocks(this);

        TestUtils.setAdapterService(mAdapterService);
        mIsAdapterServiceSet = true;
        doReturn(mDatabaseManager).when(mAdapterService).getDatabase();
        doReturn(mRemoteDevices).when(mAdapterService).getRemoteDevices();
        doReturn(true, false).when(mAdapterService).isStartedProfile(anyString());
@@ -88,16 +91,16 @@ public class HeadsetClientServiceTest {
    @After
    public void tearDown() throws Exception {
        NativeInterface.setInstance(null);
        mService = HeadsetClientService.getHeadsetClientService();
        Assert.assertNull(mService);
        stopServiceIfStarted();
        if (mIsAdapterServiceSet) {
            TestUtils.clearAdapterService(mAdapterService);
        }
    }

    @Test
    public void testInitialize() throws Exception {
        startService();
        Assert.assertNotNull(HeadsetClientService.getHeadsetClientService());
        stopService();
    }

    @Ignore("b/260202548")
@@ -121,8 +124,6 @@ public class HeadsetClientServiceTest {
                    eq(HeadsetClientStateMachine.SEND_BIEV),
                    eq(2),
                    anyInt());

        stopService();
    }

    @Test
@@ -142,8 +143,6 @@ public class HeadsetClientServiceTest {
                    eq(HeadsetClientStateMachine.SEND_BIEV),
                    eq(2),
                    anyInt());

        stopService();
    }

    @Test
@@ -159,8 +158,6 @@ public class HeadsetClientServiceTest {

        verify(mStateMachine, timeout(STANDARD_WAIT_MILLIS).times(1))
                .setAudioPolicy(any(BluetoothSinkAudioPolicy.class));

        stopService();
    }

    @Test
@@ -173,8 +170,6 @@ public class HeadsetClientServiceTest {
        mService.getStateMachineMap().put(device, mStateMachine);

        mService.dump(new StringBuilder());

        stopService();
    }

    @Test
@@ -217,9 +212,14 @@ public class HeadsetClientServiceTest {
        // Try getting the Bluetooth adapter
        mAdapter = BluetoothAdapter.getDefaultAdapter();
        Assert.assertNotNull(mAdapter);
        mIsHeadsetClientServiceStarted = true;
    }

    private void stopService() throws Exception {
    private void stopServiceIfStarted() throws Exception {
        if (mIsHeadsetClientServiceStarted) {
            TestUtils.stopService(mServiceRule, HeadsetClientService.class);
            mService = HeadsetClientService.getHeadsetClientService();
            Assert.assertNull(mService);
        }
    }
}
+12 −9
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

package com.android.bluetooth.mapclient;

import static android.Manifest.permission.BLUETOOTH_CONNECT;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.*;

import android.annotation.Nullable;
import android.app.BroadcastOptions;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -39,7 +37,6 @@ import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.provider.Telephony.Sms;
import android.provider.Telephony.Mms;
import android.telephony.TelephonyManager;
import android.telephony.SubscriptionManager;
import android.test.mock.MockContentProvider;
@@ -51,7 +48,6 @@ import androidx.test.filters.MediumTest;
import androidx.test.rule.ServiceTestRule;
import androidx.test.runner.AndroidJUnit4;

import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.btservice.AdapterService;
import com.android.bluetooth.btservice.storage.DatabaseManager;
@@ -64,7 +60,6 @@ import com.google.common.truth.Correspondence;

import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -76,7 +71,6 @@ import org.mockito.MockitoAnnotations;

import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -95,6 +89,8 @@ public class MapClientStateMachineTest {
    private Bmessage mTestIncomingMmsBmessage;
    private String mTestMessageSmsHandle = "0001";
    private String mTestMessageMmsHandle = "0002";
    boolean mIsAdapterServiceSet;
    boolean mIsMapClientServiceStarted;

    private static final boolean MESSAGE_SEEN = true;
    private static final boolean MESSAGE_NOT_SEEN = false;
@@ -151,12 +147,14 @@ public class MapClientStateMachineTest {
    public void setUp() throws Exception {
        mTargetContext = InstrumentationRegistry.getTargetContext();
        MockitoAnnotations.initMocks(this);
        TestUtils.setAdapterService(mAdapterService);
        mIsAdapterServiceSet = true;
        mMockContentProvider = new MockSmsContentProvider();
        mMockContentResolver = new MockContentResolver();
        TestUtils.setAdapterService(mAdapterService);
        when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
        doReturn(true, false).when(mAdapterService).isStartedProfile(anyString());
        TestUtils.startService(mServiceRule, MapClientService.class);
        mIsMapClientServiceStarted = true;
        mMockContentResolver.addProvider("sms", mMockContentProvider);
        mMockContentResolver.addProvider("mms", mMockContentProvider);
        mMockContentResolver.addProvider("mms-sms", mMockContentProvider);
@@ -206,9 +204,14 @@ public class MapClientStateMachineTest {
        if (mMceStateMachine != null) {
            mMceStateMachine.doQuit();
        }

        if (mIsMapClientServiceStarted) {
            TestUtils.stopService(mServiceRule, MapClientService.class);
        }
        if (mIsAdapterServiceSet) {
            TestUtils.clearAdapterService(mAdapterService);
        }
    }

    /**
     * Test that default state is STATE_CONNECTING
+12 −7
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static org.mockito.Mockito.*;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.IBluetoothMapClient;
import android.content.Context;
import android.os.UserHandle;

@@ -30,7 +29,6 @@ import androidx.test.filters.MediumTest;
import androidx.test.rule.ServiceTestRule;
import androidx.test.runner.AndroidJUnit4;

import com.android.bluetooth.R;
import com.android.bluetooth.TestUtils;
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.AdapterService;
@@ -38,7 +36,6 @@ import com.android.bluetooth.btservice.storage.DatabaseManager;

import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -57,6 +54,8 @@ public class MapClientTest {
    private MapClientService mService = null;
    private BluetoothAdapter mAdapter = null;
    private Context mTargetContext;
    private boolean mIsAdapterServiceSet;
    private boolean mIsMapClientServiceStarted;

    @Mock private AdapterService mAdapterService;
    @Mock private MnsService mMockMnsService;
@@ -69,10 +68,12 @@ public class MapClientTest {
        mTargetContext = InstrumentationRegistry.getTargetContext();
        MockitoAnnotations.initMocks(this);
        TestUtils.setAdapterService(mAdapterService);
        mIsAdapterServiceSet = true;
        when(mAdapterService.getDatabase()).thenReturn(mDatabaseManager);
        doReturn(true, false).when(mAdapterService).isStartedProfile(anyString());
        MapUtils.setMnsService(mMockMnsService);
        TestUtils.startService(mServiceRule, MapClientService.class);
        mIsMapClientServiceStarted = true;
        mService = MapClientService.getMapClientService();
        Assert.assertNotNull(mService);
        mAdapter = BluetoothAdapter.getDefaultAdapter();
@@ -80,11 +81,15 @@ public class MapClientTest {

    @After
    public void tearDown() throws Exception {
        if (mIsMapClientServiceStarted) {
            TestUtils.stopService(mServiceRule, MapClientService.class);
            mService = MapClientService.getMapClientService();
            Assert.assertNull(mService);
        }
        if (mIsAdapterServiceSet) {
            TestUtils.clearAdapterService(mAdapterService);
        }
    }

    /**
     * Mock the priority of a bluetooth device
Loading