Class mozilla.components.support.webextensions.WebExtensionSupportTest

33

tests

0

failures

0

ignored

1.283s

duration

100%

successful

Tests

Test Duration Result
GIVEN BuiltIn extension WHEN calling onInstalled THEN do not show the PostInstallation prompt 0.010s passed
GIVEN already installed extension WHEN calling onInstalled THEN do not show the PostInstallation prompt 0.007s passed
GIVEN extension WHEN calling onInstallationFailedRequest THEN show the installation prompt error 0.014s passed
allows overriding onCloseTab behaviour 0.011s passed
allows overriding onNewTab behaviour 0.005s passed
closes tabs from unsupported extensions 0.022s passed
invokes onExtensionsLoaded callback 0.009s passed
invokes onUpdatePermissionRequest callback 0.222s passed
marks extensions as updated 0.018s passed
observes store and registers handlers on new engine sessions 0.050s passed
queries engine for installed extensions and adds state to the store 0.012s passed
reacts to WebExtensionDelegate onReady by updating the extension details stored in the installedExtensions map 0.254s passed
reacts to action popup being toggled by closing tab as needed 0.028s passed
reacts to action popup being toggled by opening a popup 0.007s passed
reacts to action popup being toggled by opening tab as needed 0.007s passed
reacts to action popup being toggled by selecting tab as needed 0.007s passed
reacts to browser action being defined by dispatching to the store 0.005s passed
reacts to custom tab being closed by removing tab from store 0.008s passed
reacts to custom tab being updated 0.202s passed
reacts to extension being disabled 0.004s passed
reacts to extension being enabled 0.005s passed
reacts to extension being uninstalled 0.008s passed
reacts to extension list being updated in the engine 0.011s passed
reacts to extensions process spawning disabled 0.018s passed
reacts to install permission request 0.006s passed
reacts to new extension being installed 0.155s passed
reacts to new tab being opened by adding tab to store 0.004s passed
reacts to optional permissions for an extension being changed 0.006s passed
reacts to optional permissions request 0.138s passed
reacts to page action being defined by dispatching to the store 0.007s passed
reacts to tab being closed by removing tab from store 0.010s passed
reacts to tab being updated 0.010s passed
sets web extension delegate on engine 0.003s passed

Standard output

D [mozac-webextensions] onInstalled extensionId
I [Clock] SystemClock throws RuntimeException, using DummyClockDelegate
D [mozac-webextensions] onInstalled extensionId
D [mozac-webextensions] onInstalled extensionId
D [mozac-webextensions] onInstalled extensionId
D [mozac-webextensions] onInstalled extensionId
D [mozac-webextensions] onInstalled extensionId
E [mozac-webextensions] onInstallationFailedRequest extensionId

Standard error

