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

Commit 789bf281 authored by Annie Meng's avatar Annie Meng
Browse files

Update transport tests for binding on-demand to support SDK 26 API

After Robo 3.5.1 upgrade, these tests should support the new SDK.

Bug: 69153972
Test: m -j RunFrameworkServicesRoboTests
Change-Id: I12be8668b0c8bb7933cc1a30717356d86f1f3737
parent 2bb44413
Loading
Loading
Loading
Loading
+12 −18
Original line number Diff line number Diff line
@@ -17,9 +17,7 @@
package com.android.server.backup.transport;

import static com.android.server.backup.TransportManager.SERVICE_ACTION_TRANSPORT_HOST;

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

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
@@ -36,12 +34,10 @@ import android.os.Handler;
import android.os.Looper;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;

import com.android.internal.backup.IBackupTransport;
import com.android.server.backup.TransportManager;
import com.android.server.testing.FrameworkRobolectricTestRunner;
import com.android.server.testing.SystemLoaderClasses;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -78,11 +74,7 @@ public class TransportClientTest {
        mBindIntent = new Intent(SERVICE_ACTION_TRANSPORT_HOST).setComponent(mTransportComponent);
        mTransportClient =
                new TransportClient(
                        mContext,
                        mBindIntent,
                        mTransportComponent,
                        "1",
                        new Handler(mainLooper));
                        mContext, mBindIntent, mTransportComponent, "1", new Handler(mainLooper));

        when(mContext.bindServiceAsUser(
                        eq(mBindIntent),
@@ -213,32 +205,34 @@ public class TransportClientTest {
                .onTransportConnectionResult(isNull(), eq(mTransportClient));
    }

    // TODO(b/69153972): Support SDK 26 API (ServiceConnection.inBindingDied) for transport tests
    /*@Test
    @Test
    public void testConnectAsync_callsListenerIfBindingDies() throws Exception {
        mTransportClient.connectAsync(mTransportListener, "caller");
        mTransportClient.connectAsync(mTransportConnectionListener, "caller");

        ServiceConnection connection = verifyBindServiceAsUserAndCaptureServiceConnection(mContext);
        connection.onBindingDied(mTransportComponent);

        mShadowLooper.runToEndOfTasks();
        verify(mTransportListener).onTransportBound(isNull(), eq(mTransportClient));
        verify(mTransportConnectionListener)
                .onTransportConnectionResult(isNull(), eq(mTransportClient));
    }

    @Test
    public void testConnectAsync_whenPendingConnection_callsListenersIfBindingDies()
            throws Exception {
        mTransportClient.connectAsync(mTransportListener, "caller1");
        mTransportClient.connectAsync(mTransportConnectionListener, "caller1");
        ServiceConnection connection = verifyBindServiceAsUserAndCaptureServiceConnection(mContext);

        mTransportClient.connectAsync(mTransportListener2, "caller2");
        mTransportClient.connectAsync(mTransportConnectionListener2, "caller2");

        connection.onBindingDied(mTransportComponent);

        mShadowLooper.runToEndOfTasks();
        verify(mTransportListener).onTransportBound(isNull(), eq(mTransportClient));
        verify(mTransportListener2).onTransportBound(isNull(), eq(mTransportClient));
    }*/
        verify(mTransportConnectionListener)
                .onTransportConnectionResult(isNull(), eq(mTransportClient));
        verify(mTransportConnectionListener2)
                .onTransportConnectionResult(isNull(), eq(mTransportClient));
    }

    private ServiceConnection verifyBindServiceAsUserAndCaptureServiceConnection(Context context) {
        ArgumentCaptor<ServiceConnection> connectionCaptor =