Skip to content

Commit f9b19b1

Browse files
rvandermeulenjonalmeida
authored andcommitted
Migrate to MockWebServer3
1 parent 0049335 commit f9b19b1

12 files changed

Lines changed: 41 additions & 40 deletions

File tree

app/src/androidTest/java/org/mozilla/reference/browser/helpers/MockWebServer.kt

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ package org.mozilla.reference.browser.helpers
77
import android.net.Uri
88
import android.os.Handler
99
import android.os.Looper
10-
import okhttp3.mockwebserver.Dispatcher
11-
import okhttp3.mockwebserver.MockResponse
12-
import okhttp3.mockwebserver.MockWebServer
13-
import okhttp3.mockwebserver.RecordedRequest
10+
import mockwebserver3.Dispatcher
11+
import mockwebserver3.MockResponse
12+
import mockwebserver3.MockWebServer
13+
import mockwebserver3.RecordedRequest
1414
import okio.Buffer
1515
import okio.source
1616
import org.mozilla.reference.browser.helpers.ext.toUri
@@ -22,23 +22,21 @@ object MockWebServerHelper {
2222
val mockServer = MockWebServer()
2323
var uniquePath = 0
2424
val uris = mutableListOf<Uri>()
25+
2526
messages.forEach { message ->
26-
val response = MockResponse().setBody("<html><body>$message</body></html>")
27+
val response = MockResponse(body = "<html><body>$message</body></html>")
2728
mockServer.enqueue(response)
29+
2830
val endpoint = mockServer.url(uniquePath++.toString()).toString().toUri()!!
2931
uris += endpoint
3032
}
33+
3134
return uris
3235
}
3336
}
3437

