diff --git a/okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt index 005a0a422..ff5eb6d6d 100644 --- a/okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt +++ b/okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt @@ -3170,6 +3170,7 @@ class CacheTest { .code(HttpURLConnection.HTTP_NOT_MODIFIED) .build(), ) + addFinalFailingResponse() val url = server.url("/") val urlKey = key(url) val entryMetadata = @@ -3205,7 +3206,7 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} writeFile(cache.directoryPath, "$urlKey.0", entryMetadata) writeFile(cache.directoryPath, "$urlKey.1", entryBody) writeFile(cache.directoryPath, "journal", journalBody) - cache = Cache(fileSystem, cache.directory.path.toPath(), Int.MAX_VALUE.toLong()) + cache = Cache(fileSystem, cache.directoryPath, Int.MAX_VALUE.toLong()) client = client .newBuilder() @@ -3220,6 +3221,8 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} /** Exercise the cache format in OkHttp 2.7 and all earlier releases. */ @Test fun testGoldenCacheHttpsResponseOkHttp27() { + addFinalFailingResponse() + val url = server.url("/") val urlKey = key(url) val prefix = get().getPrefix() @@ -3255,7 +3258,7 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} writeFile(cache.directoryPath, "$urlKey.1", entryBody) writeFile(cache.directoryPath, "journal", journalBody) cache.close() - cache = Cache(fileSystem, cache.directory.path.toPath(), Int.MAX_VALUE.toLong()) + cache = Cache(fileSystem, cache.directoryPath, Int.MAX_VALUE.toLong()) client = client .newBuilder() @@ -3269,6 +3272,8 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} /** The TLS version is present in OkHttp 3.0 and beyond. */ @Test fun testGoldenCacheHttpsResponseOkHttp30() { + addFinalFailingResponse() + val url = server.url("/") val urlKey = key(url) val prefix = get().getPrefix() @@ -3309,7 +3314,7 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} writeFile(cache.directoryPath, "$urlKey.1", entryBody) writeFile(cache.directoryPath, "journal", journalBody) cache.close() - cache = Cache(fileSystem, cache.directory.path.toPath(), Int.MAX_VALUE.toLong()) + cache = Cache(fileSystem, cache.directoryPath, Int.MAX_VALUE.toLong()) client = client .newBuilder() @@ -3322,6 +3327,8 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} @Test fun testGoldenCacheHttpResponseOkHttp30() { + addFinalFailingResponse() + val url = server.url("/") val urlKey = key(url) val prefix = get().getPrefix() @@ -3355,7 +3362,7 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} writeFile(cache.directoryPath, "$urlKey.1", entryBody) writeFile(cache.directoryPath, "journal", journalBody) cache.close() - cache = Cache(fileSystem, cache.directory.path.toPath(), Int.MAX_VALUE.toLong()) + cache = Cache(fileSystem, cache.directoryPath, Int.MAX_VALUE.toLong()) client = client .newBuilder() @@ -3366,6 +3373,12 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} assertThat(response.header("Content-Length")).isEqualTo("3") } + private fun addFinalFailingResponse() { + // Should not get to this response, so fail if so. + // Avoids timeout on error + server.enqueue(MockResponse(code = 420, body = "Enhance Your Calm")) + } + @Test fun evictAll() { server.enqueue( @@ -3823,7 +3836,7 @@ CLEAN $urlKey ${entryMetadata.length} ${entryBody.length} file: String, content: String, ) { - val sink = fileSystem.sink(directory.div(file)).buffer() + val sink = fileSystem.sink(directory / file).buffer() sink.writeUtf8(content) sink.close() }