Loading packages/Shell/src/com/android/shell/BugreportProgressService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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"; Loading packages/Shell/src/com/android/shell/BugreportReceiver.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 Loading packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +34 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); } Loading Loading @@ -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(); Loading @@ -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)); Loading @@ -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); } Loading Loading @@ -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; } } Loading
packages/Shell/src/com/android/shell/BugreportProgressService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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"; Loading
packages/Shell/src/com/android/shell/BugreportReceiver.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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 Loading
packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +34 −19 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); } Loading Loading @@ -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(); Loading @@ -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)); Loading @@ -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); } Loading Loading @@ -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; } }