Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1994)

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java

Issue 2800833003: Revert of Android: Remove GetApplicationContext part 2 (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java
index 20d4d703e40865b757feca9e6dde97ce75b0e7cc..677b630c3bf84e0a314c570a9fc54dbcd17f97f5 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/crash/MinidumpUploaderTest.java
@@ -6,6 +6,7 @@
import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
+import android.content.Context;
import android.os.ParcelFileDescriptor;
import android.support.test.filters.MediumTest;
import android.webkit.ValueCallback;
@@ -50,7 +51,7 @@
@Override
protected File getExistingCacheDir() {
- return CrashReceiverService.getOrCreateWebViewCrashDir();
+ return CrashReceiverService.createWebViewCrashDir(getInstrumentation().getTargetContext());
}
private static class TestPlatformServiceBridge extends PlatformServiceBridge {
@@ -76,7 +77,7 @@
private final CrashReportingPermissionManager mPermissionManager;
TestMinidumpUploaderImpl(CrashReportingPermissionManager permissionManager) {
- super(new AwMinidumpUploaderDelegate());
+ super(new AwMinidumpUploaderDelegate(getInstrumentation().getTargetContext()));
mPermissionManager = permissionManager;
}
@@ -197,8 +198,6 @@
/**
* Ensure MinidumpUploaderImpl doesn't crash even if the WebView Crash dir doesn't exist (could
* happen e.g. if a Job persists across WebView-updates?
- *
- * MinidumpUploaderImpl should automatically recreate the directory.
*/
@MediumTest
public void testUploadingWithoutCrashDir() throws IOException {
@@ -233,7 +232,7 @@
MinidumpUploadCallable createCallable(File minidumpFile, File logfile);
}
- private MinidumpUploaderImpl createCallableListMinidumpUploader(
+ private MinidumpUploaderImpl createCallableListMinidumpUploader(Context context,
final List<MinidumpUploadCallableCreator> callables, final boolean userPermitted) {
PlatformServiceBridge.injectInstance(new TestPlatformServiceBridge(userPermitted));
return new TestMinidumpUploaderImpl(null) {
@@ -256,7 +255,7 @@
new MockCrashReportingPermissionManager() {
{ mIsEnabledForTests = true; }
};
- List<MinidumpUploadCallableCreator> callables = new ArrayList<>();
+ List<MinidumpUploadCallableCreator> callables = new ArrayList();
callables.add(new MinidumpUploadCallableCreator() {
@Override
public MinidumpUploadCallable createCallable(File minidumpFile, File logfile) {
@@ -271,8 +270,9 @@
new MinidumpUploadCallableTest.TestHttpURLConnectionFactory(), permManager);
}
});
- MinidumpUploader minidumpUploader = createCallableListMinidumpUploader(
- callables, permManager.isUsageAndCrashReportingPermittedByUser());
+ MinidumpUploader minidumpUploader =
+ createCallableListMinidumpUploader(getInstrumentation().getTargetContext(),
+ callables, permManager.isUsageAndCrashReportingPermittedByUser());
File firstFile = createMinidumpFileInCrashDir("firstFile.dmp0");
File secondFile = createMinidumpFileInCrashDir("secondFile.dmp0");
@@ -280,7 +280,7 @@
uploadMinidumpsSync(minidumpUploader, true /* expectReschedule */);
assertFalse(firstFile.exists());
assertFalse(secondFile.exists());
- File expectedSecondFile;
+ File expectedSecondFile = null;
// Not sure which minidump will fail and which will succeed, so just ensure one was uploaded
// and the other one failed.
if (new File(mCrashDir, firstFile.getName() + ".try1").exists()) {
@@ -416,13 +416,14 @@
* Ensures that the minidump copying works together with the minidump uploading.
*/
@MediumTest
- public void testCopyAndUploadWebViewMinidump() throws IOException {
- final CrashFileManager fileManager =
- new CrashFileManager(CrashReceiverService.getWebViewCrashDir());
+ public void testCopyAndUploadWebViewMinidump() throws FileNotFoundException, IOException {
+ final CrashFileManager fileManager = new CrashFileManager(
+ CrashReceiverService.getWebViewCrashDir(getInstrumentation().getTargetContext()));
// Note that these minidump files are set up directly in the cache dir - not in the WebView
// crash dir. This is to ensure the CrashFileManager doesn't see these minidumps without us
// first copying them.
- File minidumpToCopy = new File(getExistingCacheDir(), "toCopy.dmp");
+ File minidumpToCopy =
+ new File(getInstrumentation().getTargetContext().getCacheDir(), "toCopy.dmp");
setUpMinidumpFile(minidumpToCopy, BOUNDARY, "browser");
final String expectedFileContent = readEntireFile(minidumpToCopy);
@@ -437,7 +438,8 @@
} catch (IOException e) {
throw new RuntimeException(e);
}
- File webviewTmpDir = CrashReceiverService.getWebViewTmpCrashDir();
+ File webviewTmpDir =
+ CrashReceiverService.getWebViewTmpCrashDir(getInstrumentation().getTargetContext());
assertEquals(0, webviewTmpDir.listFiles().length);
}
@@ -464,8 +466,8 @@
private static class WebViewUserConsentMinidumpUploaderDelegate
extends AwMinidumpUploaderDelegate {
private final boolean mUserConsent;
- WebViewUserConsentMinidumpUploaderDelegate(boolean userConsent) {
- super();
+ WebViewUserConsentMinidumpUploaderDelegate(Context context, boolean userConsent) {
+ super(context);
mUserConsent = userConsent;
}
@Override
@@ -495,8 +497,8 @@
private void testPlatformServicesBridgeIsUsed(final boolean userConsent) throws IOException {
PlatformServiceBridge.injectInstance(new TestPlatformServiceBridge(userConsent));
- MinidumpUploaderDelegate delegate =
- new WebViewUserConsentMinidumpUploaderDelegate(userConsent);
+ MinidumpUploaderDelegate delegate = new WebViewUserConsentMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), userConsent);
MinidumpUploader minidumpUploader = new TestMinidumpUploaderImpl(
delegate, delegate.createCrashReportingPermissionManager());
@@ -516,10 +518,13 @@
}
private static String readEntireFile(File file) throws IOException {
- try (FileInputStream fileInputStream = new FileInputStream(file)) {
+ FileInputStream fileInputStream = new FileInputStream(file);
+ try {
byte[] data = new byte[(int) file.length()];
fileInputStream.read(data);
return new String(data);
+ } finally {
+ fileInputStream.close();
}
}
@@ -527,11 +532,13 @@
* Ensure that the minidump copying doesn't trigger when we pass it invalid file descriptors.
*/
@MediumTest
- public void testCopyingAbortsForInvalidFds() throws IOException {
- assertFalse(CrashReceiverService.copyMinidumps(0 /* uid */, null));
+ public void testCopyingAbortsForInvalidFds() throws FileNotFoundException, IOException {
assertFalse(CrashReceiverService.copyMinidumps(
+ getInstrumentation().getTargetContext(), 0 /* uid */, null));
+ assertFalse(CrashReceiverService.copyMinidumps(getInstrumentation().getTargetContext(),
0 /* uid */, new ParcelFileDescriptor[] {null, null}));
- assertFalse(CrashReceiverService.copyMinidumps(0 /* uid */, new ParcelFileDescriptor[0]));
+ assertFalse(CrashReceiverService.copyMinidumps(
+ getInstrumentation().getTargetContext(), 0 /* uid */, new ParcelFileDescriptor[0]));
}
/**
@@ -539,7 +546,8 @@
*/
@MediumTest
public void testDeleteFilesInDir() throws IOException {
- File webviewTmpDir = CrashReceiverService.getWebViewTmpCrashDir();
+ Context context = getInstrumentation().getTargetContext();
+ File webviewTmpDir = CrashReceiverService.getWebViewTmpCrashDir(context);
if (!webviewTmpDir.isDirectory()) {
assertTrue(webviewTmpDir.mkdir());
}
@@ -549,7 +557,7 @@
assertTrue(testFile2.createNewFile());
assertTrue(testFile1.exists());
assertTrue(testFile2.exists());
- CrashReceiverService.deleteFilesInWebViewTmpDirIfExists();
+ CrashReceiverService.deleteFilesInWebViewTmpDirIfExists(context);
assertFalse(testFile1.exists());
assertFalse(testFile2.exists());
}
@@ -560,13 +568,15 @@
*/
@MediumTest
public void testCopyAndUploadSeveralMinidumpBatches() throws IOException {
- final CrashFileManager fileManager =
- new CrashFileManager(CrashReceiverService.getWebViewCrashDir());
+ final CrashFileManager fileManager = new CrashFileManager(
+ CrashReceiverService.getWebViewCrashDir(getInstrumentation().getTargetContext()));
// Note that these minidump files are set up directly in the cache dir - not in the WebView
// crash dir. This is to ensure the CrashFileManager doesn't see these minidumps without us
// first copying them.
- File firstMinidumpToCopy = new File(getExistingCacheDir(), "firstToCopy.dmp");
- File secondMinidumpToCopy = new File(getExistingCacheDir(), "secondToCopy.dmp");
+ File firstMinidumpToCopy =
+ new File(getInstrumentation().getTargetContext().getCacheDir(), "firstToCopy.dmp");
+ File secondMinidumpToCopy =
+ new File(getInstrumentation().getTargetContext().getCacheDir(), "secondToCopy.dmp");
setUpMinidumpFile(firstMinidumpToCopy, BOUNDARY, "browser");
setUpMinidumpFile(secondMinidumpToCopy, BOUNDARY, "renderer");
final String expectedFirstFileContent = readEntireFile(firstMinidumpToCopy);
@@ -623,7 +633,8 @@
assertTrue(currentMinidumps[m].delete());
}
crashReceiverService.performMinidumpCopyingSerially(
- uids[n] /* uid */, fileDescriptors[n], false /* scheduleUploads */);
+ getInstrumentation().getTargetContext(), uids[n] /* uid */, fileDescriptors[n],
+ false /* scheduleUploads */);
}
PlatformServiceBridge.injectInstance(new TestPlatformServiceBridge(true));

Powered by Google App Engine
This is Rietveld 408576698