Exception in thread "BrowserStore-thread-1 @coroutine#47" java.lang.RuntimeException: Exception while trying to handle coroutine exception
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handlerException(CoroutineExceptionHandler.kt:36)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:27)
	at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:192)
	at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:222)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:946)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:894)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:859)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	Suppressed: java.lang.IllegalStateException: Dispatchers.Main was accessed when the platform dispatcher was absent and the test dispatcher was unset. Please make sure that Dispatchers.setMain() is called before accessing Dispatchers.Main and that Dispatchers.Main is not accessed after Dispatchers.resetMain().
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:45)
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.access$reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:1)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:20)
		at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getMainDispatcher(TestMainDispatcher.kt:18)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getDispatcher(TestMainDispatcher.kt:22)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.isDispatchNeeded(TestMainDispatcher.kt:32)
		at kotlinx.coroutines.internal.DispatchedContinuationKt.safeIsDispatchNeeded(DispatchedContinuation.kt:262)
		at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:144)
		at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
		at kotlinx.coroutines.CancellableContinuationImpl.completeResume(CancellableContinuationImpl.kt:591)
		at kotlinx.coroutines.channels.BufferedChannelKt.tryResume0(BufferedChannel.kt:2957)
		at kotlinx.coroutines.channels.BufferedChannelKt.access$tryResume0(BufferedChannel.kt:1)
		at kotlinx.coroutines.channels.BufferedChannel$BufferedChannelIterator.tryResumeHasNext(BufferedChannel.kt:1719)
		at kotlinx.coroutines.channels.BufferedChannel.tryResumeReceiver(BufferedChannel.kt:662)
		at kotlinx.coroutines.channels.BufferedChannel.updateCellSend(BufferedChannel.kt:478)
		at kotlinx.coroutines.channels.BufferedChannel.access$updateCellSend(BufferedChannel.kt:33)
		at kotlinx.coroutines.channels.BufferedChannel.trySendDropOldest-JP2dKIU(BufferedChannel.kt:3534)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.trySendImpl-Mj0NB7M(ConflatedBufferedChannel.kt:53)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send$suspendImpl(ConflatedBufferedChannel.kt:33)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send(ConflatedBufferedChannel.kt)
		at kotlinx.coroutines.channels.ChannelCoroutine.send(ChannelCoroutine.kt)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1$subscription$1$1.invokeSuspend(StoreExtensions.kt:178)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
		at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
		at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
		at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
		at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1.invokeSuspend$lambda$0(StoreExtensions.kt:176)
		at mozilla.components.lib.state.Store$Subscription.dispatch$lib_state_release(Store.kt:157)
		at mozilla.components.lib.state.Store.transitionTo$lib_state_release(Store.kt:110)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$2(ReducerChainBuilder.kt:52)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$3(ReducerChainBuilder.kt:57)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$5$lambda$4(ReducerChainBuilder.kt:62)
		at mozilla.components.lib.state.Store$dispatch$1.invokeSuspend(Store.kt:96)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		... 4 more
	Caused by: java.lang.IllegalStateException: Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:111)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:101)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:84)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:22)
		... 40 more
	Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
		at android.os.Looper.getMainLooper(Looper.java)
		at kotlinx.coroutines.android.AndroidDispatcherFactory.createDispatcher(HandlerDispatcher.kt:51)
		at kotlinx.coroutines.internal.MainDispatchersKt.tryCreateDispatcher(MainDispatchers.kt:53)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:15)
		... 40 more
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1@5f621288, CoroutineId(47), "coroutine#47":StandaloneCoroutine{Cancelling}@252db163, java.util.concurrent.Executors$FinalizableDelegatedExecutorService@6233d30d]
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
	at android.os.Looper.getMainLooper(Looper.java)
	at mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1.handleException(CoroutineExceptionHandler.kt:50)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:23)
	... 11 more
Exception in thread "BrowserStore-thread-1 @coroutine#59" java.lang.RuntimeException: Exception while trying to handle coroutine exception
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handlerException(CoroutineExceptionHandler.kt:36)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:27)
	at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:192)
	at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:222)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:946)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:894)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:859)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	Suppressed: java.lang.RuntimeException: Method parse in android.net.Uri not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
		at android.net.Uri.parse(Uri.java)
		at mozilla.components.browser.state.reducer.ContentStateReducerKt.isHostEquals(ContentStateReducer.kt:399)
		at mozilla.components.browser.state.reducer.ContentStateReducerKt.access$isHostEquals(ContentStateReducer.kt:1)
		at mozilla.components.browser.state.reducer.ContentStateReducer$reduce$$inlined$updateContentState$2.invoke(ContentStateReducer.kt:366)
		at mozilla.components.browser.state.reducer.ContentStateReducer$reduce$$inlined$updateContentState$2.invoke(ContentStateReducer.kt:363)
		at mozilla.components.browser.state.reducer.BrowserStateReducerKt.updateTabs(BrowserStateReducer.kt:164)
		at mozilla.components.browser.state.reducer.BrowserStateReducerKt.updateTabOrCustomTabState(BrowserStateReducer.kt:105)
		at mozilla.components.browser.state.reducer.ContentStateReducer.reduce(ContentStateReducer.kt:399)
		at mozilla.components.browser.state.reducer.BrowserStateReducer.reduce(BrowserStateReducer.kt:60)
		at mozilla.components.browser.state.store.BrowserStore$1.invoke(BrowserStore.kt:28)
		at mozilla.components.browser.state.store.BrowserStore$1.invoke(BrowserStore.kt:28)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$2(ReducerChainBuilder.kt:51)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$3(ReducerChainBuilder.kt:57)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$5$lambda$4(ReducerChainBuilder.kt:62)
		at mozilla.components.lib.state.Store$dispatch$1.invokeSuspend(Store.kt:96)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		... 4 more
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1@eae87f0, CoroutineId(59), "coroutine#59":StandaloneCoroutine{Cancelling}@63df19ea, java.util.concurrent.Executors$FinalizableDelegatedExecutorService@1fb8672]
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
	at android.os.Looper.getMainLooper(Looper.java)
	at mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1.handleException(CoroutineExceptionHandler.kt:50)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:23)
	... 11 more
