Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4012)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java

Issue 2822633002: 🔍 General widget fixes (Closed)
Patch Set: 🔍 Further widget cleanup Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java
index 4f7f6a64d623fd0a90cebc6e614ada11031f69d0..1f74618c31dd97a123da7b730c5e83d0b40808d7 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java
@@ -9,6 +9,7 @@ import android.app.Instrumentation;
import android.app.Instrumentation.ActivityMonitor;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.util.Pair;
@@ -185,4 +186,34 @@ public class SearchWidgetProviderTest {
intent, SearchWidgetProvider.EXTRA_START_VOICE_SEARCH, false);
Assert.assertEquals(clickTarget == R.id.microphone_icon, microphoneState);
}
+
+ @Test
+ @SmallTest
+ public void testCrashAbsorption() {
+ Runnable crashingRunnable = new Runnable() {
+ @Override
+ public void run() {
+ throw new RuntimeException();
+ }
+ };
+
+ SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
+ Assert.assertEquals(0, SearchWidgetProvider.getNumConsecutiveCrashes(prefs));
+
+ // The first few crashes should be silently absorbed.
+ SearchWidgetProvider.run(crashingRunnable);
+ Assert.assertEquals(1, SearchWidgetProvider.getNumConsecutiveCrashes(prefs));
+ SearchWidgetProvider.run(crashingRunnable);
+ Assert.assertEquals(2, SearchWidgetProvider.getNumConsecutiveCrashes(prefs));
+
+ // The crash should be thrown after hitting the crash limit, which is 3.
+ boolean exceptionWasThrown = false;
+ try {
+ SearchWidgetProvider.run(crashingRunnable);
+ } catch (Exception e) {
+ exceptionWasThrown = true;
+ }
+ Assert.assertEquals(3, SearchWidgetProvider.getNumConsecutiveCrashes(prefs));
+ Assert.assertTrue(exceptionWasThrown);
+ }
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698