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

Commit 14ba2224 authored by Sungsoo Lim's avatar Sungsoo Lim Committed by Gerrit Code Review
Browse files

Merge "Prevant test failures on tearDown()" into main

parents d48deae2 39e1fbf7
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