summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-12-13 09:44:00 +0100
committerAlbin <albin@mullvad.net>2023-01-10 15:32:32 +0100
commitca8878aa238a5c8e3be1f326ce98e238ffe87388 (patch)
tree573df6eff8b272ef70beb533a30f6e244a86d27b /android
parentbd75bd3dd12080de4b8b4aa869fc41611a707533 (diff)
downloadmullvadvpn-ca8878aa238a5c8e3be1f326ce98e238ffe87388.tar.xz
mullvadvpn-ca8878aa238a5c8e3be1f326ce98e238ffe87388.zip
Add empty :test:mockapi project
Diffstat (limited to 'android')
-rw-r--r--android/buildSrc/src/main/kotlin/Dependencies.kt1
-rw-r--r--android/buildSrc/src/main/kotlin/Versions.kt1
-rw-r--r--android/gradle/verification-metadata.xml42
-rw-r--r--android/settings.gradle.kts2
-rw-r--r--android/test/mockapi/build.gradle.kts61
-rw-r--r--android/test/mockapi/mockapi-suppression.xml31
-rw-r--r--android/test/mockapi/src/main/AndroidManifest.xml7
7 files changed, 144 insertions, 1 deletions
diff --git a/android/buildSrc/src/main/kotlin/Dependencies.kt b/android/buildSrc/src/main/kotlin/Dependencies.kt
index 48a0ef6b41..9832268b5e 100644
--- a/android/buildSrc/src/main/kotlin/Dependencies.kt
+++ b/android/buildSrc/src/main/kotlin/Dependencies.kt
@@ -6,6 +6,7 @@ object Dependencies {
const val junit = "junit:junit:${Versions.junit}"
const val leakCanary = "com.squareup.leakcanary:leakcanary-android:${Versions.leakCanary}"
const val turbine = "app.cash.turbine:turbine:${Versions.turbine}"
+ const val mockkWebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockWebserver}"
object AndroidX {
const val appcompat = "androidx.appcompat:appcompat:${Versions.AndroidX.appcompat}"
diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt
index f895c0045c..e8bbceed96 100644
--- a/android/buildSrc/src/main/kotlin/Versions.kt
+++ b/android/buildSrc/src/main/kotlin/Versions.kt
@@ -9,6 +9,7 @@ object Versions {
const val kotlinx = "1.6.4"
const val leakCanary = "2.10"
const val mockk = "1.13.3"
+ const val mockWebserver = "4.10.0"
const val turbine = "0.12.1"
object Android {
diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml
index 8496d3b855..50f847f3d2 100644
--- a/android/gradle/verification-metadata.xml
+++ b/android/gradle/verification-metadata.xml
@@ -1782,6 +1782,22 @@
<sha256 value="2a7bca66d6ccf16855cb5a0aa7c95158f688925a263efe4c204b237254861fa1" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="com.squareup.okhttp3" name="mockwebserver" version="4.10.0">
+ <artifact name="mockwebserver-4.10.0.jar">
+ <sha256 value="af29da234e63159d6e0dea43bf8288eea97d71cdf1651a5ee2d6c0d0d4adbf8f" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="mockwebserver-4.10.0.module">
+ <sha256 value="75c72158aa5a0e052610d149b2746f6e290be8f338f835c69eb4589c4888bba5" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.squareup.okhttp3" name="okhttp" version="4.10.0">
+ <artifact name="okhttp-4.10.0.jar">
+ <sha256 value="7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="okhttp-4.10.0.module">
+ <sha256 value="6c3070820b591f5ec8c2948497b5a6b742f492b715bcacf4b75115b3a8ffab15" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="com.squareup.okhttp3" name="okhttp" version="4.9.3">
<artifact name="okhttp-4.9.3.jar">
<sha256 value="93ecd6cba19d87dccfe566ec848d91aae799e3cf16c00709358ea69bd9227219" origin="Generated by Gradle"/>
@@ -1808,6 +1824,22 @@
<sha256 value="17baab7270389a5fa63ab12811864d0a00f381611bc4eb042fa1bd5918ed0965" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="com.squareup.okio" name="okio" version="3.0.0">
+ <artifact name="okio-3.0.0.module">
+ <sha256 value="6f9e3a797831e75c5b562d946c075183f9b2be846791e9f88bde45491daed987" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="okio-metadata-3.0.0.jar">
+ <sha256 value="dcbe63ed43b2c90c325e9e6a0863e2e7605980bff5e728c6de1088be5574979e" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
+ <component group="com.squareup.okio" name="okio-jvm" version="3.0.0">
+ <artifact name="okio-jvm-3.0.0.jar">
+ <sha256 value="be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907" origin="Generated by Gradle"/>
+ </artifact>
+ <artifact name="okio-jvm-3.0.0.module">
+ <sha256 value="17f48d41775bd84dea78e9dfed8dfbcc66af80567a5c9ec9d9608785ec820cde" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="com.sun.activation" name="javax.activation" version="1.2.0">
<artifact name="javax.activation-1.2.0.jar">
<sha256 value="993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce" origin="Generated by Gradle"/>
@@ -2777,6 +2809,11 @@
<sha256 value="a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.10">
+ <artifact name="kotlin-stdlib-jdk7-1.6.10.jar">
+ <sha256 value="2aedcdc6b69b33bdf5cc235bcea88e7cf6601146bb6bcdffdb312bbacd7be261" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.21">
<artifact name="kotlin-stdlib-jdk7-1.6.21.jar">
<sha256 value="f1b0634dbb94172038463020bb2dd45ca26849f8ce29d625acb0f1569d11dbee" origin="Generated by Gradle"/>
@@ -2797,6 +2834,11 @@
<sha256 value="b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc" origin="Generated by Gradle"/>
</artifact>
</component>
+ <component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.10">
+ <artifact name="kotlin-stdlib-jdk8-1.6.10.jar">
+ <sha256 value="1456d82d039ea30d8485b032901f52bbf07e7cdbe8bb1f8708ad32a8574c41ce" origin="Generated by Gradle"/>
+ </artifact>
+ </component>
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.21">
<artifact name="kotlin-stdlib-jdk8-1.6.21.jar">
<sha256 value="dab45489b47736d59fce44b80676f1947a9b6bcab10fd60e878a83bd82a6954c" origin="Generated by Gradle"/>
diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts
index 755fa4bbb6..d847a97691 100644
--- a/android/settings.gradle.kts
+++ b/android/settings.gradle.kts
@@ -1,2 +1,2 @@
include(":app", ":lib:endpoint")
-include(":test", ":test:common", ":test:e2e")
+include(":test", ":test:common", ":test:e2e", ":test:mockapi")
diff --git a/android/test/mockapi/build.gradle.kts b/android/test/mockapi/build.gradle.kts
new file mode 100644
index 0000000000..84410e168f
--- /dev/null
+++ b/android/test/mockapi/build.gradle.kts
@@ -0,0 +1,61 @@
+plugins {
+ id(Dependencies.Plugin.androidTestId)
+ id(Dependencies.Plugin.kotlinAndroidId)
+}
+
+android {
+ namespace = "net.mullvad.mullvadvpn.test.mockapi"
+ compileSdk = Versions.Android.compileSdkVersion
+
+ defaultConfig {
+ minSdk = Versions.Android.minSdkVersion
+ targetSdk = Versions.Android.targetSdkVersion
+ testApplicationId = "net.mullvad.mullvadvpn.test.mockapi"
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ targetProjectPath = ":app"
+
+ testInstrumentationRunnerArguments.putAll(
+ mapOf(
+ "clearPackageData" to "true",
+ "useTestStorageService" to "true"
+ )
+ )
+ }
+
+ testOptions {
+ execution = "ANDROIDX_TEST_ORCHESTRATOR"
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = Versions.jvmTarget
+ }
+}
+
+configure<org.owasp.dependencycheck.gradle.extension.DependencyCheckExtension> {
+ // Skip the lintClassPath configuration, which relies on many dependencies that has been flagged
+ // to have CVEs, as it's related to the lint tooling rather than the project's compilation class
+ // path. The alternative would be to suppress specific CVEs, however that could potentially
+ // result in suppressed CVEs in project compilation class path.
+ skipConfigurations = listOf("lintClassPath")
+ suppressionFile = "$projectDir/mockapi-suppression.xml"
+}
+
+dependencies {
+ implementation(project(Projects.testCommon))
+
+ implementation(Dependencies.AndroidX.testCore)
+ // Fixes: https://github.com/android/android-test/issues/1589
+ implementation(Dependencies.AndroidX.testMonitor)
+ implementation(Dependencies.AndroidX.testRunner)
+ implementation(Dependencies.AndroidX.testRules)
+ implementation(Dependencies.AndroidX.testUiAutomator)
+ implementation(Dependencies.Kotlin.stdlib)
+ implementation(Dependencies.mockkWebserver)
+
+ androidTestUtil(Dependencies.AndroidX.testOrchestrator)
+}
diff --git a/android/test/mockapi/mockapi-suppression.xml b/android/test/mockapi/mockapi-suppression.xml
new file mode 100644
index 0000000000..86e10bebb2
--- /dev/null
+++ b/android/test/mockapi/mockapi-suppression.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
+ <suppress>
+ <notes><![CDATA[
+ This CVE only affect Multiplatform Gradle Projects, which this project is not.
+ ]]></notes>
+ <cve>CVE-2022-24329</cve>
+ </suppress>
+ <suppress>
+ <notes><![CDATA[
+ This CVE is a false positive as the description refers to a GO library (github.com/containers/storage).
+ ]]></notes>
+ <packageUrl regex="true">^pkg:maven/androidx\.test\.services/storage@.*$</packageUrl>
+ <cve>CVE-2021-20291</cve>
+ </suppress>
+ <suppress>
+ <notes><![CDATA[
+ This CVE is a false positive as javalite isn't affected according to:
+ https://cloud.google.com/support/bulletins#gcp-2022-001
+ ]]></notes>
+ <packageUrl regex="true">^pkg:maven/com\.google\.protobuf/protobuf\-javalite@.*$</packageUrl>
+ <cve>CVE-2021-22569</cve>
+ </suppress>
+ <suppress>
+ <notes><![CDATA[
+ This CVE is tracked externally and is therefore suppressed in the automatic audit checks.
+ ]]></notes>
+ <packageUrl regex="true">^pkg:maven/com\.google\.protobuf/protobuf\-javalite@.*$</packageUrl>
+ <cve>CVE-2022-3171</cve>
+ </suppress>
+</suppressions>
diff --git a/android/test/mockapi/src/main/AndroidManifest.xml b/android/test/mockapi/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..931f79d291
--- /dev/null
+++ b/android/test/mockapi/src/main/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <uses-permission android:name="android.permission.INTERNET" />
+ <instrumentation
+ android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="net.mullvad.mullvadvpn" />
+</manifest>