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

Commit ec2965de authored by Bernardo Rufino's avatar Bernardo Rufino
Browse files

Dispose of TransportClient in updateStateForTransport()

Forgot this one :)

Change-Id: I13126b94ad0272c912a3e1c3d2e8ee06692a1897
Ref: http://go/br-binding-on-demand
Bug: 17140907
Test: m -j RunFrameworksServicesRoboTests
Test: adb shell bmgr transport [-c] <transport>, check connections
parent 7d0e1f80
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3140,6 +3140,7 @@ public class RefactoredBackupManagerService implements BackupManagerServiceInter
                mCurrentToken = 0;
                Slog.w(TAG, "Transport " + newTransportName + " not available: current token = 0");
            }
            mTransportManager.disposeOfTransportClient(transportClient, callerLogString);
        } else {
            Slog.w(TAG, "Transport " + newTransportName + " not registered: current token = 0");
            // The named transport isn't registered, so we can't know what its current dataset token
+16 −6
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import android.provider.Settings;
import com.android.server.backup.testing.ShadowAppBackupUtils;
import com.android.server.backup.testing.ShadowBackupPolicyEnforcer;
import com.android.server.backup.testing.TransportData;
import com.android.server.backup.testing.TransportTestUtils;
import com.android.server.backup.testing.TransportTestUtils.TransportMock;
import com.android.server.backup.transport.TransportNotRegisteredException;
import com.android.server.testing.FrameworkRobolectricTestRunner;
@@ -68,6 +67,7 @@ import org.robolectric.shadows.ShadowSystemClock;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RunWith(FrameworkRobolectricTestRunner.class)
@@ -255,17 +255,22 @@ public class BackupManagerServiceRoboTest {

    /* Tests for select transport */

    private TransportData mNewTransport;
    private TransportData mOldTransport;
    private ComponentName mNewTransportComponent;
    private TransportData mNewTransport;
    private TransportMock mNewTransportMock;
    private ComponentName mOldTransportComponent;
    private TransportData mOldTransport;
    private TransportMock mOldTransportMock;

    private void setUpForSelectTransport() throws Exception {
        mNewTransport = backupTransport();
        mNewTransportComponent = mNewTransport.getTransportComponent();
        mOldTransport = d2dTransport();
        mOldTransportComponent = mOldTransport.getTransportComponent();
        List<TransportMock> transportMocks =
                setUpTransports(mTransportManager, mNewTransport, mOldTransport, localTransport());
        mNewTransportMock = transportMocks.get(0);
        mOldTransportMock = transportMocks.get(1);
        when(mTransportManager.selectTransport(eq(mNewTransport.transportName)))
                .thenReturn(mOldTransport.transportName);
    }
@@ -282,6 +287,8 @@ public class BackupManagerServiceRoboTest {

        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
        assertThat(oldTransport).isEqualTo(mOldTransport.transportName);
        verify(mTransportManager)
                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
    }

    @Test
@@ -311,6 +318,8 @@ public class BackupManagerServiceRoboTest {
        mShadowBackupLooper.runToEndOfTasks();
        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
        verify(callback).onSuccess(eq(mNewTransport.transportName));
        verify(mTransportManager)
                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
    }

    @Test
@@ -329,11 +338,12 @@ public class BackupManagerServiceRoboTest {
        mShadowBackupLooper.runToEndOfTasks();
        assertThat(getSettingsTransport()).isEqualTo(mNewTransport.transportName);
        verify(callback).onSuccess(eq(mNewTransport.transportName));
        verify(mTransportManager)
                .disposeOfTransportClient(eq(mNewTransportMock.transportClient), any());
    }

    @Test
    public void testSelectBackupTransportAsync_whenOtherThanMandatoryTransport()
            throws Exception {
    public void testSelectBackupTransportAsync_whenOtherThanMandatoryTransport() throws Exception {
        setUpForSelectTransport();
        ShadowBackupPolicyEnforcer.setMandatoryBackupTransport(mOldTransportComponent);
        mShadowContext.grantPermissions(android.Manifest.permission.BACKUP);