Class mozilla.components.support.webextensions.WebExtensionSupportTest
|
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