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

Commit ec7e7a99 authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski Committed by Android (Google) Code Review
Browse files

Merge "Enabled content validation in file ops tests."

parents 533b3456 2ed9f813
Loading
Loading
Loading
Loading
+9 −12
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.provider.DocumentsContract.buildChildDocumentsUri;
import static android.provider.DocumentsContract.buildDocumentUri;
import static android.provider.DocumentsContract.buildDocumentUri;
import static android.provider.DocumentsContract.buildRootsUri;
import static android.provider.DocumentsContract.buildRootsUri;
import static com.android.documentsui.model.DocumentInfo.getCursorString;
import static com.android.documentsui.model.DocumentInfo.getCursorString;
import static com.android.internal.util.Preconditions.checkArgument;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.fail;
import static junit.framework.Assert.fail;
@@ -37,7 +38,7 @@ import android.provider.DocumentsContract.Document;
import android.provider.DocumentsContract.Root;
import android.provider.DocumentsContract.Root;
import android.support.annotation.Nullable;
import android.support.annotation.Nullable;
import android.test.MoreAsserts;
import android.test.MoreAsserts;
import android.util.Log;
import android.text.TextUtils;


import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.RootInfo;
import com.android.documentsui.model.RootInfo;
@@ -60,13 +61,13 @@ public class DocumentsProviderHelper {
    private final ContentProviderClient mClient;
    private final ContentProviderClient mClient;


    public DocumentsProviderHelper(String authority, ContentProviderClient client) {
    public DocumentsProviderHelper(String authority, ContentProviderClient client) {
        checkArgument(!TextUtils.isEmpty(authority));
        mAuthority = authority;
        mAuthority = authority;
        mClient = client;
        mClient = client;
    }
    }


    public RootInfo getRoot(String documentId) throws RemoteException {
    public RootInfo getRoot(String documentId) throws RemoteException {
        final Uri rootsUri = buildRootsUri(mAuthority);
        final Uri rootsUri = buildRootsUri(mAuthority);

        Cursor cursor = null;
        Cursor cursor = null;
        try {
        try {
            cursor = mClient.query(rootsUri, null, null, null, null);
            cursor = mClient.query(rootsUri, null, null, null, null);
@@ -126,7 +127,6 @@ public class DocumentsProviderHelper {
    }
    }


    public byte[] readDocument(Uri documentUri) throws RemoteException, IOException {
    public byte[] readDocument(Uri documentUri) throws RemoteException, IOException {
        Log.d("DocumentsProviderHelper", "Trying to read file contents: " + documentUri);
        ParcelFileDescriptor file = mClient.openFile(documentUri, "r", null);
        ParcelFileDescriptor file = mClient.openFile(documentUri, "r", null);
        byte[] buf = null;
        byte[] buf = null;
        try (AutoCloseInputStream in = new AutoCloseInputStream(file)) {
        try (AutoCloseInputStream in = new AutoCloseInputStream(file)) {
@@ -245,21 +245,18 @@ public class DocumentsProviderHelper {
        Uri uri = buildChildDocumentsUri(mAuthority, documentId);
        Uri uri = buildChildDocumentsUri(mAuthority, documentId);
        List<DocumentInfo> children = new ArrayList<>();
        List<DocumentInfo> children = new ArrayList<>();
        try (Cursor cursor = mClient.query(uri, null, null, null, null, null)) {
        try (Cursor cursor = mClient.query(uri, null, null, null, null, null)) {
            while (cursor.moveToNext()) {
            Cursor wrapper = new RootCursorWrapper(mAuthority, "totally-fake", cursor, 100);
                children.add(DocumentInfo.fromDirectoryCursor(cursor));
            while (wrapper.moveToNext()) {
                children.add(DocumentInfo.fromDirectoryCursor(wrapper));
            }
            }
        }
        }
        return children;
        return children;
    }
    }


    public void assertFileContents(Uri documentUri, byte[] expected) throws Exception {
    public void assertFileContents(Uri documentUri, byte[] expected) throws Exception {
        // TODO: Fix this: java.lang.SecurityException:
        MoreAsserts.assertEquals(
        // The authority of the uri content:/document/%2Fdata%2Fuser%2F0%2Fcom.android.documentsui.\
                "Copied file contents differ",
        // tests%2Fcache%2FTEST_ROOT_1%2Ftest1.txt does not match the one of the contentProvider: \
                expected, readDocument(documentUri));
        // com.android.documentsui.stubprovider
//        MoreAsserts.assertEquals(
//                "Copied file contents differ",
//                expected, readDocument(documentUri));
    }
    }


    public void assertFileContents(String parentId, String fileName, byte[] expected)
    public void assertFileContents(String parentId, String fileName, byte[] expected)