Exception in thread "BrowserStore-thread-1 @coroutine#125" java.lang.RuntimeException: Exception while trying to handle coroutine exception
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handlerException(CoroutineExceptionHandler.kt:36)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:27)
	at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:192)
	at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:222)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:946)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:894)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:859)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	Suppressed: java.lang.IllegalStateException: Dispatchers.Main was accessed when the platform dispatcher was absent and the test dispatcher was unset. Please make sure that Dispatchers.setMain() is called before accessing Dispatchers.Main and that Dispatchers.Main is not accessed after Dispatchers.resetMain().
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:45)
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.access$reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:1)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:20)
		at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getMainDispatcher(TestMainDispatcher.kt:18)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getDispatcher(TestMainDispatcher.kt:22)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.isDispatchNeeded(TestMainDispatcher.kt:32)
		at kotlinx.coroutines.internal.DispatchedContinuationKt.safeIsDispatchNeeded(DispatchedContinuation.kt:262)
		at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:144)
		at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
		at kotlinx.coroutines.CancellableContinuationImpl.completeResume(CancellableContinuationImpl.kt:591)
		at kotlinx.coroutines.channels.BufferedChannelKt.tryResume0(BufferedChannel.kt:2957)
		at kotlinx.coroutines.channels.BufferedChannelKt.access$tryResume0(BufferedChannel.kt:1)
		at kotlinx.coroutines.channels.BufferedChannel$BufferedChannelIterator.tryResumeHasNext(BufferedChannel.kt:1719)
		at kotlinx.coroutines.channels.BufferedChannel.tryResumeReceiver(BufferedChannel.kt:662)
		at kotlinx.coroutines.channels.BufferedChannel.updateCellSend(BufferedChannel.kt:478)
		at kotlinx.coroutines.channels.BufferedChannel.access$updateCellSend(BufferedChannel.kt:33)
		at kotlinx.coroutines.channels.BufferedChannel.trySendDropOldest-JP2dKIU(BufferedChannel.kt:3534)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.trySendImpl-Mj0NB7M(ConflatedBufferedChannel.kt:53)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send$suspendImpl(ConflatedBufferedChannel.kt:33)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send(ConflatedBufferedChannel.kt)
		at kotlinx.coroutines.channels.ChannelCoroutine.send(ChannelCoroutine.kt)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1$subscription$1$1.invokeSuspend(StoreExtensions.kt:178)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
		at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
		at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
		at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
		at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1.invokeSuspend$lambda$0(StoreExtensions.kt:176)
		at mozilla.components.lib.state.Store$Subscription.dispatch$lib_state_release(Store.kt:157)
		at mozilla.components.lib.state.Store.transitionTo$lib_state_release(Store.kt:110)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$2(ReducerChainBuilder.kt:52)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$3(ReducerChainBuilder.kt:57)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$5$lambda$4(ReducerChainBuilder.kt:62)
		at mozilla.components.lib.state.Store$dispatch$1.invokeSuspend(Store.kt:96)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		... 4 more
	Caused by: java.lang.IllegalStateException: Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:111)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:101)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:84)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:22)
		... 40 more
	Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
		at android.os.Looper.getMainLooper(Looper.java)
		at kotlinx.coroutines.android.AndroidDispatcherFactory.createDispatcher(HandlerDispatcher.kt:51)
		at kotlinx.coroutines.internal.MainDispatchersKt.tryCreateDispatcher(MainDispatchers.kt:53)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:15)
		... 40 more
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1@3d6c90cb, CoroutineId(125), "coroutine#125":StandaloneCoroutine{Cancelling}@1fe92296, java.util.concurrent.Executors$FinalizableDelegatedExecutorService@551f0cec]
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
	at android.os.Looper.getMainLooper(Looper.java)
	at mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1.handleException(CoroutineExceptionHandler.kt:50)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:23)
	... 11 more
