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

Commit c9e9b522 authored by Austin Tankiang's avatar Austin Tankiang Committed by Android (Google) Code Review
Browse files

Merge "Convert job tests to JUnit4" into main

parents 30f83b85 5264100b
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