diff options
Diffstat (limited to 'android/test')
7 files changed, 34 insertions, 38 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/CaptureScreenshotOnFailedTestRule.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/CaptureScreenshotOnFailedTestRule.kt index 9138982a43..2018714e09 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/CaptureScreenshotOnFailedTestRule.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/CaptureScreenshotOnFailedTestRule.kt @@ -7,9 +7,9 @@ import android.os.Build import android.os.Environment import android.os.Environment.DIRECTORY_PICTURES import android.provider.MediaStore -import android.util.Log import androidx.annotation.RequiresApi import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation +import co.touchlab.kermit.Logger import java.io.File import java.io.FileOutputStream import java.io.IOException @@ -22,7 +22,7 @@ import org.junit.jupiter.api.extension.TestWatcher class CaptureScreenshotOnFailedTestRule(private val testTag: String) : TestWatcher { override fun testFailed(context: ExtensionContext, cause: Throwable) { - Log.d(testTag, "Capturing screenshot of failed test: " + context.requiredTestMethod.name) + Logger.d("Capturing screenshot of failed test: " + context.requiredTestMethod.name) val timestamp = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS) val screenshotName = "$timestamp-${context.requiredTestMethod.name}.jpeg" captureScreenshot(testTag, screenshotName) @@ -71,12 +71,12 @@ class CaptureScreenshotOnFailedTestRule(private val testTag: String) : TestWatch try { this.compress(Bitmap.CompressFormat.JPEG, 50, it!!) } catch (e: IOException) { - Log.e(testTag, "Unable to store screenshot: ${e.message}") + Logger.e("Unable to store screenshot: ${e.message}") } } contentResolver.update(uri, contentValues, null, null) } else { - Log.e(testTag, "Unable to store screenshot") + Logger.e("Unable to store screenshot") } } @@ -101,7 +101,7 @@ class CaptureScreenshotOnFailedTestRule(private val testTag: String) : TestWatch try { this.compress(Bitmap.CompressFormat.JPEG, 50, outputStream) } catch (e: IOException) { - Log.e(testTag, "Unable to store screenshot: ${e.message}") + Logger.e("Unable to store screenshot: ${e.message}") } } contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt index f4979258f2..160ef52468 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt @@ -5,6 +5,7 @@ import android.content.Context import android.os.Build import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice +import co.touchlab.kermit.Logger import de.mannodermaus.junit5.extensions.GrantPermissionExtension import net.mullvad.mullvadvpn.test.common.interactor.AppInteractor import net.mullvad.mullvadvpn.test.common.rule.CaptureScreenshotOnFailedTestRule @@ -34,6 +35,8 @@ abstract class EndToEndTest(private val infra: String) { @BeforeEach fun setup() { + Logger.setTag(LOG_TAG) + device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) targetContext = InstrumentationRegistry.getInstrumentation().targetContext diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt index f79f78e03b..6bacf15a3a 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt @@ -1,8 +1,7 @@ package net.mullvad.mullvadvpn.test.e2e.misc -import android.util.Log import androidx.test.platform.app.InstrumentationRegistry -import net.mullvad.mullvadvpn.test.e2e.constant.LOG_TAG +import co.touchlab.kermit.Logger import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument import net.mullvad.mullvadvpn.test.e2e.interactor.MullvadAccountInteractor @@ -12,7 +11,7 @@ import org.junit.jupiter.api.extension.ExtensionContext class CleanupAccountTestRule : BeforeEachCallback { override fun beforeEach(context: ExtensionContext) { - Log.d(LOG_TAG, "Cleaning up account before test: ${context.requiredTestMethod.name}") + Logger.d("Cleaning up account before test: ${context.requiredTestMethod.name}") val targetContext = InstrumentationRegistry.getInstrumentation().targetContext val validTestAccountNumber = InstrumentationRegistry.getArguments() diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt index 78f5e967e0..a72f27a3ef 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.test.e2e.misc import android.content.Context -import android.util.Log import androidx.test.services.events.TestEventException +import co.touchlab.kermit.Logger import com.android.volley.Request import com.android.volley.toolbox.JsonArrayRequest import com.android.volley.toolbox.JsonObjectRequest @@ -13,7 +13,6 @@ import net.mullvad.mullvadvpn.test.e2e.constant.ACCOUNT_URL import net.mullvad.mullvadvpn.test.e2e.constant.AUTH_URL import net.mullvad.mullvadvpn.test.e2e.constant.CONN_CHECK_URL import net.mullvad.mullvadvpn.test.e2e.constant.DEVICE_LIST_URL -import net.mullvad.mullvadvpn.test.e2e.constant.LOG_TAG import net.mullvad.mullvadvpn.test.e2e.constant.PARTNER_ACCOUNT_URL import org.json.JSONArray import org.json.JSONObject @@ -23,19 +22,19 @@ class SimpleMullvadHttpClient(context: Context) { private val queue = Volley.newRequestQueue(context) fun removeAllDevices(accountNumber: String) { - Log.v(LOG_TAG, "Remove all devices") + Logger.v("Remove all devices") val token = login(accountNumber) val devices = getDeviceList(token) devices.forEach { removeDevice(token, it) } - Log.v(LOG_TAG, "All devices removed") + Logger.v("All devices removed") } fun login(accountNumber: String): String { - Log.v(LOG_TAG, "Attempt login with account token: $accountNumber") + Logger.v("Attempt login with account token: $accountNumber") val json = JSONObject().apply { put("account_number", accountNumber) } return sendSimpleSynchronousRequest(Request.Method.POST, AUTH_URL, json)!!.let { response -> response.getString("access_token").also { accessToken -> - Log.v(LOG_TAG, "Successfully logged in and received access token: $accessToken") + Logger.v("Successfully logged in and received access token: $accessToken") } } } @@ -59,7 +58,7 @@ class SimpleMullvadHttpClient(context: Context) { } fun getDeviceList(accessToken: String): List<String> { - Log.v(LOG_TAG, "Get devices") + Logger.v("Get devices") val response = sendSimpleSynchronousRequestArray( @@ -74,14 +73,14 @@ class SimpleMullvadHttpClient(context: Context) { .toList() .also { it.map { jsonObject -> jsonObject.getString("name") } - .also { deviceNames -> Log.v(LOG_TAG, "Devices received: $deviceNames") } + .also { deviceNames -> Logger.v("Devices received: $deviceNames") } } .map { it.getString("id") } .toList() } fun removeDevice(token: String, deviceId: String) { - Log.v(LOG_TAG, "Remove device: $deviceId") + Logger.v("Remove device: $deviceId") sendSimpleSynchronousRequestString( method = Request.Method.DELETE, url = "$DEVICE_LIST_URL/$deviceId", @@ -122,11 +121,9 @@ class SimpleMullvadHttpClient(context: Context) { } queue.add(request) return try { - future.get().also { response -> - Log.v(LOG_TAG, "Json object request response: $response") - } + future.get().also { response -> Logger.v("Json object request response: $response") } } catch (e: Exception) { - Log.v(LOG_TAG, "Json object request error: ${e.message}") + Logger.v("Json object request error: ${e.message}") throw TestEventException(REQUEST_ERROR_MESSAGE) } } @@ -153,9 +150,9 @@ class SimpleMullvadHttpClient(context: Context) { } queue.add(request) return try { - future.get().also { response -> Log.v(LOG_TAG, "String request response: $response") } + future.get().also { response -> Logger.v("String request response: $response") } } catch (e: Exception) { - Log.v(LOG_TAG, "String request error: ${e.message}") + Logger.v("String request error: ${e.message}") throw TestEventException(REQUEST_ERROR_MESSAGE) } } @@ -180,11 +177,9 @@ class SimpleMullvadHttpClient(context: Context) { } queue.add(request) return try { - future.get().also { response -> - Log.v(LOG_TAG, "Json array request response: $response") - } + future.get().also { response -> Logger.v("Json array request response: $response") } } catch (e: Exception) { - Log.v(LOG_TAG, "Json array request error: ${e.message}") + Logger.v("Json array request error: ${e.message}") throw TestEventException(REQUEST_ERROR_MESSAGE) } } diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/Extensions.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/Extensions.kt index 7eb096b499..356cacb97e 100644 --- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/Extensions.kt +++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/Extensions.kt @@ -1,7 +1,6 @@ package net.mullvad.mullvadvpn.test.mockapi -import android.util.Log -import net.mullvad.mullvadvpn.test.mockapi.constant.LOG_TAG +import co.touchlab.kermit.Logger import okhttp3.mockwebserver.MockResponse import okio.Buffer import org.json.JSONException @@ -15,7 +14,7 @@ fun Buffer.getAccountNumber(): String? { return try { JSONObject(readUtf8()).getString("account_number") } catch (ex: JSONException) { - Log.e(LOG_TAG, "Unable to parse account number") + Logger.e("Unable to parse account number") ex.printStackTrace() null } diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiDispatcher.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiDispatcher.kt index abb4813a33..3539bad0fa 100644 --- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiDispatcher.kt +++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiDispatcher.kt @@ -1,13 +1,12 @@ package net.mullvad.mullvadvpn.test.mockapi -import android.util.Log +import co.touchlab.kermit.Logger import net.mullvad.mullvadvpn.test.mockapi.constant.ACCOUNT_URL_PATH import net.mullvad.mullvadvpn.test.mockapi.constant.AUTH_TOKEN_URL_PATH import net.mullvad.mullvadvpn.test.mockapi.constant.CREATE_ACCOUNT_URL_PATH import net.mullvad.mullvadvpn.test.mockapi.constant.DEVICES_URL_PATH import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_ACCESS_TOKEN import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_ID_1 -import net.mullvad.mullvadvpn.test.mockapi.constant.LOG_TAG import net.mullvad.mullvadvpn.test.mockapi.util.accessTokenJsonResponse import net.mullvad.mullvadvpn.test.mockapi.util.accountCreationJson import net.mullvad.mullvadvpn.test.mockapi.util.accountInfoJson @@ -34,7 +33,7 @@ class MockApiDispatcher : Dispatcher() { private var cachedPubKeyFromAppUnderTest: String? = null override fun dispatch(request: RecordedRequest): MockResponse { - Log.d(LOG_TAG, "Request: $request (body=${request.body.peek().readUtf8()})") + Logger.d("Request: $request (body=${request.body.peek().readUtf8()})") return when (request.path ?: "") { AUTH_TOKEN_URL_PATH -> handleLoginRequest(request.body) DEVICES_URL_PATH -> { @@ -70,7 +69,7 @@ class MockApiDispatcher : Dispatcher() { } } }.also { response -> - Log.d(LOG_TAG, "Response: $response (body=${response.getBody()?.peek()?.readUtf8()})") + Logger.d("Response: $response (body=${response.getBody()?.peek()?.readUtf8()})") } } @@ -89,8 +88,7 @@ class MockApiDispatcher : Dispatcher() { .toString() ) } else { - Log.e( - LOG_TAG, + Logger.e( "Unexpected account number (expected=$expectedAccountNumber was=$accountNumber)" ) MockResponse().setResponseCode(400) diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiTest.kt index 02e53a09d9..74a47f3c3d 100644 --- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiTest.kt +++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/MockApiTest.kt @@ -3,9 +3,9 @@ package net.mullvad.mullvadvpn.test.mockapi import android.Manifest.permission.READ_EXTERNAL_STORAGE import android.Manifest.permission.WRITE_EXTERNAL_STORAGE import android.content.Context -import android.util.Log import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice +import co.touchlab.kermit.Logger import de.mannodermaus.junit5.extensions.GrantPermissionExtension import java.net.InetAddress import net.mullvad.mullvadvpn.lib.endpoint.CustomApiEndpointConfiguration @@ -37,13 +37,15 @@ abstract class MockApiTest { @BeforeEach open fun setup() { + Logger.setTag(LOG_TAG) + device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) targetContext = InstrumentationRegistry.getInstrumentation().targetContext app = AppInteractor(device, targetContext, PACKAGE_NAME) mockWebServer.start() - Log.d(LOG_TAG, "Mocked web server started using port: ${mockWebServer.port}") + Logger.d("Mocked web server started using port: ${mockWebServer.port}") endpoint = createEndpoint(mockWebServer.port) } |