Exception in thread "BrowserStore-thread-1 @coroutine#146" java.lang.RuntimeException: Exception while trying to handle coroutine exception
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handlerException(CoroutineExceptionHandler.kt:36)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:27)
	at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:192)
	at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:222)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:946)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:894)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:859)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	Suppressed: java.lang.IllegalStateException: Dispatchers.Main was accessed when the platform dispatcher was absent and the test dispatcher was unset. Please make sure that Dispatchers.setMain() is called before accessing Dispatchers.Main and that Dispatchers.Main is not accessed after Dispatchers.resetMain().
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:45)
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.access$reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:1)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:20)
		at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getMainDispatcher(TestMainDispatcher.kt:18)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getDispatcher(TestMainDispatcher.kt:22)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.isDispatchNeeded(TestMainDispatcher.kt:32)
		at kotlinx.coroutines.internal.DispatchedContinuationKt.safeIsDispatchNeeded(DispatchedContinuation.kt:262)
		at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:144)
		at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
		at kotlinx.coroutines.CancellableContinuationImpl.completeResume(CancellableContinuationImpl.kt:591)
		at kotlinx.coroutines.channels.BufferedChannelKt.tryResume0(BufferedChannel.kt:2957)
		at kotlinx.coroutines.channels.BufferedChannelKt.access$tryResume0(BufferedChannel.kt:1)
		at kotlinx.coroutines.channels.BufferedChannel$BufferedChannelIterator.tryResumeHasNext(BufferedChannel.kt:1719)
		at kotlinx.coroutines.channels.BufferedChannel.tryResumeReceiver(BufferedChannel.kt:662)
		at kotlinx.coroutines.channels.BufferedChannel.updateCellSend(BufferedChannel.kt:478)
		at kotlinx.coroutines.channels.BufferedChannel.access$updateCellSend(BufferedChannel.kt:33)
		at kotlinx.coroutines.channels.BufferedChannel.trySendDropOldest-JP2dKIU(BufferedChannel.kt:3534)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.trySendImpl-Mj0NB7M(ConflatedBufferedChannel.kt:53)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send$suspendImpl(ConflatedBufferedChannel.kt:33)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send(ConflatedBufferedChannel.kt)
		at kotlinx.coroutines.channels.ChannelCoroutine.send(ChannelCoroutine.kt)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1$subscription$1$1.invokeSuspend(StoreExtensions.kt:178)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
		at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
		at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
		at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
		at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1.invokeSuspend$lambda$0(StoreExtensions.kt:176)
		at mozilla.components.lib.state.Store$Subscription.dispatch$lib_state_release(Store.kt:157)
		at mozilla.components.lib.state.Store.transitionTo$lib_state_release(Store.kt:110)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$2(ReducerChainBuilder.kt:52)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$3(ReducerChainBuilder.kt:57)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$5$lambda$4(ReducerChainBuilder.kt:62)
		at mozilla.components.lib.state.Store$dispatch$1.invokeSuspend(Store.kt:96)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		... 4 more
	Caused by: java.lang.IllegalStateException: Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:111)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:101)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:84)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:22)
		... 40 more
	Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
		at android.os.Looper.getMainLooper(Looper.java)
		at kotlinx.coroutines.android.AndroidDispatcherFactory.createDispatcher(HandlerDispatcher.kt:51)
		at kotlinx.coroutines.internal.MainDispatchersKt.tryCreateDispatcher(MainDispatchers.kt:53)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:15)
		... 40 more
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1@6b57e226, CoroutineId(146), "coroutine#146":StandaloneCoroutine{Cancelling}@3ebf7ee7, java.util.concurrent.Executors$FinalizableDelegatedExecutorService@42b0c815]
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
	at android.os.Looper.getMainLooper(Looper.java)
	at mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1.handleException(CoroutineExceptionHandler.kt:50)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:23)
	... 11 more
