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

Commit 5264100b authored by Austin Tankiang's avatar Austin Tankiang
Browse files

Convert job tests to JUnit4

Bug: 407674989
Test: atest -c 'DocumentsUIGoogleTests:com.android.documentsui.services'
Flag: TEST_ONLY
Change-Id: I89481a79a2d10be94bf741cef77c5cbc5178e763
parent d842dd59
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -18,15 +18,16 @@ package com.android.documentsui.services;

import static com.google.common.collect.Lists.newArrayList;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import android.app.Notification;
import android.net.Uri;
import android.provider.DocumentsContract;
import android.text.format.DateUtils;

import androidx.test.filters.MediumTest;

import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.services.FileOperationService.OpType;
@@ -35,7 +36,6 @@ import java.text.NumberFormat;
import java.util.List;
import java.util.stream.IntStream;

@MediumTest
public abstract class AbstractCopyJobTest<T extends CopyJob> extends AbstractJobTest<T> {

    private final @OpType int mOpType;
+18 −17
Original line number Diff line number Diff line
@@ -23,10 +23,9 @@ import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.RemoteException;
import android.test.AndroidTestCase;

import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;

import com.android.documentsui.DocumentsProviderHelper;
import com.android.documentsui.R;
@@ -40,10 +39,14 @@ import com.android.documentsui.services.FileOperationService.OpType;
import com.android.documentsui.testing.DocsProviders;
import com.android.documentsui.testing.TestFeatures;

import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;

import java.util.List;

@MediumTest
public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public abstract class AbstractJobTest<T extends Job> {

    static final String AUTHORITY = StubProvider.DEFAULT_AUTHORITY;
    static final byte[] HAM_BYTES = "ham and cheese".getBytes();
@@ -59,21 +62,20 @@ public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase {

    private TestFeatures mFeatures;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    @Before
    public void setUp() throws Exception {
        // NOTE: Must be the "target" context, else security checks in content provider will fail.
        mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();

        mFeatures = new TestFeatures();
        mFeatures.notificationChannel = InstrumentationRegistry.getTargetContext()
                .getResources().getBoolean(R.bool.feature_notification_channel);

        mJobListener = new TestJobListener();
        mFeatures.notificationChannel = mContext.getResources()
                .getBoolean(R.bool.feature_notification_channel);

        // NOTE: Must be the "target" context, else security checks in content provider will fail.
        mUserId = UserId.DEFAULT_USER;
        mContext = getContext();
        mResolver = mContext.getContentResolver();

        mJobListener = new TestJobListener();

        mDocs = new DocumentsProviderHelper(mUserId, AUTHORITY, mContext, AUTHORITY);

        // Reset storage before starting the tests.
@@ -82,11 +84,10 @@ public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase {
        initTestFiles();
    }

    @Override
    protected void tearDown() throws Exception {
    @After
    public void tearDown() throws Exception {
        resetStorage();
        mDocs.cleanUp();
        super.tearDown();
    }

    private void resetStorage() throws RemoteException {
+17 −0
Original line number Diff line number Diff line
@@ -20,11 +20,16 @@ import static com.android.documentsui.services.FileOperationService.OPERATION_CO

import static com.google.common.collect.Lists.newArrayList;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

import android.net.Uri;
import android.provider.DocumentsContract.Document;

import androidx.test.filters.MediumTest;

import org.junit.Test;

@MediumTest
public class CopyJobTest extends AbstractCopyJobTest<CopyJob> {

@@ -32,18 +37,22 @@ public class CopyJobTest extends AbstractCopyJobTest<CopyJob> {
        super(OPERATION_COPY);
    }

    @Test
    public void testCopyFiles() throws Exception {
        runCopyFilesTest();
    }

    @Test
    public void testCopyVirtualTypedFile() throws Exception {
        runCopyVirtualTypedFileTest();
    }

    @Test
    public void testCopyVirtualNonTypedFile() throws Exception {
        runCopyVirtualNonTypedFileTest();
    }

    @Test
    public void testCopy_BackendSideVirtualTypedFile_Fallback() throws Exception {
        mDocs.assertChildCount(mDestRoot, 0);

@@ -68,35 +77,43 @@ public class CopyJobTest extends AbstractCopyJobTest<CopyJob> {
        assertEquals(-1, progress.requiredBytes);
    }

    @Test
    public void testCopyEmptyDir() throws Exception {
        runCopyEmptyDirTest();
    }

    @Test
    public void testCopyDirRecursively() throws Exception {
        runCopyDirRecursivelyTest();
    }

    @Test
    public void testCopyDirRecursively_loadingInFirstCursor() throws Exception {
        mDocs.setLoadingDuration(500);
        testCopyDirRecursively();
    }

    @Test
    public void testNoCopyDirToSelf() throws Exception {
        runNoCopyDirToSelfTest();
    }

    @Test
    public void testNoCopyDirToDescendent() throws Exception {
        runNoCopyDirToDescendentTest();
    }

    @Test
    public void testCopyFileWithReadErrors() throws Exception {
        runCopyFileWithReadErrorsTest();
    }

    @Test
    public void testCopyProgressWithFileCount() throws Exception {
        runCopyProgressForFileCountTest();
    }

    @Test
    public void testCopyProgressWithByteCount() throws Exception {
        runCopyProgressForByteCountTest();
    }
+7 −0
Original line number Diff line number Diff line
@@ -20,16 +20,22 @@ import static com.android.documentsui.services.FileOperationService.OPERATION_DE

import static com.google.common.collect.Lists.newArrayList;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

import android.net.Uri;
import android.provider.DocumentsContract;

import androidx.test.filters.MediumTest;

import org.junit.Test;

import java.util.List;

@MediumTest
public class DeleteJobTest extends AbstractJobTest<DeleteJob> {

    @Test
    public void testDeleteFiles() throws Exception {
        Uri testFile1 = mDocs.createDocument(mSrcRoot, "text/plain", "test1.txt");
        mDocs.writeDocument(testFile1, HAM_BYTES);
@@ -51,6 +57,7 @@ public class DeleteJobTest extends AbstractJobTest<DeleteJob> {
        assertEquals("Deleting 2 files", progress.msg);
    }

    @Test
    public void testDeleteFiles_NoSrcParent() throws Exception {
        Uri testFile1 = mDocs.createDocument(mSrcRoot, "text/plain", "test1.txt");
        mDocs.writeDocument(testFile1, HAM_BYTES);
+5 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.provider.DocumentsContract;

import androidx.test.filters.MediumTest;

import org.junit.Test;

import java.util.List;

/**
@@ -34,6 +36,7 @@ import java.util.List;
@MediumTest
public class JobErrorHandlingTest extends AbstractJobTest<DeleteJob> {

    @Test
    public void testRecoversFromInvalidUri() throws Exception {
        Uri invalidUri1 = Uri.parse("content://poodles/chuckleberry/ham");
        Uri validUri = mDocs.createDocument(mSrcRoot, "text/plain", "test2.txt");
@@ -49,6 +52,7 @@ public class JobErrorHandlingTest extends AbstractJobTest<DeleteJob> {
        mDocs.assertChildCount(mSrcRoot, 0);
    }

    @Test
    public void testRecordsInvalidUris() throws Exception {
        Uri invalidUri1 = Uri.parse("content://poodles/chuckleberry/ham");
        Uri validUri = mDocs.createDocument(mSrcRoot, "text/plain", "test2.txt");
@@ -63,6 +67,7 @@ public class JobErrorHandlingTest extends AbstractJobTest<DeleteJob> {
        mJobListener.assertUriFailed(invalidUri2);
    }

    @Test
    public void testReportsCorrectFailureCount() throws Exception {
        Uri invalidUri1 = Uri.parse("content://poodles/chuckleberry/ham");
        Uri validUri = mDocs.createDocument(mSrcRoot, "text/plain", "test2.txt");
Loading