40 lines
1.3 KiB
Kotlin
40 lines
1.3 KiB
Kotlin
package org.fdroid.download
|
|
|
|
import io.ktor.client.engine.ProxyBuilder
|
|
import io.ktor.http.Url
|
|
import io.ktor.utils.io.errors.IOException
|
|
import org.fdroid.getRandomString
|
|
import org.fdroid.runSuspend
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
import kotlin.test.assertFailsWith
|
|
|
|
class HttpManagerIntegrationTest {
|
|
|
|
private val userAgent = getRandomString()
|
|
private val mirrors = listOf(Mirror("http://example.org"), Mirror("http://example.net/"))
|
|
private val downloadRequest = DownloadRequest("", mirrors)
|
|
|
|
@Test
|
|
fun testResumeOnExample() = runSuspend {
|
|
val httpManager = HttpManager(userAgent, null)
|
|
|
|
val lastLine = httpManager.getBytes(downloadRequest, 1248).decodeToString()
|
|
assertEquals("</html>\n", lastLine)
|
|
}
|
|
|
|
@Test
|
|
fun testProxy() = runSuspend {
|
|
val proxyRequest = downloadRequest.copy(proxy = ProxyBuilder.http(Url("http://127.0.0.1")))
|
|
val httpManager = HttpManager(userAgent, null)
|
|
|
|
val e = assertFailsWith<IOException> {
|
|
httpManager.getBytes(proxyRequest)
|
|
}
|
|
assertEquals("Failed to connect to /127.0.0.1:80", e.message)
|
|
|
|
val lastLine = httpManager.getBytes(downloadRequest, 1248).decodeToString()
|
|
assertEquals("</html>\n", lastLine)
|
|
}
|
|
}
|