Exception in thread "BrowserStore-thread-1 @coroutine#261" java.lang.RuntimeException: Exception while trying to handle coroutine exception
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handlerException(CoroutineExceptionHandler.kt:36)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:27)
	at kotlinx.coroutines.StandaloneCoroutine.handleJobException(Builders.common.kt:192)
	at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:222)
	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:946)
	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:894)
	at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:859)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
	Suppressed: java.lang.IllegalStateException: Dispatchers.Main was accessed when the platform dispatcher was absent and the test dispatcher was unset. Please make sure that Dispatchers.setMain() is called before accessing Dispatchers.Main and that Dispatchers.Main is not accessed after Dispatchers.resetMain().
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:45)
		at kotlinx.coroutines.test.internal.TestMainDispatcherJvmKt.access$reportMissingMainCoroutineDispatcher(TestMainDispatcherJvm.kt:1)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:20)
		at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getMainDispatcher(TestMainDispatcher.kt:18)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.getDispatcher(TestMainDispatcher.kt:22)
		at kotlinx.coroutines.test.internal.TestMainDispatcher.isDispatchNeeded(TestMainDispatcher.kt:32)
		at kotlinx.coroutines.internal.DispatchedContinuationKt.safeIsDispatchNeeded(DispatchedContinuation.kt:262)
		at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:144)
		at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
		at kotlinx.coroutines.CancellableContinuationImpl.completeResume(CancellableContinuationImpl.kt:591)
		at kotlinx.coroutines.channels.BufferedChannelKt.tryResume0(BufferedChannel.kt:2957)
		at kotlinx.coroutines.channels.BufferedChannelKt.access$tryResume0(BufferedChannel.kt:1)
		at kotlinx.coroutines.channels.BufferedChannel$BufferedChannelIterator.tryResumeHasNext(BufferedChannel.kt:1719)
		at kotlinx.coroutines.channels.BufferedChannel.tryResumeReceiver(BufferedChannel.kt:662)
		at kotlinx.coroutines.channels.BufferedChannel.updateCellSend(BufferedChannel.kt:478)
		at kotlinx.coroutines.channels.BufferedChannel.access$updateCellSend(BufferedChannel.kt:33)
		at kotlinx.coroutines.channels.BufferedChannel.trySendDropOldest-JP2dKIU(BufferedChannel.kt:3534)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.trySendImpl-Mj0NB7M(ConflatedBufferedChannel.kt:53)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send$suspendImpl(ConflatedBufferedChannel.kt:33)
		at kotlinx.coroutines.channels.ConflatedBufferedChannel.send(ConflatedBufferedChannel.kt)
		at kotlinx.coroutines.channels.ChannelCoroutine.send(ChannelCoroutine.kt)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1$subscription$1$1.invokeSuspend(StoreExtensions.kt:178)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
		at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
		at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
		at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
		at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
		at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
		at mozilla.components.lib.state.ext.StoreExtensionsKt$flow$1.invokeSuspend$lambda$0(StoreExtensions.kt:176)
		at mozilla.components.lib.state.Store$Subscription.dispatch$lib_state_release(Store.kt:157)
		at mozilla.components.lib.state.Store.transitionTo$lib_state_release(Store.kt:110)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$2(ReducerChainBuilder.kt:52)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$3(ReducerChainBuilder.kt:57)
		at mozilla.components.lib.state.internal.ReducerChainBuilder.build$lambda$5$lambda$4(ReducerChainBuilder.kt:62)
		at mozilla.components.lib.state.Store$dispatch$1.invokeSuspend(Store.kt:96)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		... 4 more
	Caused by: java.lang.IllegalStateException: Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:111)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:101)
		at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.dispatch(MainDispatchers.kt:84)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:22)
		... 40 more
	Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
		at android.os.Looper.getMainLooper(Looper.java)
		at kotlinx.coroutines.android.AndroidDispatcherFactory.createDispatcher(HandlerDispatcher.kt:51)
		at kotlinx.coroutines.internal.MainDispatchersKt.tryCreateDispatcher(MainDispatchers.kt:53)
		at kotlinx.coroutines.test.internal.TestMainDispatcherFactory.createDispatcher$lambda$4(TestMainDispatcherJvm.kt:15)
		... 40 more
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1@1c1ab9ad, CoroutineId(261), "coroutine#261":StandaloneCoroutine{Cancelling}@21969fac, java.util.concurrent.Executors$FinalizableDelegatedExecutorService@55f786d5]
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
	at android.os.Looper.getMainLooper(Looper.java)
	at mozilla.components.lib.state.internal.DefaultStoreDispatcher$special$$inlined$CoroutineExceptionHandler$1.handleException(CoroutineExceptionHandler.kt:50)
	at kotlinx.coroutines.CoroutineExceptionHandlerKt.handleCoroutineException(CoroutineExceptionHandler.kt:23)
	... 11 more
mozilla.components.concept.engine.webextension.WebExtensionInstallException$Blocklisted: java.lang.Exception
	at mozilla.components.support.webextensions.WebExtensionSupportTest.GIVEN extension WHEN calling onInstallationFailedRequest THEN show the installation prompt error(WebExtensionSupportTest.kt:545)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:112)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:40)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:54)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:53)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
	at jdk.proxy2/jdk.proxy2.$Proxy6.processTestClass(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:183)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: java.lang.Exception
	... 46 more