appium-espresso-driver 7.2.1 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/espresso-server/app/build.gradle.kts +27 -21
- package/espresso-server/build.gradle.kts +4 -21
- package/espresso-server/buildSrc/build.gradle.kts +13 -0
- package/espresso-server/buildSrc/src/main/kotlin/io/appium/espressoserver/gradle/CapabilityVersion.kt +12 -0
- package/espresso-server/buildSrc/src/main/kotlin/io/appium/espressoserver/jvmtarget/AppiumJvmTarget.kt +54 -0
- package/espresso-server/gradle/libs.versions.toml +16 -0
- package/espresso-server/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/espresso-server/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/espresso-server/gradle.properties +2 -13
- package/espresso-server/gradlew +3 -6
- package/espresso-server/gradlew.bat +1 -2
- package/espresso-server/library/build.gradle.kts +51 -35
- package/espresso-server/library/src/main/java/io/appium/espressoserver/lib/helpers/Version.kt +1 -1
- package/espresso-server/library/src/test/java/io/appium/espressoserver/test/model/web/WebAtomTest.kt +2 -2
- package/espresso-server/library/src/test/java/io/appium/espressoserver/test/model/web/WebAtomsTest.kt +3 -3
- package/espresso-server/settings.gradle.kts +30 -0
- package/npm-shrinkwrap.json +17 -17
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## [8.1.0](https://github.com/appium/appium-espresso-driver/compare/v8.0.0...v8.1.0) (2026-04-18)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* add version catalog for Dependabot ([#1152](https://github.com/appium/appium-espresso-driver/issues/1152)) ([16ce10e](https://github.com/appium/appium-espresso-driver/commit/16ce10ea5e32ece75d5e7e55307d2fe2ccc20bc7))
|
|
6
|
+
|
|
7
|
+
## [8.0.0](https://github.com/appium/appium-espresso-driver/compare/v7.2.1...v8.0.0) (2026-04-18)
|
|
8
|
+
|
|
9
|
+
### ⚠ BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* The default kotlin version is set to 2.3.20
|
|
12
|
+
* The required build tools version is set to 36.0.0
|
|
13
|
+
* Dropped AGP 8.x
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Bump Gradle version ([#1151](https://github.com/appium/appium-espresso-driver/issues/1151)) ([1ae46bd](https://github.com/appium/appium-espresso-driver/commit/1ae46bd5025674e74bbf298c2d70a70b91e4eb60))
|
|
18
|
+
|
|
1
19
|
## [7.2.1](https://github.com/appium/appium-espresso-driver/compare/v7.2.0...v7.2.1) (2026-04-17)
|
|
2
20
|
|
|
3
21
|
### Miscellaneous Chores
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
plugins {
|
|
2
|
-
|
|
3
|
-
kotlin("android")
|
|
2
|
+
alias(libs.plugins.android.application)
|
|
4
3
|
}
|
|
5
4
|
|
|
5
|
+
import io.appium.espressoserver.gradle.resolveCapabilityVersion
|
|
6
|
+
import io.appium.espressoserver.jvmtarget.AppiumJvmTarget
|
|
7
|
+
import org.gradle.api.GradleException
|
|
8
|
+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
9
|
+
|
|
6
10
|
val appiumCompileSdk: String by project
|
|
7
11
|
val appiumMinSdk: String by project
|
|
8
12
|
val appiumTargetSdk: String by project
|
|
@@ -11,17 +15,10 @@ val appiumTargetPackage: String by project
|
|
|
11
15
|
val appiumSourceCompatibility: String by project
|
|
12
16
|
val appiumTargetCompatibility: String by project
|
|
13
17
|
val appiumJvmTarget: String by project
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
val
|
|
17
|
-
val
|
|
18
|
-
val appiumGsonVersion: String by project
|
|
19
|
-
val appiumEspressoVersion: String by project
|
|
20
|
-
val appiumMockitoVersion: String by project
|
|
21
|
-
val appiumNanohttpdVersion: String by project
|
|
22
|
-
val appiumRobolectricVersion: String by project
|
|
23
|
-
val appiumJUnitVersion: String by project
|
|
24
|
-
val appiumUiAutomatorVersion: String by project
|
|
18
|
+
|
|
19
|
+
// Align androidTest dependency versions with :library when Espresso driver passes -PappiumJUnitVersion / -PappiumAndroidxTestVersion.
|
|
20
|
+
val junitVersion = resolveCapabilityVersion("appiumJUnitVersion", libs.versions.junit.get())
|
|
21
|
+
val androidxTestVersion = resolveCapabilityVersion("appiumAndroidxTestVersion", libs.versions.androidxTest.get())
|
|
25
22
|
|
|
26
23
|
android {
|
|
27
24
|
compileSdk = appiumCompileSdk.toInt()
|
|
@@ -45,7 +42,7 @@ android {
|
|
|
45
42
|
buildTypes {
|
|
46
43
|
getByName("release") {
|
|
47
44
|
isMinifyEnabled = false
|
|
48
|
-
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
|
|
45
|
+
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
49
46
|
}
|
|
50
47
|
}
|
|
51
48
|
|
|
@@ -74,20 +71,29 @@ android {
|
|
|
74
71
|
targetCompatibility = JavaVersion.valueOf(appiumTargetCompatibility.uppercase())
|
|
75
72
|
}
|
|
76
73
|
|
|
77
|
-
kotlinOptions {
|
|
78
|
-
jvmTarget = appiumJvmTarget
|
|
79
|
-
}
|
|
80
|
-
|
|
81
74
|
packaging {
|
|
82
75
|
resources.excludes.add("META-INF/**")
|
|
83
76
|
}
|
|
84
77
|
}
|
|
85
78
|
|
|
79
|
+
kotlin {
|
|
80
|
+
compilerOptions {
|
|
81
|
+
val normalized = AppiumJvmTarget.resolveNormalized(appiumJvmTarget)
|
|
82
|
+
jvmTarget.set(
|
|
83
|
+
JvmTarget.entries.firstOrNull { it.target == normalized }
|
|
84
|
+
?: throw GradleException(
|
|
85
|
+
"Unsupported appiumJvmTarget \"$appiumJvmTarget\" (normalized \"$normalized\"). " +
|
|
86
|
+
"Use one of: ${JvmTarget.entries.joinToString { it.target }}",
|
|
87
|
+
),
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
86
92
|
dependencies {
|
|
87
93
|
androidTestImplementation(project(":library"))
|
|
88
|
-
androidTestImplementation("junit:junit:$
|
|
89
|
-
androidTestImplementation("androidx.test:core:$
|
|
90
|
-
androidTestImplementation("androidx.test:runner:$
|
|
94
|
+
androidTestImplementation("junit:junit:$junitVersion")
|
|
95
|
+
androidTestImplementation("androidx.test:core:$androidxTestVersion")
|
|
96
|
+
androidTestImplementation("androidx.test:runner:$androidxTestVersion")
|
|
91
97
|
|
|
92
98
|
// additionalAndroidTestDependencies placeholder (don't change or delete this line)
|
|
93
99
|
}
|
|
@@ -1,31 +1,14 @@
|
|
|
1
1
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
repositories {
|
|
8
|
-
google()
|
|
9
|
-
mavenCentral()
|
|
10
|
-
}
|
|
11
|
-
dependencies {
|
|
12
|
-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$appiumKotlin")
|
|
13
|
-
classpath("com.android.tools.build:gradle:$appiumAndroidGradlePlugin")
|
|
14
|
-
|
|
15
|
-
// NOTE: Do not place your application dependencies here; they belong
|
|
16
|
-
// in the individual module build.gradle.kts files
|
|
17
|
-
}
|
|
3
|
+
plugins {
|
|
4
|
+
alias(libs.plugins.android.application) apply false
|
|
5
|
+
alias(libs.plugins.android.library) apply false
|
|
18
6
|
}
|
|
19
7
|
|
|
20
8
|
allprojects {
|
|
21
|
-
repositories {
|
|
22
|
-
google()
|
|
23
|
-
mavenCentral()
|
|
24
|
-
}
|
|
25
|
-
|
|
26
9
|
group = "io.appium.espressoserver"
|
|
27
10
|
}
|
|
28
11
|
|
|
29
12
|
tasks.register("clean", Delete::class) {
|
|
30
|
-
delete(rootProject.
|
|
13
|
+
delete(rootProject.layout.buildDirectory)
|
|
31
14
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package io.appium.espressoserver.gradle
|
|
2
|
+
|
|
3
|
+
import org.gradle.api.Project
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a dependency version from an optional Gradle property (e.g. `-PappiumKotlin=…` from the
|
|
7
|
+
* Espresso driver's `toolsVersions` / `espressoBuildConfig`) with fallback to the version catalog default.
|
|
8
|
+
*/
|
|
9
|
+
fun Project.resolveCapabilityVersion(propertyName: String, catalogDefaultVersion: String): String {
|
|
10
|
+
val fromCapability = findProperty(propertyName)?.toString()?.trim()
|
|
11
|
+
return if (!fromCapability.isNullOrEmpty()) fromCapability else catalogDefaultVersion
|
|
12
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
package io.appium.espressoserver.jvmtarget
|
|
2
|
+
|
|
3
|
+
import org.gradle.api.GradleException
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Normalizes and validates `appiumJvmTarget` / `-PappiumJvmTarget=…` from Gradle properties.
|
|
7
|
+
*
|
|
8
|
+
* Normalizes values (e.g. `1_8`, `8`, `VERSION_1_8`). Default `1.8` is the project baseline for emitted JVM
|
|
9
|
+
* bytecode (Java 8 language level). Call sites map the returned string to [org.jetbrains.kotlin.gradle.dsl.JvmTarget].
|
|
10
|
+
*/
|
|
11
|
+
object AppiumJvmTarget {
|
|
12
|
+
|
|
13
|
+
private fun normalizeAppiumJvmTarget(raw: String): String {
|
|
14
|
+
val trimmed = raw.trim()
|
|
15
|
+
if (trimmed.isEmpty()) {
|
|
16
|
+
return "1.8"
|
|
17
|
+
}
|
|
18
|
+
val withoutVersionPrefix = Regex("^VERSION_", RegexOption.IGNORE_CASE).replace(trimmed, "")
|
|
19
|
+
val dotted = withoutVersionPrefix.replace('_', '.')
|
|
20
|
+
return when (dotted) {
|
|
21
|
+
"8" -> "1.8"
|
|
22
|
+
else -> dotted
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Java bytecode level as a single integer (8 for 1.8, 11, 17, …). */
|
|
27
|
+
private fun jvmBytecodeLevel(normalizedTarget: String): Int =
|
|
28
|
+
when {
|
|
29
|
+
normalizedTarget == "1.8" -> 8
|
|
30
|
+
normalizedTarget.startsWith("1.") ->
|
|
31
|
+
throw GradleException(
|
|
32
|
+
"Unsupported JVM target \"$normalizedTarget\". Use 1.8 (Java 8) for legacy 1.x bytecode.",
|
|
33
|
+
)
|
|
34
|
+
else ->
|
|
35
|
+
normalizedTarget.toIntOrNull()
|
|
36
|
+
?: throw GradleException(
|
|
37
|
+
"Invalid appiumJvmTarget \"$normalizedTarget\" (expected e.g. 1.8, 11, or 17).",
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Returns the normalized JVM target string (e.g. `1.8`, `17`) for Kotlin [org.jetbrains.kotlin.gradle.dsl.JvmTarget].
|
|
43
|
+
*/
|
|
44
|
+
fun resolveNormalized(appiumJvmTargetProperty: String): String {
|
|
45
|
+
val normalized = normalizeAppiumJvmTarget(appiumJvmTargetProperty)
|
|
46
|
+
val level = jvmBytecodeLevel(normalized)
|
|
47
|
+
if (level < 8) {
|
|
48
|
+
throw GradleException(
|
|
49
|
+
"Minimum supported appiumJvmTarget is 1.8 / Java 8 (bytecode level was $level from \"$appiumJvmTargetProperty\").",
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
return normalized
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[versions]
|
|
2
|
+
androidGradlePlugin = "9.1.1"
|
|
3
|
+
kotlin = "2.3.20"
|
|
4
|
+
androidxTest = "1.5.0"
|
|
5
|
+
annotation = "1.6.0"
|
|
6
|
+
composeUiTest = "1.1.1"
|
|
7
|
+
gson = "2.10.1"
|
|
8
|
+
espresso = "3.5.1"
|
|
9
|
+
nanohttpd = "2.3.1"
|
|
10
|
+
robolectric = "4.9.2"
|
|
11
|
+
junit = "4.13.2"
|
|
12
|
+
uiautomator = "2.2.0"
|
|
13
|
+
|
|
14
|
+
[plugins]
|
|
15
|
+
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
|
|
16
|
+
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
distributionBase=GRADLE_USER_HOME
|
|
2
2
|
distributionPath=wrapper/dists
|
|
3
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-
|
|
3
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
|
|
4
4
|
networkTimeout=10000
|
|
5
5
|
validateDistributionUrl=true
|
|
6
6
|
zipStoreBase=GRADLE_USER_HOME
|
|
@@ -28,21 +28,10 @@ kotlin.stdlib.default.dependency=false
|
|
|
28
28
|
appiumCompileSdk=34
|
|
29
29
|
appiumMinSdk=26
|
|
30
30
|
appiumTargetSdk=34
|
|
31
|
-
appiumBuildTools=
|
|
31
|
+
appiumBuildTools=36.0.0
|
|
32
32
|
appiumTargetPackage=io.appium.espressoserver
|
|
33
33
|
appiumSourceCompatibility=VERSION_1_8
|
|
34
34
|
appiumTargetCompatibility=VERSION_1_8
|
|
35
35
|
appiumJvmTarget=1.8
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
appiumKotlin=1.8.10
|
|
39
|
-
appiumAndroidxTestVersion=1.5.0
|
|
40
|
-
appiumAnnotationVersion=1.6.0
|
|
41
|
-
appiumComposeVersion=1.1.1
|
|
42
|
-
appiumGsonVersion=2.10.1
|
|
43
|
-
appiumEspressoVersion=3.5.1
|
|
44
|
-
appiumMockitoVersion=5.1.1
|
|
45
|
-
appiumNanohttpdVersion=2.3.1
|
|
46
|
-
appiumRobolectricVersion=4.9.2
|
|
47
|
-
appiumJUnitVersion=4.13.2
|
|
48
|
-
appiumUiAutomatorVersion=2.2.0
|
|
37
|
+
# Dependency and plugin versions for Dependabot live in gradle/libs.versions.toml
|
package/espresso-server/gradlew
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
|
|
3
3
|
#
|
|
4
|
-
# Copyright © 2015
|
|
4
|
+
# Copyright © 2015 the original authors.
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
# you may not use this file except in compliance with the License.
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
# Darwin, MinGW, and NonStop.
|
|
58
58
|
#
|
|
59
59
|
# (3) This script is generated from the Groovy template
|
|
60
|
-
# https://github.com/gradle/gradle/blob/
|
|
60
|
+
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
|
61
61
|
# within the Gradle project.
|
|
62
62
|
#
|
|
63
63
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
|
@@ -114,7 +114,6 @@ case "$( uname )" in #(
|
|
|
114
114
|
NONSTOP* ) nonstop=true ;;
|
|
115
115
|
esac
|
|
116
116
|
|
|
117
|
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
|
118
117
|
|
|
119
118
|
|
|
120
119
|
# Determine the Java command to use to start the JVM.
|
|
@@ -172,7 +171,6 @@ fi
|
|
|
172
171
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
173
172
|
if "$cygwin" || "$msys" ; then
|
|
174
173
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
|
175
|
-
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
|
176
174
|
|
|
177
175
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
|
178
176
|
|
|
@@ -212,8 +210,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|
|
212
210
|
|
|
213
211
|
set -- \
|
|
214
212
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
|
215
|
-
-
|
|
216
|
-
org.gradle.wrapper.GradleWrapperMain \
|
|
213
|
+
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
|
217
214
|
"$@"
|
|
218
215
|
|
|
219
216
|
# Stop when "xargs" is not available.
|
|
@@ -70,11 +70,10 @@ goto fail
|
|
|
70
70
|
:execute
|
|
71
71
|
@rem Setup the command line
|
|
72
72
|
|
|
73
|
-
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
|
74
73
|
|
|
75
74
|
|
|
76
75
|
@rem Execute Gradle
|
|
77
|
-
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -
|
|
76
|
+
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
|
78
77
|
|
|
79
78
|
:end
|
|
80
79
|
@rem End local scope for the variables with windows NT shell
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
plugins {
|
|
2
|
-
|
|
3
|
-
kotlin("android")
|
|
2
|
+
alias(libs.plugins.android.library)
|
|
4
3
|
`maven-publish`
|
|
5
4
|
}
|
|
6
5
|
|
|
6
|
+
import io.appium.espressoserver.gradle.resolveCapabilityVersion
|
|
7
|
+
import io.appium.espressoserver.jvmtarget.AppiumJvmTarget
|
|
8
|
+
import org.gradle.api.GradleException
|
|
9
|
+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
10
|
+
|
|
7
11
|
val appiumCompileSdk: String by project
|
|
8
12
|
val appiumMinSdk: String by project
|
|
9
13
|
val appiumTargetSdk: String by project
|
|
@@ -11,16 +15,19 @@ val appiumBuildTools: String by project
|
|
|
11
15
|
val appiumSourceCompatibility: String by project
|
|
12
16
|
val appiumTargetCompatibility: String by project
|
|
13
17
|
val appiumJvmTarget: String by project
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
val
|
|
17
|
-
val
|
|
18
|
-
val
|
|
19
|
-
|
|
20
|
-
val
|
|
21
|
-
val
|
|
22
|
-
val
|
|
23
|
-
val
|
|
18
|
+
|
|
19
|
+
// Versions: defaults from gradle/libs.versions.toml; -Pappium* overrides from Espresso driver (toolsVersions / capabilities).
|
|
20
|
+
val kotlinVersion = resolveCapabilityVersion("appiumKotlin", libs.versions.kotlin.get())
|
|
21
|
+
val annotationVersion = resolveCapabilityVersion("appiumAnnotationVersion", libs.versions.annotation.get())
|
|
22
|
+
val composeUiTestVersion =
|
|
23
|
+
resolveCapabilityVersion("appiumComposeVersion", libs.versions.composeUiTest.get())
|
|
24
|
+
val gsonVersion = resolveCapabilityVersion("appiumGsonVersion", libs.versions.gson.get())
|
|
25
|
+
val espressoVersion = resolveCapabilityVersion("appiumEspressoVersion", libs.versions.espresso.get())
|
|
26
|
+
val nanohttpdVersion = resolveCapabilityVersion("appiumNanohttpdVersion", libs.versions.nanohttpd.get())
|
|
27
|
+
val androidxTestVersion = resolveCapabilityVersion("appiumAndroidxTestVersion", libs.versions.androidxTest.get())
|
|
28
|
+
val robolectricVersion = resolveCapabilityVersion("appiumRobolectricVersion", libs.versions.robolectric.get())
|
|
29
|
+
val junitVersion = resolveCapabilityVersion("appiumJUnitVersion", libs.versions.junit.get())
|
|
30
|
+
val uiautomatorVersion = resolveCapabilityVersion("appiumUiAutomatorVersion", libs.versions.uiautomator.get())
|
|
24
31
|
|
|
25
32
|
android {
|
|
26
33
|
compileSdk = appiumCompileSdk.toInt()
|
|
@@ -40,10 +47,6 @@ android {
|
|
|
40
47
|
resources.excludes.add("META-INF/**")
|
|
41
48
|
}
|
|
42
49
|
|
|
43
|
-
kotlinOptions {
|
|
44
|
-
jvmTarget = appiumJvmTarget
|
|
45
|
-
}
|
|
46
|
-
|
|
47
50
|
lint {
|
|
48
51
|
targetSdk = appiumTargetSdk.toInt()
|
|
49
52
|
}
|
|
@@ -60,6 +63,19 @@ android {
|
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
|
|
66
|
+
kotlin {
|
|
67
|
+
compilerOptions {
|
|
68
|
+
val normalized = AppiumJvmTarget.resolveNormalized(appiumJvmTarget)
|
|
69
|
+
jvmTarget.set(
|
|
70
|
+
JvmTarget.entries.firstOrNull { it.target == normalized }
|
|
71
|
+
?: throw GradleException(
|
|
72
|
+
"Unsupported appiumJvmTarget \"$appiumJvmTarget\" (normalized \"$normalized\"). " +
|
|
73
|
+
"Use one of: ${JvmTarget.entries.joinToString { it.target }}",
|
|
74
|
+
),
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
63
79
|
publishing {
|
|
64
80
|
publications {
|
|
65
81
|
register<MavenPublication>("release") {
|
|
@@ -73,39 +89,39 @@ publishing {
|
|
|
73
89
|
dependencies {
|
|
74
90
|
// additionalAppDependencies placeholder (don't change or delete this line)
|
|
75
91
|
|
|
76
|
-
api("androidx.annotation:annotation:$
|
|
77
|
-
api("androidx.test.espresso:espresso-contrib:$
|
|
92
|
+
api("androidx.annotation:annotation:$annotationVersion")
|
|
93
|
+
api("androidx.test.espresso:espresso-contrib:$espressoVersion") {
|
|
78
94
|
// Exclude transitive dependencies to limit conflicts with AndroidX libraries from AUT.
|
|
79
95
|
// Link to PR with fix and discussion https://github.com/appium/appium-espresso-driver/pull/596
|
|
80
96
|
isTransitive = false
|
|
81
97
|
}
|
|
82
|
-
api("androidx.test.espresso:espresso-web:$
|
|
98
|
+
api("androidx.test.espresso:espresso-web:$espressoVersion") {
|
|
83
99
|
because("Espresso Web Atoms support (mobile: webAtoms)")
|
|
84
100
|
}
|
|
85
|
-
api("androidx.test.uiautomator:uiautomator:$
|
|
101
|
+
api("androidx.test.uiautomator:uiautomator:$uiautomatorVersion") {
|
|
86
102
|
because("UiAutomator support (mobile: uiautomator)")
|
|
87
103
|
}
|
|
88
|
-
api("androidx.test:core:$
|
|
89
|
-
api("androidx.test:runner:$
|
|
90
|
-
api("androidx.test:rules:$
|
|
91
|
-
api("com.google.code.gson:gson:$
|
|
92
|
-
api("org.nanohttpd:nanohttpd-webserver:$
|
|
93
|
-
api("org.jetbrains.kotlin:kotlin-stdlib:$
|
|
94
|
-
api("org.jetbrains.kotlin:kotlin-reflect:$
|
|
95
|
-
api("androidx.compose.ui:ui-test:$
|
|
104
|
+
api("androidx.test:core:$androidxTestVersion")
|
|
105
|
+
api("androidx.test:runner:$androidxTestVersion")
|
|
106
|
+
api("androidx.test:rules:$androidxTestVersion")
|
|
107
|
+
api("com.google.code.gson:gson:$gsonVersion")
|
|
108
|
+
api("org.nanohttpd:nanohttpd-webserver:$nanohttpdVersion")
|
|
109
|
+
api("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
|
|
110
|
+
api("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
|
|
111
|
+
api("androidx.compose.ui:ui-test:$composeUiTestVersion") {
|
|
96
112
|
because("Android Compose support")
|
|
97
113
|
}
|
|
98
|
-
api("androidx.compose.ui:ui-test-junit4:$
|
|
114
|
+
api("androidx.compose.ui:ui-test-junit4:$composeUiTestVersion") {
|
|
99
115
|
because("Android Compose support")
|
|
100
116
|
}
|
|
101
117
|
|
|
102
|
-
testImplementation("androidx.test.espresso:espresso-contrib:$
|
|
103
|
-
testImplementation("junit:junit:$
|
|
104
|
-
testImplementation("org.robolectric:robolectric:$
|
|
105
|
-
testImplementation("org.jetbrains.kotlin:kotlin-test:$
|
|
106
|
-
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$
|
|
118
|
+
testImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion")
|
|
119
|
+
testImplementation("junit:junit:$junitVersion")
|
|
120
|
+
testImplementation("org.robolectric:robolectric:$robolectricVersion")
|
|
121
|
+
testImplementation("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
|
|
122
|
+
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion")
|
|
107
123
|
|
|
108
124
|
constraints {
|
|
109
|
-
api("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$
|
|
125
|
+
api("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
|
|
110
126
|
}
|
|
111
127
|
}
|
package/espresso-server/library/src/main/java/io/appium/espressoserver/lib/helpers/Version.kt
CHANGED
|
@@ -2,6 +2,6 @@ package io.appium.espressoserver.lib.helpers
|
|
|
2
2
|
|
|
3
3
|
// This value is updated automatically by the NPM versioning script
|
|
4
4
|
// It should be in sync with the NPM module version from package.json
|
|
5
|
-
private const val VERSION = "
|
|
5
|
+
private const val VERSION = "8.1.0"
|
|
6
6
|
|
|
7
7
|
fun getEspressoServerVersion() = VERSION
|
package/espresso-server/library/src/test/java/io/appium/espressoserver/test/model/web/WebAtomTest.kt
CHANGED
|
@@ -49,7 +49,7 @@ class WebAtomTest {
|
|
|
49
49
|
jsonObject.add("args", argsArr)
|
|
50
50
|
val webAtom = WebAtomDeserializer().deserialize(jsonObject, null, null)
|
|
51
51
|
assertEquals(webAtom.name, "someFakeAtom")
|
|
52
|
-
assertTrue(webAtom.args contentEquals arrayOf("hello", true, 100, 1.1))
|
|
52
|
+
assertTrue(webAtom.args contentEquals arrayOf<Any>("hello", true, 100, 1.1))
|
|
53
53
|
assertEquals(webAtom.args.size, 4)
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -63,6 +63,6 @@ class WebAtomTest {
|
|
|
63
63
|
jsonObject.add("locator", locatorObject)
|
|
64
64
|
val webAtom = WebAtomDeserializer().deserialize(jsonObject, null, null)
|
|
65
65
|
assertEquals(webAtom.name, "findElement")
|
|
66
|
-
assertTrue(webAtom.args contentEquals arrayOf(Locator.ID, "some_html_id"))
|
|
66
|
+
assertTrue(webAtom.args contentEquals arrayOf<Any>(Locator.ID, "some_html_id"))
|
|
67
67
|
}
|
|
68
68
|
}
|
|
@@ -24,7 +24,7 @@ class WebAtomsTest {
|
|
|
24
24
|
}""".trimIndent(), WebAtomsMethod::class.java)
|
|
25
25
|
assertEquals(webAtomsMethod.name, "withElement")
|
|
26
26
|
assertEquals(webAtomsMethod.atom.name, "findElement")
|
|
27
|
-
assertTrue(webAtomsMethod.atom.args contentEquals
|
|
27
|
+
assertTrue(webAtomsMethod.atom.args contentEquals arrayOf<Any>(Locator.ID, "text_input"))
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
@Test
|
|
@@ -77,7 +77,7 @@ class WebAtomsTest {
|
|
|
77
77
|
webAtoms.methodChain[0].let {
|
|
78
78
|
assertEquals(it.name, "withElement")
|
|
79
79
|
assertEquals(it.atom.name, "findElement")
|
|
80
|
-
assertTrue(it.atom.args contentEquals arrayOf(Locator.ID, "text_input"))
|
|
80
|
+
assertTrue(it.atom.args contentEquals arrayOf<Any>(Locator.ID, "text_input"))
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
webAtoms.methodChain[1].let {
|
|
@@ -89,7 +89,7 @@ class WebAtomsTest {
|
|
|
89
89
|
webAtoms.methodChain[2].let {
|
|
90
90
|
assertEquals(it.name, "perform")
|
|
91
91
|
assertEquals(it.atom.name, "webKeys")
|
|
92
|
-
assertTrue(it.atom.args contentEquals
|
|
92
|
+
assertTrue(it.atom.args contentEquals arrayOf<Any>("Foo"))
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
}
|
|
@@ -1,2 +1,32 @@
|
|
|
1
|
+
pluginManagement {
|
|
2
|
+
repositories {
|
|
3
|
+
google()
|
|
4
|
+
mavenCentral()
|
|
5
|
+
gradlePluginPortal()
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// When Espresso driver passes -PappiumAndroidGradlePlugin, override the AGP version from the
|
|
9
|
+
// version catalog. Otherwise keep Gradle's catalog-resolved requested version (no regex/TOML parse).
|
|
10
|
+
resolutionStrategy {
|
|
11
|
+
eachPlugin {
|
|
12
|
+
if (requested.id.id == "com.android.application" || requested.id.id == "com.android.library") {
|
|
13
|
+
val fromCapability =
|
|
14
|
+
providers.gradleProperty("appiumAndroidGradlePlugin").orNull?.trim()?.takeIf { it.isNotEmpty() }
|
|
15
|
+
if (fromCapability != null) {
|
|
16
|
+
useVersion(fromCapability)
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
dependencyResolutionManagement {
|
|
24
|
+
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
|
|
25
|
+
repositories {
|
|
26
|
+
google()
|
|
27
|
+
mavenCentral()
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
1
31
|
include(":app")
|
|
2
32
|
include(":library")
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-espresso-driver",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "appium-espresso-driver",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "8.1.0",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"appium-adb": "^14.0.0",
|
|
@@ -421,9 +421,9 @@
|
|
|
421
421
|
"license": "MIT"
|
|
422
422
|
},
|
|
423
423
|
"node_modules/@xmldom/xmldom": {
|
|
424
|
-
"version": "0.9.
|
|
425
|
-
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.
|
|
426
|
-
"integrity": "sha512-
|
|
424
|
+
"version": "0.9.10",
|
|
425
|
+
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz",
|
|
426
|
+
"integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==",
|
|
427
427
|
"license": "MIT",
|
|
428
428
|
"engines": {
|
|
429
429
|
"node": ">=14.6"
|
|
@@ -812,9 +812,9 @@
|
|
|
812
812
|
}
|
|
813
813
|
},
|
|
814
814
|
"node_modules/bare-url": {
|
|
815
|
-
"version": "2.4.
|
|
816
|
-
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.
|
|
817
|
-
"integrity": "sha512-
|
|
815
|
+
"version": "2.4.1",
|
|
816
|
+
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.1.tgz",
|
|
817
|
+
"integrity": "sha512-fZapLWNB25gS+etK27NV9KgBNXgo2yeYHuj+OyPblQd6GYAE3JVy6aKxszMV5jhGGFwraXQKA5fldvf3lMyEqw==",
|
|
818
818
|
"license": "Apache-2.0",
|
|
819
819
|
"dependencies": {
|
|
820
820
|
"bare-path": "^3.0.0"
|
|
@@ -1872,9 +1872,9 @@
|
|
|
1872
1872
|
}
|
|
1873
1873
|
},
|
|
1874
1874
|
"node_modules/hasown": {
|
|
1875
|
-
"version": "2.0.
|
|
1876
|
-
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.
|
|
1877
|
-
"integrity": "sha512-
|
|
1875
|
+
"version": "2.0.3",
|
|
1876
|
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
|
|
1877
|
+
"integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
|
|
1878
1878
|
"license": "MIT",
|
|
1879
1879
|
"dependencies": {
|
|
1880
1880
|
"function-bind": "^1.1.2"
|
|
@@ -2031,9 +2031,9 @@
|
|
|
2031
2031
|
}
|
|
2032
2032
|
},
|
|
2033
2033
|
"node_modules/io.appium.settings": {
|
|
2034
|
-
"version": "7.0.
|
|
2035
|
-
"resolved": "https://registry.npmjs.org/io.appium.settings/-/io.appium.settings-7.0.
|
|
2036
|
-
"integrity": "sha512
|
|
2034
|
+
"version": "7.0.23",
|
|
2035
|
+
"resolved": "https://registry.npmjs.org/io.appium.settings/-/io.appium.settings-7.0.23.tgz",
|
|
2036
|
+
"integrity": "sha512-/Tx216t06td2/mPY3+RjO///5qF0NUqStZm2BW6/3mUCwxHdRw+e9+S/QwOsGKNDAvEIyQ6VR+JCdxy1DHCscA==",
|
|
2037
2037
|
"license": "Apache-2.0",
|
|
2038
2038
|
"dependencies": {
|
|
2039
2039
|
"@appium/logger": "^2.0.0-rc.1",
|
|
@@ -2704,9 +2704,9 @@
|
|
|
2704
2704
|
}
|
|
2705
2705
|
},
|
|
2706
2706
|
"node_modules/plist/node_modules/@xmldom/xmldom": {
|
|
2707
|
-
"version": "0.8.
|
|
2708
|
-
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.
|
|
2709
|
-
"integrity": "sha512-
|
|
2707
|
+
"version": "0.8.13",
|
|
2708
|
+
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz",
|
|
2709
|
+
"integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==",
|
|
2710
2710
|
"license": "MIT",
|
|
2711
2711
|
"engines": {
|
|
2712
2712
|
"node": ">=10.0.0"
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"automated testing",
|
|
8
8
|
"android"
|
|
9
9
|
],
|
|
10
|
-
"version": "
|
|
10
|
+
"version": "8.1.0",
|
|
11
11
|
"author": "Appium Contributors",
|
|
12
12
|
"license": "Apache-2.0",
|
|
13
13
|
"repository": {
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"espresso-server/gradlew.bat",
|
|
65
65
|
"espresso-server/gradle.properties",
|
|
66
66
|
"espresso-server/build.gradle.kts",
|
|
67
|
+
"espresso-server/buildSrc",
|
|
67
68
|
"espresso-server/settings.gradle.kts",
|
|
68
69
|
"espresso-server/lint.xml",
|
|
69
70
|
"!.DS_Store",
|