[components] concept-fetch: Add API/flag to force network request

This commit is contained in:
Christian Sadilek
2019-02-14 18:02:44 -05:00
committed by Sebastian Kaspari
parent 620e6bc33d
commit 12d8b54dd4
11 changed files with 111 additions and 7 deletions

View File

@@ -63,7 +63,7 @@ private fun HttpURLConnection.addBodyFrom(request: Request) {
}
}
private fun HttpURLConnection.setupWith(request: Request) {
internal fun HttpURLConnection.setupWith(request: Request) {
requestMethod = request.method.name
instanceFollowRedirects = request.redirect == Request.Redirect.FOLLOW
@@ -75,6 +75,8 @@ private fun HttpURLConnection.setupWith(request: Request) {
readTimeout = unit.toMillis(timeout).toInt()
}
useCaches = request.useCaches
// HttpURLConnection can't be configured to omit cookies. As
// a workaround, we delete all cookies we have stored for
// the request URI.

View File

@@ -5,8 +5,12 @@
package mozilla.components.lib.fetch.httpurlconnection
import mozilla.components.concept.fetch.Client
import mozilla.components.concept.fetch.Request
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
import java.net.HttpURLConnection
import java.net.URL
class HttpUrlConnectionFetchTestCases : mozilla.components.tooling.fetch.tests.FetchTestCases() {
override fun createNewClient(): Client = HttpURLConnectionClient()
@@ -18,4 +22,16 @@ class HttpUrlConnectionFetchTestCases : mozilla.components.tooling.fetch.tests.F
// We need at least one test case defined here so that this is recognized as test class.
assertTrue(createNewClient() is HttpURLConnectionClient)
}
@Test
override fun get200WithCacheControl() {
// We can't run the base fetch test case because HttpResponseCache
// doesn't work in a unit test. So we test that we set the
// flag correctly instead.
val connection = (URL("https://mozilla.org").openConnection() as HttpURLConnection)
assertTrue(connection.useCaches)
connection.setupWith((Request("https://mozilla.org", useCaches = false)))
assertFalse(connection.useCaches)
}
}