summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt')
-rw-r--r--mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt51
1 files changed, 51 insertions, 0 deletions
diff --git a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt
new file mode 100644
index 0000000000..868491cd85
--- /dev/null
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ContentCrashTest.kt
@@ -0,0 +1,51 @@
+package org.mozilla.geckoview.test
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.MediumTest
+import androidx.test.platform.app.InstrumentationRegistry
+import org.hamcrest.Matchers
+import org.junit.After
+import org.junit.Assert.assertTrue
+import org.junit.Assume.assumeThat
+import org.junit.Assume.assumeTrue
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mozilla.geckoview.BuildConfig
+import org.mozilla.geckoview.GeckoRuntime
+import org.mozilla.geckoview.GeckoSession.ContentDelegate
+import org.mozilla.geckoview.test.rule.GeckoSessionTestRule.IgnoreCrash
+
+@RunWith(AndroidJUnit4::class)
+@MediumTest
+class ContentCrashTest : BaseSessionTest() {
+ val client = TestCrashHandler.Client(InstrumentationRegistry.getInstrumentation().targetContext)
+
+ @Before
+ fun setup() {
+ assertTrue(client.connect(env.defaultTimeoutMillis))
+ client.setEvalNextCrashDump(GeckoRuntime.CRASHED_PROCESS_TYPE_FOREGROUND_CHILD)
+ }
+
+ @IgnoreCrash
+ @Test
+ fun crashContent() {
+ // We need the crash reporter for this test
+ assumeTrue(BuildConfig.MOZ_CRASHREPORTER)
+
+ // TODO: bug 1710940
+ assumeThat(sessionRule.env.isIsolatedProcess, Matchers.equalTo(false))
+
+ mainSession.loadUri(CONTENT_CRASH_URL)
+ mainSession.waitUntilCalled(ContentDelegate::class, "onCrash")
+
+ // This test is really slow so we allow double the usual timeout
+ var evalResult = client.getEvalResult(env.defaultTimeoutMillis * 2)
+ assertTrue(evalResult.mMsg, evalResult.mResult)
+ }
+
+ @After
+ fun teardown() {
+ client.disconnect()
+ }
+}