3538
/**
3639
* A [MockWebServer] [Dispatcher] that will return Android assets in the body of requests.
37-
*
38-
* If the dispatcher is unable to read a requested asset, it will fail the test by throwing an
39-
* Exception on the main thread.
40-
*
41-
* @sample [org.mozilla.tv.firefox.ui.BasicNavigationTest.basicNavigationTest]
4240
*/
4341
const val HTTP_OK = 200
4442
const val HTTP_NOT_FOUND = 404
@@ -50,16 +48,17 @@ class AndroidAssetDispatcher : Dispatcher() {
5048
val assetManager = androidx.test.platform.app.InstrumentationRegistry
5149
.getInstrumentation()
5250
.context.assets
53-
try {
54-
val pathWithoutQueryParams = Uri.parse(request.path!!.drop(1)).path
55-
assetManager.open(pathWithoutQueryParams!!).use { inputStream ->
56-
return fileToResponse(pathWithoutQueryParams, inputStream)
51+
52+
return try {
53+
val assetPath = request.url.encodedPath.removePrefix("/")
54+
val normalizedPath = Uri.parse(assetPath).path ?: assetPath
55+
56+
assetManager.open(normalizedPath).use { inputStream ->
57+
fileToResponse(normalizedPath, inputStream)
5758
}
5859
} catch (e: IOException) {
59-
// e.g. file not found.
60-
// We're on a background thread so we need to forward the exception to the main thread.
6160
mainThreadHandler.postAtFrontOfQueue { throw e }
62-
return MockResponse().setResponseCode(HTTP_NOT_FOUND)
61+
MockResponse(code = HTTP_NOT_FOUND)
6362
}
6463
}
6564
}
@@ -69,10 +68,12 @@ private fun fileToResponse(
6968
path: String,
7069
file: InputStream,
7170
): MockResponse =
72-
MockResponse()
73-
.setResponseCode(HTTP_OK)
74-
.setBody(fileToBytes(file)!!)
71+
MockResponse
72+
.Builder()
73+
.code(HTTP_OK)
74+
.body(fileToBytes(file)!!)
7575
.addHeader("content-type: " + contentType(path))
76+
.build()
7677

7778
@Throws(IOException::class)
7879
private fun fileToBytes(file: InputStream): Buffer? {

app/src/androidTest/java/org/mozilla/reference/browser/helpers/TestAssetHelper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package org.mozilla.reference.browser.helpers
66

77
import android.net.Uri
8-
import okhttp3.mockwebserver.MockWebServer
8+
import mockwebserver3.MockWebServer
99
import org.mozilla.reference.browser.helpers.ext.toUri
1010
import java.util.concurrent.TimeUnit
1111

app/src/androidTest/java/org/mozilla/reference/browser/ui/AddonsTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package org.mozilla.reference.browser.ui
66

7-
import okhttp3.mockwebserver.MockWebServer
7+
import mockwebserver3.MockWebServer
88
import org.junit.After
99
import org.junit.Before
1010
import org.junit.Rule
@@ -34,7 +34,7 @@ class AddonsTest {
3434

3535
@After
3636
fun tearDown() {
37-
mockWebServer.shutdown()
37+
runCatching { mockWebServer.close() }
3838
}
3939

4040
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/ContextMenusTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package org.mozilla.reference.browser.ui
66

77
import android.os.Build
8-
import okhttp3.mockwebserver.MockWebServer
8+
import mockwebserver3.MockWebServer
99
import org.junit.After
1010
import org.junit.Before
1111
import org.junit.Rule
@@ -43,7 +43,7 @@ class ContextMenusTest {
4343

4444
@After
4545
fun tearDown() {
46-
mockWebServer.shutdown()
46+
runCatching { mockWebServer.close() }
4747

4848
// Allow the System UI from reading the clipboard content
4949
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {

app/src/androidTest/java/org/mozilla/reference/browser/ui/CustomTabsTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
package org.mozilla.reference.browser.ui
88

99
import androidx.test.rule.ActivityTestRule
10-
import okhttp3.mockwebserver.MockWebServer
10+
import mockwebserver3.MockWebServer
1111
import org.junit.After
1212
import org.junit.Before
1313
import org.junit.Rule
@@ -47,7 +47,7 @@ class CustomTabsTest {
4747

4848
@After
4949
fun tearDown() {
50-
mockWebServer.shutdown()
50+
runCatching { mockWebServer.close() }
5151
}
5252

5353
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/DownloadTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package org.mozilla.reference.browser.ui
66

7-
import okhttp3.mockwebserver.MockWebServer
7+
import mockwebserver3.MockWebServer
88
import org.junit.After
99
import org.junit.Before
1010
import org.junit.Ignore
@@ -38,7 +38,7 @@ class DownloadTest {
3838

3939
@After
4040
fun tearDown() {
41-
mockWebServer.shutdown()
41+
runCatching { mockWebServer.close() }
4242
}
4343

4444
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/MediaPlaybackTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package org.mozilla.reference.browser.ui
66

7-
import okhttp3.mockwebserver.MockWebServer
7+
import mockwebserver3.MockWebServer
88
import org.junit.After
99
import org.junit.Before
1010
import org.junit.Rule
@@ -36,7 +36,7 @@ class MediaPlaybackTest {
3636

3737
@After
3838
fun tearDown() {
39-
mockWebServer.shutdown()
39+
runCatching { mockWebServer.close() }
4040
}
4141

4242
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/ReaderViewTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package org.mozilla.reference.browser.ui
66

7-
import okhttp3.mockwebserver.MockWebServer
7+
import mockwebserver3.MockWebServer
88
import org.junit.After
99
import org.junit.Before
1010
import org.junit.Rule
@@ -35,7 +35,7 @@ class ReaderViewTest {
3535

3636
@After
3737
fun tearDown() {
38-
mockWebServer.shutdown()
38+
runCatching { mockWebServer.close() }
3939
}
4040

4141
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/SearchTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package org.mozilla.reference.browser.ui
66

7-
import okhttp3.mockwebserver.MockWebServer
7+
import mockwebserver3.MockWebServer
88
import org.junit.After
99
import org.junit.Before
1010
import org.junit.Rule
@@ -35,7 +35,7 @@ class SearchTest {
3535

3636
@After
3737
fun tearDown() {
38-
mockWebServer.shutdown()
38+
runCatching { mockWebServer.close() }
3939
}
4040

4141
@Test

app/src/androidTest/java/org/mozilla/reference/browser/ui/TabTrayMenuTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withId
1010
import androidx.test.platform.app.InstrumentationRegistry
1111
import androidx.test.uiautomator.UiDevice
1212
import androidx.test.uiautomator.UiSelector
13-
import okhttp3.mockwebserver.MockWebServer
13+
import mockwebserver3.MockWebServer
1414
import org.junit.After
1515
import org.junit.Before
1616
import org.junit.Ignore
@@ -73,7 +73,7 @@ class TabTrayMenuTest {
7373

7474
@After
7575
fun tearDown() {
76-
mockWebServer.shutdown()
76+
runCatching { mockWebServer.close() }
7777
}
7878

7979
// This test verifies the tab tray menu items are all in place

0 commit comments

Comments
 (0)