Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import ai.kilocode.client.testing.TestCoroutines
import ai.kilocode.client.testing.pumpEdt
import ai.kilocode.client.testing.TestUiTimers
import ai.kilocode.client.testing.fire
import ai.kilocode.client.testing.installBrowser
import ai.kilocode.client.ui.list.ActiveListBadge
import ai.kilocode.client.ui.list.ActiveListItem
import ai.kilocode.client.ui.list.ActiveListMetrics
Expand Down Expand Up @@ -69,6 +70,7 @@ class AgentManagerPanelTest : BasePlatformTestCase() {

override fun setUp() {
super.setUp()
installBrowser()
coroutines = TestCoroutines()
rpc = FakeWorktreeRpcApi()
service = KiloWorktreeService(coroutines.scope, rpc)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import ai.kilocode.client.testing.FakeWorktreeRpcApi
import ai.kilocode.client.testing.TestCoroutines
import ai.kilocode.client.testing.pumpEdt
import ai.kilocode.client.testing.TestUiTimers
import ai.kilocode.client.testing.installBrowser
import ai.kilocode.client.util.edtWait
import ai.kilocode.rpc.dto.GhAvailability
import com.intellij.openapi.application.ApplicationManager
Expand All @@ -22,6 +23,7 @@ class GhBannerTest : BasePlatformTestCase() {

override fun setUp() {
super.setUp()
installBrowser()
coroutines = TestCoroutines()
rpc = FakeWorktreeRpcApi()
timers = TestUiTimers()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import ai.kilocode.client.testing.FakeWorktreeRpcApi
import ai.kilocode.client.testing.TestCoroutines
import ai.kilocode.client.testing.pumpEdt
import ai.kilocode.client.testing.TestUiTimers
import ai.kilocode.client.testing.installBrowser
import ai.kilocode.client.util.edtWait
import ai.kilocode.rpc.dto.GhAvailability
import com.intellij.openapi.application.ApplicationManager
Expand All @@ -21,6 +22,7 @@ class GhStatusCoordinatorTest : BasePlatformTestCase() {

override fun setUp() {
super.setUp()
installBrowser()
coroutines = TestCoroutines()
rpc = FakeWorktreeRpcApi()
timers = TestUiTimers()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import ai.kilocode.client.util.edtWait
import ai.kilocode.client.app.KiloProviderService
import ai.kilocode.client.plugin.KiloBundle
import ai.kilocode.client.testing.FakeProviderRpcApi
import ai.kilocode.client.testing.installBrowser
import ai.kilocode.client.ui.UiStyle
import ai.kilocode.client.ui.list.ActiveListActionCell
import ai.kilocode.client.ui.list.ActiveListConfig
Expand Down Expand Up @@ -985,6 +986,7 @@ class ProvidersSettingsUiTest : BasePlatformTestCase() {

fun `test provider oauth auto response shows device auth panel`() {
val callback = CompletableDeferred<ai.kilocode.rpc.dto.ProviderActionResultDto>()
val browser = installBrowser()
Comment thread
WebReflection marked this conversation as resolved.
val rpc = installProvider(
ProviderSettingsDto(
providers = listOf(provider("openai", "OpenAI")),
Expand Down Expand Up @@ -1016,6 +1018,7 @@ class ProvidersSettingsUiTest : BasePlatformTestCase() {
assertTrue(t, t.contains("Open Browser"))
assertTrue(t, t.contains("Cancel"))
assertEquals("https://auth.openai.com/device", fieldsByName(panel, "kilo.provider.oauth.url").single().text)
assertEquals(listOf("https://auth.openai.com/device"), browser.urls)
val qr = components(panel).filterIsInstance<JBLabel>().single { it.name == "kilo.provider.oauth.qr" }
assertNotNull(qr.icon)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package ai.kilocode.client.testing

import com.intellij.ide.browsers.BrowserLauncher
import com.intellij.ide.browsers.WebBrowser
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project
import com.intellij.testFramework.fixtures.BasePlatformTestCase
import com.intellij.testFramework.replaceService
import java.nio.file.Path

class FakeBrowserLauncher : BrowserLauncher() {
val urls = mutableListOf<String>()
val files = mutableListOf<Path>()

override fun open(url: String) {
urls.add(url)
}

@Suppress("DEPRECATION")
override fun browse(file: java.io.File) {
files.add(file.toPath())
}

override fun browse(file: Path) {
files.add(file)
}

override fun browse(url: String, browser: WebBrowser?, project: Project?) {
urls.add(url)
}
}

fun BasePlatformTestCase.installBrowser(): FakeBrowserLauncher {
val fake = FakeBrowserLauncher()
ApplicationManager.getApplication().replaceService(BrowserLauncher::class.java, fake, testRootDisposable)
return fake
}
Loading