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

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

Issue 2709163008: [Android Crash Reporting] Componentize MinidumpUploadImpl.java (Closed)
Patch Set: Finish the componentization Created 3 years, 10 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 a12000f9debc175f1f2b9603e33640edd9c70922..cc503f15449ecf926292142b803957687b9c7bb7 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
@@ -12,8 +12,8 @@ import android.support.test.filters.MediumTest;
import android.webkit.ValueCallback;
import org.chromium.android_webview.PlatformServiceBridge;
+import org.chromium.android_webview.crash.AwMinidumpUploaderDelegate;
import org.chromium.android_webview.crash.CrashReceiverService;
-import org.chromium.android_webview.crash.MinidumpUploaderImpl;
import org.chromium.base.FileUtils;
import org.chromium.base.ThreadUtils;
import org.chromium.components.minidump_uploader.CrashFileManager;
@@ -21,6 +21,8 @@ import org.chromium.components.minidump_uploader.CrashTestCase;
import org.chromium.components.minidump_uploader.MinidumpUploadCallable;
import org.chromium.components.minidump_uploader.MinidumpUploadCallableTest;
import org.chromium.components.minidump_uploader.MinidumpUploader;
+import org.chromium.components.minidump_uploader.MinidumpUploaderDelegate;
+import org.chromium.components.minidump_uploader.MinidumpUploaderImpl;
import org.chromium.components.minidump_uploader.util.CrashReportingPermissionManager;
import org.chromium.components.minidump_uploader.util.HttpURLConnectionFactory;
@@ -73,28 +75,46 @@ public class MinidumpUploaderTest extends CrashTestCase {
}
}
+ private static class TestMinidumpUploaderDelegate extends AwMinidumpUploaderDelegate {
+ private final CrashReportingPermissionManager mPermissionManager;
+
+ TestMinidumpUploaderDelegate(
+ Context context, CrashReportingPermissionManager permissionManager) {
+ super(context);
+ mPermissionManager = permissionManager;
+ }
+
+ @Override
+ public PlatformServiceBridge createPlatformServiceBridge() {
+ return new TestPlatformServiceBridge(true /* canUseGms */,
+ mPermissionManager.isUsageAndCrashReportingPermittedByUser());
+ }
+ }
+
private static class TestMinidumpUploaderImpl extends MinidumpUploaderImpl {
- private CrashReportingPermissionManager mPermissionManager;
+ private final CrashReportingPermissionManager mPermissionManager;
- TestMinidumpUploaderImpl(Context context, CrashReportingPermissionManager permissionManager,
- boolean cleanOutMinidumps) {
- super(context, cleanOutMinidumps);
+ TestMinidumpUploaderImpl(MinidumpUploaderDelegate delegate,
+ CrashReportingPermissionManager permissionManager) {
+ super(delegate);
mPermissionManager = permissionManager;
}
@Override
+ public CrashFileManager createCrashFileManager() {
+ return new CrashFileManager(getDelegateForTesting().createCrashDir()) {
+ @Override
+ public void cleanOutAllNonFreshMinidumpFiles() {}
gsennton 2017/02/27 18:54:55 So by overriding this method here we avoid having
Ilya Sherman 2017/02/28 03:54:13 Yep! =)
+ };
+ }
+
+ @Override
public MinidumpUploadCallable createMinidumpUploadCallable(
File minidumpFile, File logfile) {
return new MinidumpUploadCallable(minidumpFile, logfile,
new MinidumpUploadCallableTest.TestHttpURLConnectionFactory(),
mPermissionManager);
}
-
- @Override
- public PlatformServiceBridge createPlatformServiceBridge() {
- return new TestPlatformServiceBridge(true /* canUseGms */,
- mPermissionManager.isUsageAndCrashReportingPermittedByUser());
- }
}
/**
@@ -114,9 +134,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
mIsEnabledForTests = false;
}
};
- MinidumpUploader minidumpUploader =
- new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager,
- false /* cleanOutMinidumps */);
+ MinidumpUploaderDelegate delegate = new TestMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), permManager);
+ MinidumpUploader minidumpUploader = new TestMinidumpUploaderImpl(delegate, permManager);
File firstFile = createMinidumpFileInCrashDir("1_abc.dmp0");
File secondFile = createMinidumpFileInCrashDir("12_abc.dmp0");
@@ -206,9 +226,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
new MockCrashReportingPermissionManager() {
{ mIsEnabledForTests = true; }
};
- MinidumpUploader minidumpUploader =
- new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager,
- false /* cleanOutMinidumps */);
+ MinidumpUploaderDelegate delegate = new TestMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), permManager);
+ MinidumpUploader minidumpUploader = new TestMinidumpUploaderImpl(delegate, permManager);
File firstFile = createMinidumpFileInCrashDir("1_abc.dmp0");
File secondFile = createMinidumpFileInCrashDir("12_abcd.dmp0");
@@ -231,7 +251,13 @@ public class MinidumpUploaderTest extends CrashTestCase {
private static MinidumpUploaderImpl createCallableListMinidumpUploader(Context context,
final List<MinidumpUploadCallableCreator> callables, final boolean userPermitted) {
- return new MinidumpUploaderImpl(context, false /* cleanOutMinidumps */) {
+ MinidumpUploaderDelegate delegate = new AwMinidumpUploaderDelegate(context) {
+ @Override
+ public PlatformServiceBridge createPlatformServiceBridge() {
+ return new TestPlatformServiceBridge(true /* canUseGms*/, userPermitted);
+ }
+ };
+ return new TestMinidumpUploaderImpl(delegate, null) {
private int mIndex = 0;
@Override
@@ -242,10 +268,6 @@ public class MinidumpUploaderTest extends CrashTestCase {
}
return callables.get(mIndex++).createCallable(minidumpFile, logfile);
}
- @Override
- public PlatformServiceBridge createPlatformServiceBridge() {
- return new TestPlatformServiceBridge(true /* canUseGms*/, userPermitted);
- }
};
}
@@ -359,8 +381,16 @@ public class MinidumpUploaderTest extends CrashTestCase {
{ mIsEnabledForTests = true; }
};
final CountDownLatch stopStallingLatch = new CountDownLatch(1);
- MinidumpUploaderImpl minidumpUploader = new MinidumpUploaderImpl(
- getInstrumentation().getTargetContext(), false /* cleanOutMinidumps */) {
+ MinidumpUploaderDelegate delegate = new TestMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), permManager) {
+ @Override
+ public PlatformServiceBridge createPlatformServiceBridge() {
+ return new TestPlatformServiceBridge(
+ true /* canUseGms*/, permManager.isUsageAndCrashReportingPermittedByUser());
+ }
+ };
+ MinidumpUploaderImpl minidumpUploader = new TestMinidumpUploaderImpl(
+ delegate, permManager) {
@Override
public MinidumpUploadCallable createMinidumpUploadCallable(
File minidumpFile, File logfile) {
@@ -368,11 +398,6 @@ public class MinidumpUploaderTest extends CrashTestCase {
new StallingHttpUrlConnectionFactory(stopStallingLatch, successfulUpload),
permManager);
}
- @Override
- public PlatformServiceBridge createPlatformServiceBridge() {
- return new TestPlatformServiceBridge(
- true /* canUseGms*/, permManager.isUsageAndCrashReportingPermittedByUser());
- }
};
File firstFile = createMinidumpFileInCrashDir("123_abc.dmp0");
@@ -465,14 +490,14 @@ public class MinidumpUploaderTest extends CrashTestCase {
}
/**
- * MinidumpUploaderImpl sub-class that uses MinidumpUploaderImpl's implementation of
+ * MinidumpUploaderDelegate sub-class that uses MinidumpUploaderDelegate's implementation of
* CrashReportingPermissionManager.isUsageAndCrashReportingPermittedByUser().
*/
- private static class WebViewUserConsentMinidumpUploaderImpl extends MinidumpUploaderImpl {
- boolean mUserConsent;
- WebViewUserConsentMinidumpUploaderImpl(
- Context context, boolean cleanOutMinidumps, boolean userConsent) {
- super(context, cleanOutMinidumps);
+ private static class WebViewUserConsentMinidumpUploaderDelegate
+ extends AwMinidumpUploaderDelegate {
+ private final boolean mUserConsent;
+ WebViewUserConsentMinidumpUploaderDelegate(Context context, boolean userConsent) {
+ super(context);
mUserConsent = userConsent;
}
@Override
@@ -480,16 +505,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
return new TestPlatformServiceBridge(true /* canUseGms */, mUserConsent);
}
@Override
- public MinidumpUploadCallable createMinidumpUploadCallable(
- File minidumpFile, File logfile) {
- return new MinidumpUploadCallable(minidumpFile, logfile,
- new MinidumpUploadCallableTest.TestHttpURLConnectionFactory(),
- createWebViewCrashReportingManager());
- }
- @Override
- protected CrashReportingPermissionManager createWebViewCrashReportingManager() {
+ public CrashReportingPermissionManager createCrashReportingPermissionManager() {
final CrashReportingPermissionManager realPermissionManager =
- super.createWebViewCrashReportingManager();
+ super.createCrashReportingPermissionManager();
return new MockCrashReportingPermissionManager() {
{
// This setup ensures we depend on
@@ -514,9 +532,10 @@ public class MinidumpUploaderTest extends CrashTestCase {
}
private void testPlatformServicesBridgeIsUsed(final boolean userConsent) throws IOException {
- MinidumpUploader minidumpUploader =
- new WebViewUserConsentMinidumpUploaderImpl(getInstrumentation().getTargetContext(),
- false /* cleanOutMinidumps */, userConsent);
+ MinidumpUploaderDelegate delegate = new WebViewUserConsentMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), userConsent);
+ MinidumpUploader minidumpUploader = new TestMinidumpUploaderImpl(
+ delegate, delegate.createCrashReportingPermissionManager());
File firstFile = createMinidumpFileInCrashDir("1_abc.dmp0");
File secondFile = createMinidumpFileInCrashDir("12_abcd.dmp0");
@@ -657,9 +676,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
new MockCrashReportingPermissionManager() {
{ mIsEnabledForTests = true; }
};
- MinidumpUploader minidumpUploader =
- new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager,
- false /* cleanOutMinidumps */);
+ MinidumpUploaderDelegate delegate = new TestMinidumpUploaderDelegate(
+ getInstrumentation().getTargetContext(), permManager);
+ MinidumpUploader minidumpUploader = new TestMinidumpUploaderImpl(delegate, permManager);
uploadMinidumpsSync(minidumpUploader, false /* expectReschedule */);
// Ensure there are no minidumps left to upload.

Powered by Google App Engine
This is Rietveld 408576698