| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.crash; | 5 package org.chromium.chrome.browser.crash; |
| 6 | 6 |
| 7 import android.content.ComponentName; | 7 import android.content.ComponentName; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.content.Intent; | 9 import android.content.Intent; |
| 10 import android.support.test.filters.MediumTest; | 10 import android.support.test.filters.MediumTest; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 import java.util.ArrayList; | 22 import java.util.ArrayList; |
| 23 import java.util.List; | 23 import java.util.List; |
| 24 import java.util.concurrent.atomic.AtomicInteger; | 24 import java.util.concurrent.atomic.AtomicInteger; |
| 25 | 25 |
| 26 /** | 26 /** |
| 27 * Unittests for {@link LogcatExtractionRunnable}. | 27 * Unittests for {@link LogcatExtractionRunnable}. |
| 28 */ | 28 */ |
| 29 public class LogcatExtractionRunnableTest extends CrashTestCase { | 29 public class LogcatExtractionRunnableTest extends CrashTestCase { |
| 30 private File mCrashDir; | 30 private File mCrashDir; |
| 31 | 31 |
| 32 private class TestJobScheduler extends JobScheduler { |
| 33 private final JobScheduler mRealScheduler; |
| 34 |
| 35 TestJobScheduler(JobScheduler realScheduler) { |
| 36 mRealScheduler = realScheduler; |
| 37 } |
| 38 |
| 39 @Override |
| 40 public void cancel(int jobId) { |
| 41 mRealScheduler.cancel(jobId); |
| 42 } |
| 43 @Override |
| 44 public void cancelAll() { |
| 45 mRealScheduler.cancelAll(); |
| 46 } |
| 47 @Override |
| 48 public List<JobInfo> getAllPendingJobs() { |
| 49 mRealScheduler.getAllPendingJobs(); |
| 50 } |
| 51 @Override |
| 52 public JobInfo getPendingJob() { |
| 53 mRealScheduler.getPendingJob(); |
| 54 } |
| 55 @Override |
| 56 public int schedule(JobInfo job) { |
| 57 assertEquals(MinidumpUploadJobService.MINIDUMP_UPLOADING_JOB_ID, job
.getId()); |
| 58 assertEquals(ChromeMinidumpUploadJobService.class.getName(), |
| 59 job.getService().getClassName()); |
| 60 return mRealScheduler.schedule(uploadJob); |
| 61 } |
| 62 }; |
| 63 |
| 32 @Override | 64 @Override |
| 33 protected void setUp() throws Exception { | 65 protected void setUp() throws Exception { |
| 34 super.setUp(); | 66 super.setUp(); |
| 35 mCrashDir = new CrashFileManager(mCacheDir).getCrashDirectory(); | 67 mCrashDir = new CrashFileManager(mCacheDir).getCrashDirectory(); |
| 36 } | 68 } |
| 37 | 69 |
| 38 @MediumTest | 70 @MediumTest |
| 39 public void testSimpleExtraction() { | 71 public void testSimpleExtraction() { |
| 40 // Set up the test. | 72 // Set up the test. |
| 41 final List<String> logcat = new ArrayList<String>(); | 73 final List<String> logcat = new ArrayList<String>(); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 63 @Override | 95 @Override |
| 64 public ComponentName startService(Intent intent) { | 96 public ComponentName startService(Intent intent) { |
| 65 assertEquals(1, numServiceStarts.incrementAndGet()); | 97 assertEquals(1, numServiceStarts.incrementAndGet()); |
| 66 assertEquals(MinidumpUploadService.class.getName(), | 98 assertEquals(MinidumpUploadService.class.getName(), |
| 67 intent.getComponent().getClassName()); | 99 intent.getComponent().getClassName()); |
| 68 assertEquals(MinidumpUploadService.ACTION_UPLOAD, intent.getActi
on()); | 100 assertEquals(MinidumpUploadService.ACTION_UPLOAD, intent.getActi
on()); |
| 69 assertEquals(new File(mCrashDir, "test.dmp.try0").getAbsolutePat
h(), | 101 assertEquals(new File(mCrashDir, "test.dmp.try0").getAbsolutePat
h(), |
| 70 intent.getStringExtra(MinidumpUploadService.FILE_TO_UPLO
AD_KEY)); | 102 intent.getStringExtra(MinidumpUploadService.FILE_TO_UPLO
AD_KEY)); |
| 71 return super.startService(intent); | 103 return super.startService(intent); |
| 72 } | 104 } |
| 105 |
| 106 @Override |
| 107 public getSystemService(String name) { |
| 108 if (Context.JOB_SCHEDULER_SERVICE.equals(name)) { |
| 109 return new TestJobScheduler(super.getSystemService(name)); |
| 110 } |
| 111 |
| 112 return super.getSystemService(name); |
| 113 } |
| 73 }; | 114 }; |
| 74 | 115 |
| 75 // Extract the logcat! | 116 // Extract the logcat! |
| 76 LogcatExtractionRunnable runnable = new LogcatExtractionRunnable(testCon
text, minidump) { | 117 LogcatExtractionRunnable runnable = new LogcatExtractionRunnable(testCon
text, minidump) { |
| 77 @Override | 118 @Override |
| 78 protected List<String> getLogcat() { | 119 protected List<String> getLogcat() { |
| 79 return logcat; | 120 return logcat; |
| 80 } | 121 } |
| 81 }; | 122 }; |
| 82 runnable.run(); | 123 runnable.run(); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 102 assertEquals( | 143 assertEquals( |
| 103 "The minidump contents should follow.", minidumpContents, in
put.readLine()); | 144 "The minidump contents should follow.", minidumpContents, in
put.readLine()); |
| 104 assertNull("There should be nothing else in the file", input.readLin
e()); | 145 assertNull("There should be nothing else in the file", input.readLin
e()); |
| 105 } catch (IOException e) { | 146 } catch (IOException e) { |
| 106 fail(e.toString()); | 147 fail(e.toString()); |
| 107 } finally { | 148 } finally { |
| 108 StreamUtil.closeQuietly(input); | 149 StreamUtil.closeQuietly(input); |
| 109 } | 150 } |
| 110 } | 151 } |
| 111 } | 152 } |
| OLD | NEW |