| Index: components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java
 | 
| diff --git a/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java b/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java
 | 
| index 4de6effdf018188ecdd86f313984baa5230bb5a7..77b384170a6ae60c435edb238cdc86bb72b24071 100644
 | 
| --- a/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java
 | 
| +++ b/components/minidump_uploader/android/javatests/src/org/chromium/components/minidump_uploader/CrashTestCase.java
 | 
| @@ -7,6 +7,7 @@ package org.chromium.components.minidump_uploader;
 | 
|  import android.test.InstrumentationTestCase;
 | 
|  
 | 
|  import org.chromium.base.Log;
 | 
| +import org.chromium.components.minidump_uploader.util.CrashReportingPermissionManager;
 | 
|  
 | 
|  import java.io.File;
 | 
|  import java.io.FileWriter;
 | 
| @@ -25,7 +26,7 @@ public class CrashTestCase extends InstrumentationTestCase {
 | 
|      @Override
 | 
|      protected void setUp() throws Exception {
 | 
|          super.setUp();
 | 
| -        mCacheDir = getInstrumentation().getTargetContext().getCacheDir();
 | 
| +        mCacheDir = getExistingCacheDir();
 | 
|          mCrashDir = new File(
 | 
|                  mCacheDir,
 | 
|                  CrashFileManager.CRASH_DUMP_DIR);
 | 
| @@ -34,6 +35,14 @@ public class CrashTestCase extends InstrumentationTestCase {
 | 
|          }
 | 
|      }
 | 
|  
 | 
| +    /**
 | 
| +     * Returns the cache directory where we should store minidumps.
 | 
| +     * Can be overriden by sub-classes to allow for use with different cache directories.
 | 
| +     */
 | 
| +    protected File getExistingCacheDir() {
 | 
| +        return getInstrumentation().getTargetContext().getCacheDir();
 | 
| +    }
 | 
| +
 | 
|      @Override
 | 
|      protected void tearDown() throws Exception {
 | 
|          super.tearDown();
 | 
| @@ -82,4 +91,50 @@ public class CrashTestCase extends InstrumentationTestCase {
 | 
|              }
 | 
|          }
 | 
|      }
 | 
| +
 | 
| +    /**
 | 
| +     * A utility instantiation of CrashReportingPermissionManager providing a compact way of
 | 
| +     * overriding different permission settings.
 | 
| +     */
 | 
| +    public static class MockCrashReportingPermissionManager
 | 
| +            implements CrashReportingPermissionManager {
 | 
| +        protected boolean mIsInSample;
 | 
| +        protected boolean mIsPermitted;
 | 
| +        protected boolean mIsUserPermitted;
 | 
| +        protected boolean mIsCommandLineDisabled;
 | 
| +        protected boolean mIsNetworkAvailable;
 | 
| +        protected boolean mIsEnabledForTests;
 | 
| +
 | 
| +        MockCrashReportingPermissionManager() {}
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isClientInMetricsSample() {
 | 
| +            return mIsInSample;
 | 
| +        }
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isNetworkAvailableForCrashUploads() {
 | 
| +            return mIsNetworkAvailable;
 | 
| +        }
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isMetricsUploadPermitted() {
 | 
| +            return mIsPermitted;
 | 
| +        }
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isUsageAndCrashReportingPermittedByUser() {
 | 
| +            return mIsUserPermitted;
 | 
| +        }
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isCrashUploadDisabledByCommandLine() {
 | 
| +            return mIsCommandLineDisabled;
 | 
| +        }
 | 
| +
 | 
| +        @Override
 | 
| +        public boolean isUploadEnabledForTests() {
 | 
| +            return mIsEnabledForTests;
 | 
| +        }
 | 
| +    }
 | 
|  }
 | 
| 
 |