| Index: chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java
|
| index e2042e1caa32419c04f5bc60f29102375820ec6b..d1b21cc3f7310d8136196d966ceb8e70834508c0 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadCallableTest.java
|
| @@ -175,6 +175,14 @@ public class MinidumpUploadCallableTest extends CrashTestCase {
|
| }
|
|
|
| @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
|
| + private void setForcedUpload() throws Exception {
|
| + File renamed = new File(mCrashDir, mTestUpload.getName().replace(".dmp", ".forced"));
|
| + mTestUpload.renameTo(renamed);
|
| + // Update the filename that tests will refer to.
|
| + mTestUpload = renamed;
|
| + }
|
| +
|
| + @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| @@ -182,17 +190,10 @@ public class MinidumpUploadCallableTest extends CrashTestCase {
|
| // Delete all logs from previous runs if possible.
|
| mUploadLog.delete();
|
|
|
| + // Any created files will be cleaned up as part of CrashTestCase::tearDown().
|
| createMinidumpFile();
|
| - mExpectedFileAfterUpload = new File(
|
| - mCrashDir,
|
| - mTestUpload.getName().replaceFirst("\\.dmp", ".up"));
|
| - }
|
| -
|
| - @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
|
| - @Override
|
| - protected void tearDown() throws Exception {
|
| - if (mTestUpload.exists()) mTestUpload.delete();
|
| - super.tearDown();
|
| + mExpectedFileAfterUpload =
|
| + new File(mCrashDir, mTestUpload.getName().replace(".dmp", ".up"));
|
| }
|
|
|
| @SmallTest
|
| @@ -243,7 +244,7 @@ public class MinidumpUploadCallableTest extends CrashTestCase {
|
| minidumpUploadCallable.call().intValue());
|
|
|
| File expectedSkippedFileAfterUpload =
|
| - new File(mCrashDir, mTestUpload.getName().replaceFirst("\\.dmp", ".skipped"));
|
| + new File(mCrashDir, mTestUpload.getName().replace(".dmp", ".skipped"));
|
| assertTrue(expectedSkippedFileAfterUpload.exists());
|
| assertFalse(mExpectedFileAfterUpload.exists());
|
| }
|
| @@ -295,7 +296,7 @@ public class MinidumpUploadCallableTest extends CrashTestCase {
|
| minidumpUploadCallable.call().intValue());
|
|
|
| File expectedSkippedFileAfterUpload =
|
| - new File(mCrashDir, mTestUpload.getName().replaceFirst("\\.dmp", ".skipped"));
|
| + new File(mCrashDir, mTestUpload.getName().replace(".dmp", ".skipped"));
|
| assertTrue(expectedSkippedFileAfterUpload.exists());
|
| assertFalse(mExpectedFileAfterUpload.exists());
|
| }
|
| @@ -373,6 +374,173 @@ public class MinidumpUploadCallableTest extends CrashTestCase {
|
| assertValidUploadLogEntry();
|
| }
|
|
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCallWhenCurrentlyPermitted_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = true;
|
| + mIsPermitted = true;
|
| + mIsUserPermitted = true;
|
| + mIsCommandLineDisabled = false;
|
| + mIsLimited = false;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new TestHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(
|
| + MinidumpUploadCallable.UPLOAD_SUCCESS, minidumpUploadCallable.call().intValue());
|
| + assertTrue(mExpectedFileAfterUpload.exists());
|
| + assertValidUploadLogEntry();
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCallNotPermittedByUser_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = true;
|
| + mIsPermitted = false;
|
| + mIsUserPermitted = false;
|
| + mIsCommandLineDisabled = false;
|
| + mIsLimited = false;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new TestHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(
|
| + MinidumpUploadCallable.UPLOAD_SUCCESS, minidumpUploadCallable.call().intValue());
|
| +
|
| + File expectedSkippedFileAfterUpload =
|
| + new File(mCrashDir, mTestUpload.getName().replace(".forced", ".skipped"));
|
| + assertFalse(expectedSkippedFileAfterUpload.exists());
|
| + assertTrue(mExpectedFileAfterUpload.exists());
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCallNotPermittedByCommandLine_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = true;
|
| + mIsPermitted = true;
|
| + mIsUserPermitted = true;
|
| + mIsCommandLineDisabled = true;
|
| + mIsLimited = false;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new FailHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(MinidumpUploadCallable.UPLOAD_COMMANDLINE_DISABLED,
|
| + minidumpUploadCallable.call().intValue());
|
| + assertFalse(mExpectedFileAfterUpload.exists());
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCallPermittedButNotInSample_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = false;
|
| + mIsPermitted = true;
|
| + mIsUserPermitted = true;
|
| + mIsCommandLineDisabled = false;
|
| + mIsLimited = false;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new TestHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(
|
| + MinidumpUploadCallable.UPLOAD_SUCCESS, minidumpUploadCallable.call().intValue());
|
| +
|
| + File expectedSkippedFileAfterUpload =
|
| + new File(mCrashDir, mTestUpload.getName().replace(".forced", ".skipped"));
|
| + assertFalse(expectedSkippedFileAfterUpload.exists());
|
| + assertTrue(mExpectedFileAfterUpload.exists());
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCallPermittedButNotUnderCurrentCircumstances_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = true;
|
| + mIsPermitted = false;
|
| + mIsUserPermitted = true;
|
| + mIsCommandLineDisabled = false;
|
| + mIsLimited = false;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new TestHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(
|
| + MinidumpUploadCallable.UPLOAD_SUCCESS, minidumpUploadCallable.call().intValue());
|
| +
|
| + File expectedSkippedFileAfterUpload =
|
| + new File(mCrashDir, mTestUpload.getName().replace(".forced", ".skipped"));
|
| + assertFalse(expectedSkippedFileAfterUpload.exists());
|
| + assertTrue(mExpectedFileAfterUpload.exists());
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Android-AppBase"})
|
| + public void testCrashUploadConstrainted_ForcedUpload() throws Exception {
|
| + setForcedUpload();
|
| + CrashReportingPermissionManager testPermManager =
|
| + new MockCrashReportingPermissionManager() {
|
| + {
|
| + mIsInSample = true;
|
| + mIsPermitted = true;
|
| + mIsUserPermitted = true;
|
| + mIsCommandLineDisabled = false;
|
| + mIsLimited = true;
|
| + mIsEnabledForTests = false;
|
| + }
|
| + };
|
| +
|
| + HttpURLConnectionFactory httpURLConnectionFactory = new TestHttpURLConnectionFactory();
|
| +
|
| + MinidumpUploadCallable minidumpUploadCallable =
|
| + new MockMinidumpUploadCallable(httpURLConnectionFactory, testPermManager);
|
| + assertEquals(
|
| + MinidumpUploadCallable.UPLOAD_SUCCESS, minidumpUploadCallable.call().intValue());
|
| +
|
| + File expectedSkippedFileAfterUpload =
|
| + new File(mCrashDir, mTestUpload.getName().replace(".forced", ".skipped"));
|
| + assertFalse(expectedSkippedFileAfterUpload.exists());
|
| + assertTrue(mExpectedFileAfterUpload.exists());
|
| + }
|
| +
|
| private void extendUploadFile(int numBytes) throws FileNotFoundException, IOException {
|
| FileOutputStream stream = null;
|
| try {
|
|
|