| 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 e79a095079f9432fdcf59a2b38186833773a4769..87dc629f1c7d3abf096aedc7ff25fb5ddc644985 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,16 +75,32 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| }
|
| }
|
|
|
| - private static class TestMinidumpUploaderImpl extends MinidumpUploaderImpl {
|
| + private static class TestMinidumpUploaderDelegate extends AwMinidumpUploaderDelegate {
|
| private final CrashReportingPermissionManager mPermissionManager;
|
|
|
| - TestMinidumpUploaderImpl(
|
| + 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 final CrashReportingPermissionManager mPermissionManager;
|
| +
|
| + TestMinidumpUploaderImpl(MinidumpUploaderDelegate delegate,
|
| + CrashReportingPermissionManager permissionManager) {
|
| + super(delegate);
|
| + mPermissionManager = permissionManager;
|
| + }
|
| +
|
| + @Override
|
| public CrashFileManager createCrashFileManager(File crashDir) {
|
| return new CrashFileManager(crashDir) {
|
| @Override
|
| @@ -97,12 +115,6 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| new MinidumpUploadCallableTest.TestHttpURLConnectionFactory(),
|
| mPermissionManager);
|
| }
|
| -
|
| - @Override
|
| - public PlatformServiceBridge createPlatformServiceBridge() {
|
| - return new TestPlatformServiceBridge(true /* canUseGms */,
|
| - mPermissionManager.isUsageAndCrashReportingPermittedByUser());
|
| - }
|
| }
|
|
|
| /**
|
| @@ -122,8 +134,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| mIsEnabledForTests = false;
|
| }
|
| };
|
| - MinidumpUploader minidumpUploader =
|
| - new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager);
|
| + 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");
|
| @@ -213,8 +226,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| new MockCrashReportingPermissionManager() {
|
| { mIsEnabledForTests = true; }
|
| };
|
| - MinidumpUploader minidumpUploader =
|
| - new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager);
|
| + 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");
|
| @@ -237,7 +251,13 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
|
|
| private static MinidumpUploaderImpl createCallableListMinidumpUploader(Context context,
|
| final List<MinidumpUploadCallableCreator> callables, final boolean userPermitted) {
|
| - return new TestMinidumpUploaderImpl(context, null) {
|
| + 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
|
| @@ -248,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);
|
| - }
|
| };
|
| }
|
|
|
| @@ -365,20 +381,23 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| { mIsEnabledForTests = true; }
|
| };
|
| final CountDownLatch stopStallingLatch = new CountDownLatch(1);
|
| - MinidumpUploaderImpl minidumpUploader = new TestMinidumpUploaderImpl(
|
| + 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) {
|
| return new MinidumpUploadCallable(minidumpFile, logfile,
|
| new StallingHttpUrlConnectionFactory(stopStallingLatch, successfulUpload),
|
| permManager);
|
| }
|
| - @Override
|
| - public PlatformServiceBridge createPlatformServiceBridge() {
|
| - return new TestPlatformServiceBridge(
|
| - true /* canUseGms*/, permManager.isUsageAndCrashReportingPermittedByUser());
|
| - }
|
| };
|
|
|
| File firstFile = createMinidumpFileInCrashDir("123_abc.dmp0");
|
| @@ -471,37 +490,24 @@ 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 {
|
| + private static class WebViewUserConsentMinidumpUploaderDelegate
|
| + extends AwMinidumpUploaderDelegate {
|
| private final boolean mUserConsent;
|
| - WebViewUserConsentMinidumpUploaderImpl(Context context, boolean userConsent) {
|
| + WebViewUserConsentMinidumpUploaderDelegate(Context context, boolean userConsent) {
|
| super(context);
|
| mUserConsent = userConsent;
|
| }
|
| @Override
|
| - public CrashFileManager createCrashFileManager(File crashDir) {
|
| - return new CrashFileManager(crashDir) {
|
| - @Override
|
| - public void cleanOutAllNonFreshMinidumpFiles() {}
|
| - };
|
| - }
|
| - @Override
|
| public PlatformServiceBridge createPlatformServiceBridge() {
|
| 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
|
| @@ -526,8 +532,10 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| }
|
|
|
| private void testPlatformServicesBridgeIsUsed(final boolean userConsent) throws IOException {
|
| - MinidumpUploader minidumpUploader = new WebViewUserConsentMinidumpUploaderImpl(
|
| + 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");
|
| @@ -668,8 +676,9 @@ public class MinidumpUploaderTest extends CrashTestCase {
|
| new MockCrashReportingPermissionManager() {
|
| { mIsEnabledForTests = true; }
|
| };
|
| - MinidumpUploader minidumpUploader =
|
| - new TestMinidumpUploaderImpl(getInstrumentation().getTargetContext(), permManager);
|
| + 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.
|
|
|