OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 package org.chromium.chrome.browser.crash; |
| 6 |
| 7 import android.test.InstrumentationTestCase; |
| 8 import android.util.Log; |
| 9 |
| 10 import java.io.File; |
| 11 import java.io.FileWriter; |
| 12 import java.io.IOException; |
| 13 import java.io.PrintWriter; |
| 14 import java.util.Arrays; |
| 15 import java.util.List; |
| 16 |
| 17 /** |
| 18 * Base case for Crash upload related tests. |
| 19 */ |
| 20 public class CrashTestCase extends InstrumentationTestCase { |
| 21 private static final String TAG = "CrashTestCase"; |
| 22 |
| 23 protected File mCrashDir; |
| 24 protected File mCacheDir; |
| 25 |
| 26 @Override |
| 27 protected void setUp() throws Exception { |
| 28 super.setUp(); |
| 29 mCacheDir = getInstrumentation().getTargetContext().getCacheDir(); |
| 30 mCrashDir = new File( |
| 31 mCacheDir, |
| 32 CrashFileManager.CRASH_DUMP_DIR); |
| 33 if (!mCrashDir.isDirectory() && !mCrashDir.mkdir()) { |
| 34 throw new Exception("Unable to create directory: " + mCrashDir.getAb
solutePath()); |
| 35 } |
| 36 } |
| 37 |
| 38 @Override |
| 39 protected void tearDown() throws Exception { |
| 40 super.tearDown(); |
| 41 List<File> crashFiles = Arrays.asList(mCrashDir.listFiles()); |
| 42 for (File crashFile : crashFiles) { |
| 43 if (!crashFile.delete()) { |
| 44 Log.e(TAG, "Unable to delete: " + crashFile.getAbsolutePath()); |
| 45 } |
| 46 } |
| 47 if (!mCrashDir.delete()) { |
| 48 Log.e(TAG, "Unable to delete: " + mCrashDir.getAbsolutePath()); |
| 49 } |
| 50 } |
| 51 |
| 52 protected static void setUpMinidumpFile(File file, String boundary) throws I
OException { |
| 53 PrintWriter miniDumpWriter = null; |
| 54 try { |
| 55 miniDumpWriter = new PrintWriter(new FileWriter(file)); |
| 56 miniDumpWriter.println("--" + boundary); |
| 57 miniDumpWriter.println("Content-Disposition: form-data; name=\"prod\
""); |
| 58 miniDumpWriter.println(); |
| 59 miniDumpWriter.println("Chrome_Android"); |
| 60 miniDumpWriter.println("--" + boundary); |
| 61 miniDumpWriter.println("Content-Disposition: form-data; name=\"ver\"
"); |
| 62 miniDumpWriter.println(); |
| 63 miniDumpWriter.println("1"); |
| 64 miniDumpWriter.println(boundary + "--"); |
| 65 miniDumpWriter.flush(); |
| 66 miniDumpWriter.close(); |
| 67 } finally { |
| 68 if (miniDumpWriter != null) { |
| 69 miniDumpWriter.close(); |
| 70 } |
| 71 } |
| 72 } |
| 73 } |
OLD | NEW |