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

Commit a5d3cfa9 authored by Felipe Leme's avatar Felipe Leme Committed by Android (Google) Code Review
Browse files

Merge "Unhardcoded file paths."

parents 055d8396 a0bf0336
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ import android.widget.Toast;
 * </ol>
 */
public class BugreportProgressService extends Service {
    private static final String TAG = "Shell";
    static final String TAG = "Shell";
    private static final boolean DEBUG = false;

    private static final String AUTHORITY = "com.android.shell";
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.shell;
import static com.android.shell.BugreportProgressService.EXTRA_BUGREPORT;
import static com.android.shell.BugreportProgressService.EXTRA_ORIGINAL_INTENT;
import static com.android.shell.BugreportProgressService.INTENT_BUGREPORT_FINISHED;
import static com.android.shell.BugreportProgressService.TAG;
import static com.android.shell.BugreportProgressService.getFileExtra;

import java.io.File;
@@ -29,6 +30,7 @@ import android.content.Intent;
import android.os.AsyncTask;
import android.os.FileUtils;
import android.text.format.DateUtils;
import android.util.Log;

/**
 * Receiver that handles finished bugreports, usually by attaching them to an
@@ -63,6 +65,10 @@ public class BugreportReceiver extends BroadcastReceiver {
            return;
        }
        final File bugreportFile = getFileExtra(intent, EXTRA_BUGREPORT);
        if (bugreportFile == null || !bugreportFile.exists()) {
            Log.e(TAG, "Not deleting old files because file " + bugreportFile + " doesn't exist");
            return;
        }
        final PendingResult result = goAsync();
        new AsyncTask<Void, Void, Void>() {
            @Override
+34 −19
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import static com.android.shell.BugreportProgressService.INTENT_BUGREPORT_STARTE
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -45,6 +46,7 @@ import android.app.ActivityManager.RunningServiceInfo;
import android.app.Instrumentation;
import android.app.NotificationManager;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
@@ -82,16 +84,18 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
    // Timeout for UI operations, in milliseconds.
    private static final int TIMEOUT = (int) BugreportProgressService.POLLING_FREQUENCY * 4;

    private static final String ROOT_DIR = "/data/data/com.android.shell/files/bugreports";
    private static final String BUGREPORTS_DIR = "bugreports";
    private static final String BUGREPORT_FILE = "test_bugreport.txt";
    private static final String ZIP_FILE = "test_bugreport.zip";
    private static final String PLAIN_TEXT_PATH = ROOT_DIR + "/" + BUGREPORT_FILE;
    private static final String ZIP_PATH = ROOT_DIR + "/" + ZIP_FILE;
    private static final String SCREENSHOT_PATH = ROOT_DIR + "/test_screenshot.png";
    private static final String SCREENSHOT_FILE = "test_screenshot.png";

    private static final String BUGREPORT_CONTENT = "Dump, might as well dump!\n";
    private static final String SCREENSHOT_CONTENT = "A picture is worth a thousand words!\n";

    private String mPlainTextPath;
    private String mZipPath;
    private String mScreenshotPath;

    private Context mContext;
    private UiBot mUiBot;
    private CustomActionSendMultipleListener mListener;
@@ -102,6 +106,9 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
        mContext = instrumentation.getTargetContext();
        mUiBot = new UiBot(UiDevice.getInstance(instrumentation), TIMEOUT);
        mListener = ActionSendMultipleConsumerActivity.getListener(mContext);
        mPlainTextPath = getPath(BUGREPORT_FILE);
        mZipPath = getPath(ZIP_FILE);
        mScreenshotPath = getPath(SCREENSHOT_FILE);
        cancelExistingNotifications();
        BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_HIDE);
    }
@@ -129,9 +136,9 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
        SystemProperties.set("dumpstate.42.max", "2000");
        assertProgressNotification(name, "25.00%");

        createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT);
        createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(42, PLAIN_TEXT_PATH, SCREENSHOT_PATH);
        createTextFile(mPlainTextPath, BUGREPORT_CONTENT);
        createTextFile(mScreenshotPath, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(42, mPlainTextPath, mScreenshotPath);
        assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT);

        String service = BugreportProgressService.class.getName();
@@ -143,9 +150,9 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
        BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_SHOW);

        // Send notification and click on share.
        createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT);
        createTextFile(mPlainTextPath, BUGREPORT_CONTENT);
        Intent intent = new Intent(INTENT_BUGREPORT_FINISHED);
        intent.putExtra(EXTRA_BUGREPORT, PLAIN_TEXT_PATH);
        intent.putExtra(EXTRA_BUGREPORT, mPlainTextPath);
        mContext.sendBroadcast(intent);
        mUiBot.clickOnNotification(mContext.getString(R.string.bugreport_finished_title));

@@ -169,28 +176,28 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
    }

    public void testBugreportFinished_plainBugreportAndScreenshot() throws Exception {
        createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT);
        createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(PLAIN_TEXT_PATH, SCREENSHOT_PATH);
        createTextFile(mPlainTextPath, BUGREPORT_CONTENT);
        createTextFile(mScreenshotPath, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(mPlainTextPath, mScreenshotPath);
        assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT);
    }

    public void testBugreportFinished_zippedBugreportAndScreenshot() throws Exception {
        createZipFile(ZIP_PATH, BUGREPORT_FILE, BUGREPORT_CONTENT);
        createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(ZIP_PATH, SCREENSHOT_PATH);
        createZipFile(mZipPath, BUGREPORT_FILE, BUGREPORT_CONTENT);
        createTextFile(mScreenshotPath, SCREENSHOT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(mZipPath, mScreenshotPath);
        assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT);
    }

    public void testBugreportFinished_plainBugreportAndNoScreenshot() throws Exception {
        createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(PLAIN_TEXT_PATH, null);
        createTextFile(mPlainTextPath, BUGREPORT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(mPlainTextPath, null);
        assertActionSendMultiple(extras, BUGREPORT_CONTENT, null);
    }

    public void testBugreportFinished_zippedBugreportAndNoScreenshot() throws Exception {
        createZipFile(ZIP_PATH, BUGREPORT_FILE, BUGREPORT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(ZIP_PATH, null);
        createZipFile(mZipPath, BUGREPORT_FILE, BUGREPORT_CONTENT);
        Bundle extras = sendBugreportFinishedIntent(mZipPath, null);
        assertActionSendMultiple(extras, BUGREPORT_CONTENT, null);
    }

@@ -341,4 +348,12 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
            zos.closeEntry();
        }
    }

    private String getPath(String file) {
        File rootDir = new ContextWrapper(mContext).getFilesDir();
        File dir = new File(rootDir, BUGREPORTS_DIR);
        String path = new File(dir, file).getAbsolutePath();
        Log.v(TAG, "Path for '" + file + "': " + path);
        return path;
    }
}