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

Commit ff2fed07 authored by Daichi Hirono's avatar Daichi Hirono Committed by Android (Google) Code Review
Browse files

Merge "Extract common initialization of MtpDocumentsProviderTest into setUp method."

parents 722113aa beac2184
Loading
Loading
Loading
Loading
+49 −51
Original line number Diff line number Diff line
@@ -28,61 +28,62 @@ import java.io.IOException;

@SmallTest
public class MtpDocumentsProviderTest extends AndroidTestCase {
    public void testOpenAndCloseDevice() throws Exception {
        final ContentResolver resolver = new ContentResolver();
        final MtpDocumentsProvider provider = new MtpDocumentsProvider();
        final MtpManagerMock mtpManager = new MtpManagerMock(getContext());
        mtpManager.addValidDevice(0);
        provider.onCreateForTesting(mtpManager, resolver);
    private ContentResolver mResolver;
    private MtpDocumentsProvider mProvider;
    private MtpManagerMock mMtpManager;

        assertEquals(0, resolver.changeCount);
    @Override
    public void setUp() {
        mResolver = new ContentResolver();
        mMtpManager = new MtpManagerMock(getContext());
        mProvider = new MtpDocumentsProvider();
        mProvider.onCreateForTesting(mMtpManager, mResolver);
    }

    public void testOpenAndCloseDevice() throws Exception {
        mMtpManager.addValidDevice(0);
        assertEquals(0, mResolver.changeCount);

        provider.openDevice(0);
        assertEquals(1, resolver.changeCount);
        mProvider.openDevice(0);
        assertEquals(1, mResolver.changeCount);

        provider.closeDevice(0);
        assertEquals(2, resolver.changeCount);
        mProvider.closeDevice(0);
        assertEquals(2, mResolver.changeCount);

        int exceptionCounter = 0;
        try {
            provider.openDevice(1);
            mProvider.openDevice(1);
        } catch (IOException error) {
            exceptionCounter++;
        }
        assertEquals(2, resolver.changeCount);
        assertEquals(2, mResolver.changeCount);
        try {
            provider.closeDevice(1);
            mProvider.closeDevice(1);
        } catch (IOException error) {
            exceptionCounter++;
        }
        assertEquals(2, resolver.changeCount);
        assertEquals(2, mResolver.changeCount);
        assertEquals(2, exceptionCounter);
    }

    public void testCloseAllDevices() throws IOException {
        final ContentResolver resolver = new ContentResolver();
        final MtpDocumentsProvider provider = new MtpDocumentsProvider();
        final MtpManagerMock mtpManager = new MtpManagerMock(getContext());
        mtpManager.addValidDevice(0);
        provider.onCreateForTesting(mtpManager, resolver);
        mMtpManager.addValidDevice(0);
        mProvider.onCreateForTesting(mMtpManager, mResolver);

        provider.closeAllDevices();
        assertEquals(0, resolver.changeCount);
        mProvider.closeAllDevices();
        assertEquals(0, mResolver.changeCount);

        provider.openDevice(0);
        assertEquals(1, resolver.changeCount);
        mProvider.openDevice(0);
        assertEquals(1, mResolver.changeCount);

        provider.closeAllDevices();
        assertEquals(2, resolver.changeCount);
        mProvider.closeAllDevices();
        assertEquals(2, mResolver.changeCount);
    }

    public void testQueryRoots() throws Exception {
        final ContentResolver resolver = new ContentResolver();
        final MtpDocumentsProvider provider = new MtpDocumentsProvider();
        final MtpManagerMock mtpManager = new MtpManagerMock(getContext());
        mtpManager.addValidDevice(0);
        mtpManager.addValidDevice(1);
        mtpManager.setRoots(0, new MtpRoot[] {
        mMtpManager.addValidDevice(0);
        mMtpManager.addValidDevice(1);
        mMtpManager.setRoots(0, new MtpRoot[] {
                new MtpRoot(
                        1 /* storageId */,
                        "Storage A" /* volume description */,
@@ -90,7 +91,7 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
                        2048 /* total space */,
                        "" /* no volume identifier */)
        });
        mtpManager.setRoots(1, new MtpRoot[] {
        mMtpManager.setRoots(1, new MtpRoot[] {
                new MtpRoot(
                        1 /* storageId */,
                        "Storage B" /* volume description */,
@@ -98,12 +99,12 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
                        4096 /* total space */,
                        "Identifier B" /* no volume identifier */)
        });
        provider.onCreateForTesting(mtpManager, resolver);
        assertEquals(0, provider.queryRoots(null).getCount());
        mProvider.onCreateForTesting(mMtpManager, mResolver);
        assertEquals(0, mProvider.queryRoots(null).getCount());

        {
            provider.openDevice(0);
            final Cursor cursor = provider.queryRoots(null);
            mProvider.openDevice(0);
            final Cursor cursor = mProvider.queryRoots(null);
            assertEquals(1, cursor.getCount());
            cursor.moveToNext();
            assertEquals("0:1", cursor.getString(0));
@@ -116,8 +117,8 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
        }

        {
            provider.openDevice(1);
            final Cursor cursor = provider.queryRoots(null);
            mProvider.openDevice(1);
            final Cursor cursor = mProvider.queryRoots(null);
            assertEquals(2, cursor.getCount());
            cursor.moveToNext();
            cursor.moveToNext();
@@ -131,20 +132,17 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
        }

        {
            provider.closeAllDevices();
            final Cursor cursor = provider.queryRoots(null);
            mProvider.closeAllDevices();
            final Cursor cursor = mProvider.queryRoots(null);
            assertEquals(0, cursor.getCount());
        }
    }

    public void testQueryRoots_error() throws IOException {
        final ContentResolver resolver = new ContentResolver();
        final MtpDocumentsProvider provider = new MtpDocumentsProvider();
        final MtpManagerMock mtpManager = new MtpManagerMock(getContext());
        mtpManager.addValidDevice(0);
        mtpManager.addValidDevice(1);
        mMtpManager.addValidDevice(0);
        mMtpManager.addValidDevice(1);
        // Not set roots for device 0 so that MtpManagerMock#getRoots throws IOException.
        mtpManager.setRoots(1, new MtpRoot[] {
        mMtpManager.setRoots(1, new MtpRoot[] {
                new MtpRoot(
                        1 /* storageId */,
                        "Storage B" /* volume description */,
@@ -152,11 +150,11 @@ public class MtpDocumentsProviderTest extends AndroidTestCase {
                        4096 /* total space */,
                        "Identifier B" /* no volume identifier */)
        });
        provider.onCreateForTesting(mtpManager, resolver);
        mProvider.onCreateForTesting(mMtpManager, mResolver);
        {
            provider.openDevice(0);
            provider.openDevice(1);
            final Cursor cursor = provider.queryRoots(null);
            mProvider.openDevice(0);
            mProvider.openDevice(1);
            final Cursor cursor = mProvider.queryRoots(null);
            assertEquals(1, cursor.getCount());
            cursor.moveToNext();
            assertEquals("1:1", cursor.getString(0));