From 89e481ea48ba1fd214cbec0b9a4648d14a0acf98 Mon Sep 17 00:00:00 2001 From: Darran Kelinske Date: Sat, 13 Feb 2021 23:12:03 -0600 Subject: [PATCH 001/109] Bump kotlin and gradle plugin versions --- unit/BasicSample-kotlinApp/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unit/BasicSample-kotlinApp/build.gradle b/unit/BasicSample-kotlinApp/build.gradle index 406866666..24f00833b 100644 --- a/unit/BasicSample-kotlinApp/build.gradle +++ b/unit/BasicSample-kotlinApp/build.gradle @@ -1,13 +1,13 @@ buildscript { ext { - kotlinVersion = "1.2.10" + kotlinVersion = '1.3.61' } repositories { jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.5.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } From 744b07d3554e71b1112924cac84a5ed4a344ea31 Mon Sep 17 00:00:00 2001 From: dazza5000 Date: Fri, 19 Feb 2021 20:24:49 -0600 Subject: [PATCH 002/109] Update grammar of documentation --- .../CalculatorAddParameterizedTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java index 33cd8c560..dc0c664f7 100644 --- a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java +++ b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorAddParameterizedTest.java @@ -35,7 +35,7 @@ /** * JUnit4 tests for the calculator's add logic. * - *

This test uses a Junit4s Parameterized tests features which uses annotations to pass + *

This test uses Junit4s Parameterized tests features which uses annotations to pass * parameters into a unit test. The way this works is that you have to use the {@link Parameterized} * runner to run your tests. *

@@ -91,4 +91,4 @@ public void testAdd_TwoNumbers() { assertThat(resultAdd, is(equalTo(mExpectedResult))); } -} \ No newline at end of file +} From dd263e5d228672858c5a6d82560300ba0da043ac Mon Sep 17 00:00:00 2001 From: dazza5000 Date: Fri, 19 Feb 2021 20:35:01 -0600 Subject: [PATCH 003/109] Fix spelling --- runner/AndroidTestOrchestratorSample/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/AndroidTestOrchestratorSample/README.md b/runner/AndroidTestOrchestratorSample/README.md index a9e671d19..8b6a57d29 100644 --- a/runner/AndroidTestOrchestratorSample/README.md +++ b/runner/AndroidTestOrchestratorSample/README.md @@ -4,7 +4,7 @@ The Android Test Orchestrator allows you to run each of your app's tests in isol See https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator for more background. This sample is a subset of the AndroidJUnitRunner sample, but it -ilustrates how to enable the Android Test Orchestrator in the app/build.gradle file. +illustrates how to enable the Android Test Orchestrator in the app/build.gradle file. This project uses the Gradle build system. You don't need an IDE to build and execute it but Android Studio is recommended. From 2268cec69a4a38d46ab20a8696aaeacf156ba8ce Mon Sep 17 00:00:00 2001 From: Chi Wang Date: Mon, 8 Mar 2021 16:40:54 +0800 Subject: [PATCH 004/109] Update RBE config to target the new worker pool. (#327) --- BUILD.bazel | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BUILD.bazel b/BUILD.bazel index 37d1372c7..114654e5c 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -46,5 +46,9 @@ platform( name: "dockerPrivileged" value: "true" } + properties: { + name: "gceMachineType" + value: "n1-standard-2" + } """, ) From 43e89a96f497c63882cd2b5e34bef573d532dd18 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 15 Mar 2021 13:58:16 -0700 Subject: [PATCH 005/109] Update orchestrator sample to use clearPackageData --- .gitignore | 1 + runner/AndroidTestOrchestratorSample/app/build.gradle | 1 + runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 473d7f1e4..2e822ca17 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build .settings/ .classpath bazel-* +.DS_Store diff --git a/runner/AndroidTestOrchestratorSample/app/build.gradle b/runner/AndroidTestOrchestratorSample/app/build.gradle index 5510a5f98..ebc1375dd 100644 --- a/runner/AndroidTestOrchestratorSample/app/build.gradle +++ b/runner/AndroidTestOrchestratorSample/app/build.gradle @@ -11,6 +11,7 @@ android { versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunnerArguments clearPackageData: 'true' } buildTypes { release { diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 70a6beec1..e9adbbf4d 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } From a28eef8dc5512d33c4b6b04fc8ac2746caa3c869 Mon Sep 17 00:00:00 2001 From: Ada Zhang Date: Mon, 15 Mar 2021 16:19:56 -0700 Subject: [PATCH 006/109] Updated the test samples to use AndroidX Test 1.4.0-alpha05. --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 12 ++++++------ 18 files changed, 86 insertions(+), 86 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 00d5aa9f2..286142850 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 70a6beec1..e9adbbf4d 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 70a6beec1..e9adbbf4d 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 618c31b02..0355ded11 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -29,9 +29,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 605e418aa..40d8d6965 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index 986afc0cf..a7495c161 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 47188d0e2..a5982b286 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index ad9339556..32abe2c10 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 840601ec0..eed3e876b 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 00a164ffd..a4e496264 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 68f1586d7..b4643a8d5 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - extTruthVersion = "1.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + extTruthVersion = "1.4.0-alpha05" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index 6aea1a156..07e6f128e 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index d3a01ea2e..d5a876f3a 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 5b8ac1afd..cbccdf4c3 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 70a6beec1..e9adbbf4d 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index 58600df67..bcf298f25 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" - rulesVersion = "1.4.0-alpha04" - espressoVersion = "3.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" + rulesVersion = "1.4.0-alpha05" + espressoVersion = "3.4.0-alpha05" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 5ac7c2dbc..8ea039d8f 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha04" - extJUnitVersion = "1.1.3-alpha04" - runnerVersion = "1.4.0-alpha04" + coreVersion = "1.4.0-alpha05" + extJUnitVersion = "1.1.3-alpha05" + runnerVersion = "1.4.0-alpha05" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index 4f0c087c8..150af1b9d 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0-alpha04" -rulesVersion="1.4.0-alpha04" -coreVersion="1.4.0-alpha04" -extJUnitVersion="1.1.3-alpha04" -extTruthVersion="1.4.0-alpha04" -espressoVersion="3.4.0-alpha04" +runnerVersion="1.4.0-alpha05" +rulesVersion="1.4.0-alpha05" +coreVersion="1.4.0-alpha05" +extJUnitVersion="1.1.3-alpha05" +extTruthVersion="1.4.0-alpha05" +espressoVersion="3.4.0-alpha05" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From 793719e676387cd837cc15d402adbc3945ede175 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Thu, 29 Apr 2021 16:44:52 -0700 Subject: [PATCH 007/109] Update to androidx test 1.4.0-alpha06 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 12 ++++++------ 18 files changed, 86 insertions(+), 86 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 286142850..16a025c15 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index e9adbbf4d..62e0dd92f 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index e9adbbf4d..62e0dd92f 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 0355ded11..c0695b0a4 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -29,9 +29,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 40d8d6965..f102a4ca4 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index a7495c161..fd7d9f5a5 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index a5982b286..6d306bce8 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 32abe2c10..ced675b7c 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index eed3e876b..6d7dd00cf 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index a4e496264..6db28be07 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index b4643a8d5..51c86aaa9 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - extTruthVersion = "1.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + extTruthVersion = "1.4.0-alpha06" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index 07e6f128e..ecb7e30c6 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index d5a876f3a..bcd627753 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index cbccdf4c3..3aecd0e3a 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index e9adbbf4d..62e0dd92f 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index bcf298f25..01e57bff4 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" - rulesVersion = "1.4.0-alpha05" - espressoVersion = "3.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" + rulesVersion = "1.4.0-alpha06" + espressoVersion = "3.4.0-alpha06" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 8ea039d8f..03f0c5248 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha05" - extJUnitVersion = "1.1.3-alpha05" - runnerVersion = "1.4.0-alpha05" + coreVersion = "1.4.0-alpha06" + extJUnitVersion = "1.1.3-alpha06" + runnerVersion = "1.4.0-alpha06" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index 150af1b9d..677e04877 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0-alpha05" -rulesVersion="1.4.0-alpha05" -coreVersion="1.4.0-alpha05" -extJUnitVersion="1.1.3-alpha05" -extTruthVersion="1.4.0-alpha05" -espressoVersion="3.4.0-alpha05" +runnerVersion="1.4.0-alpha06" +rulesVersion="1.4.0-alpha06" +coreVersion="1.4.0-alpha06" +extJUnitVersion="1.1.3-alpha06" +extTruthVersion="1.4.0-alpha06" +espressoVersion="3.4.0-alpha06" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From ca0aaaecf1fd9fe0229fe16703887f7878667910 Mon Sep 17 00:00:00 2001 From: Marco Dalla Ba Date: Mon, 3 May 2021 10:09:03 +0200 Subject: [PATCH 008/109] Fixed deprecations in IntentsAdvancedSample tests --- .../ImageViewHasDrawableMatcher.java | 11 +++---- .../ImageViewerActivityTest.java | 30 ++++++++++++------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java index 7d703a505..508976992 100644 --- a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java +++ b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java @@ -16,6 +16,7 @@ package com.example.android.testing.espresso.intents.AdvancedSample; +import androidx.test.espresso.matcher.BoundedDiagnosingMatcher; import androidx.test.espresso.matcher.BoundedMatcher; import android.view.View; import android.widget.ImageView; @@ -27,15 +28,15 @@ */ public class ImageViewHasDrawableMatcher { - public static BoundedMatcher hasDrawable() { - return new BoundedMatcher(ImageView.class) { - @Override - public void describeTo(Description description) { + public static BoundedDiagnosingMatcher hasDrawable() { + return new BoundedDiagnosingMatcher(ImageView.class) { + @Override + protected void describeMoreTo(Description description) { description.appendText("has drawable"); } @Override - public boolean matchesSafely(ImageView imageView) { + protected boolean matchesSafely(ImageView imageView, Description mismatchDescription) { return imageView.getDrawable() != null; } }; diff --git a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewerActivityTest.java b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewerActivityTest.java index f72c2def9..61357e88e 100644 --- a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewerActivityTest.java +++ b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewerActivityTest.java @@ -21,10 +21,14 @@ import android.graphics.BitmapFactory; import android.os.Bundle; import android.provider.MediaStore; -import androidx.test.espresso.intent.rule.IntentsTestRule; + +import androidx.test.espresso.intent.Intents; +import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -48,27 +52,30 @@ public class ImageViewerActivityTest { /** - * A JUnit {@link Rule @Rule} to init and release Espresso Intents before and after each - * test run. - *

- * Rules are interceptors which are executed for each test method and will run before - * any of your setup code in the {@link Before @Before} method. - *

- * This rule is based on {@link ActivityTestRule} and will create and launch of the activity - * for you and also expose the activity under test. + * Use {@link ActivityScenarioRule} to create and launch the activity under test, and close it + * after test completes. This is a replacement for {@link androidx.test.rule.ActivityTestRule}. */ @Rule - public IntentsTestRule mIntentsRule = new IntentsTestRule<>( + public ActivityScenarioRule mActivityScenarioRule = new ActivityScenarioRule<>( ImageViewerActivity.class); @Before public void stubCameraIntent() { + // Initializes Intents and begins recording intents. + Intents.init(); + ActivityResult result = createImageCaptureActivityResultStub(); // Stub the Intent. intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(result); } + @After + public void tearDown() { + // Clears Intents state. + Intents.release(); + } + @Test public void takePhoto_drawableIsApplied() { // Check that the ImageView doesn't have a drawable applied. @@ -85,7 +92,8 @@ private ActivityResult createImageCaptureActivityResultStub() { // Put the drawable in a bundle. Bundle bundle = new Bundle(); bundle.putParcelable(ImageViewerActivity.KEY_IMAGE_DATA, BitmapFactory.decodeResource( - mIntentsRule.getActivity().getResources(), R.drawable.ic_launcher)); + InstrumentationRegistry.getInstrumentation().getTargetContext().getResources(), + R.drawable.ic_launcher)); // Create the Intent that will include the bundle. Intent resultData = new Intent(); From 7d531ec6c60d13eb8819365f23a10af8b7fefd41 Mon Sep 17 00:00:00 2001 From: Marco Dalla Ba Date: Mon, 3 May 2021 19:11:35 +0200 Subject: [PATCH 009/109] Removed BoundedMatcher import. --- .../intents/AdvancedSample/ImageViewHasDrawableMatcher.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java index 508976992..2e4d1000c 100644 --- a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java +++ b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java @@ -17,7 +17,6 @@ package com.example.android.testing.espresso.intents.AdvancedSample; import androidx.test.espresso.matcher.BoundedDiagnosingMatcher; -import androidx.test.espresso.matcher.BoundedMatcher; import android.view.View; import android.widget.ImageView; From e8aacbf75a528a6badd642d62a90b0c96bafeef2 Mon Sep 17 00:00:00 2001 From: Marco Dalla Ba Date: Mon, 3 May 2021 19:28:46 +0200 Subject: [PATCH 010/109] Updated return type of hasDrawable method to Matcher --- .../intents/AdvancedSample/ImageViewHasDrawableMatcher.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java index 2e4d1000c..f403cdc76 100644 --- a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java +++ b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java @@ -21,13 +21,14 @@ import android.widget.ImageView; import org.hamcrest.Description; +import org.hamcrest.Matcher; /** * A Matcher for Espresso that checks if an ImageView has a drawable applied to it. */ public class ImageViewHasDrawableMatcher { - public static BoundedDiagnosingMatcher hasDrawable() { + public static Matcher hasDrawable() { return new BoundedDiagnosingMatcher(ImageView.class) { @Override protected void describeMoreTo(Description description) { From 5295da94bfdd48f8a2a6b00efff9a466fb30c764 Mon Sep 17 00:00:00 2001 From: Marco Dalla Ba Date: Mon, 3 May 2021 20:00:20 +0200 Subject: [PATCH 011/109] Removed extra space --- .../intents/AdvancedSample/ImageViewHasDrawableMatcher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java index f403cdc76..c60d8edb3 100644 --- a/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java +++ b/ui/espresso/IntentsAdvancedSample/app/src/androidTest/java/com/example/android/testing/espresso/intents/AdvancedSample/ImageViewHasDrawableMatcher.java @@ -30,7 +30,7 @@ public class ImageViewHasDrawableMatcher { public static Matcher hasDrawable() { return new BoundedDiagnosingMatcher(ImageView.class) { - @Override + @Override protected void describeMoreTo(Description description) { description.appendText("has drawable"); } From 6d913ae372444e286a8624845fcaf0fb495eb84b Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 17 May 2021 12:26:18 -0700 Subject: [PATCH 012/109] Update to androidx test 1.4.0-beta01 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 12 ++++++------ 18 files changed, 86 insertions(+), 86 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 16a025c15..59f00dc00 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 62e0dd92f..7c06904fc 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 62e0dd92f..7c06904fc 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index c0695b0a4..0727d9017 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -29,9 +29,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index f102a4ca4..1e36f9c39 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index fd7d9f5a5..e36f197c7 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 6d306bce8..b97f999bd 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index ced675b7c..1cabbc817 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 6d7dd00cf..d1feb9243 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 6db28be07..ccca86b9b 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 51c86aaa9..b68a0bab4 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - extTruthVersion = "1.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + extTruthVersion = "1.4.0-beta01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index ecb7e30c6..f8fd673cc 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index bcd627753..f140831ba 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 3aecd0e3a..5fea4dade 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 62e0dd92f..7c06904fc 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index 01e57bff4..0db5cb85c 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" - rulesVersion = "1.4.0-alpha06" - espressoVersion = "3.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" + rulesVersion = "1.4.0-beta01" + espressoVersion = "3.4.0-beta01" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 03f0c5248..08c9dbfab 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-alpha06" - extJUnitVersion = "1.1.3-alpha06" - runnerVersion = "1.4.0-alpha06" + coreVersion = "1.4.0-beta01" + extJUnitVersion = "1.1.3-beta01" + runnerVersion = "1.4.0-beta01" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index 677e04877..ca8939a32 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0-alpha06" -rulesVersion="1.4.0-alpha06" -coreVersion="1.4.0-alpha06" -extJUnitVersion="1.1.3-alpha06" -extTruthVersion="1.4.0-alpha06" -espressoVersion="3.4.0-alpha06" +runnerVersion="1.4.0-beta01" +rulesVersion="1.4.0-beta01" +coreVersion="1.4.0-beta01" +extJUnitVersion="1.1.3-beta01" +extTruthVersion="1.4.0-beta01" +espressoVersion="3.4.0-beta01" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From 482321c0adc00b2c0238f7a12ec39418f4d462af Mon Sep 17 00:00:00 2001 From: Alex Humesky Date: Thu, 20 May 2021 12:30:18 -0400 Subject: [PATCH 013/109] Remove build_tools_version and api_level Remove `build_tools_version` and `api_level` to let `android_sdk_repository` automatically select the latest installed version. One of the fixes for https://github.com/bazelbuild/bazel/issues/13409#issuecomment-845265150 --- WORKSPACE | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index e293c6948..868cb6fde 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -2,12 +2,7 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external") # Set the path to your local SDK installation, or use the ANDROID_HOME environment variable. -android_sdk_repository( - name = "androidsdk", - api_level = 28, - build_tools_version = "28.0.2", - # path = "/path/to/sdk", -) +android_sdk_repository(name = "androidsdk") # Required for running emulator tests on RBE on Bazel CI android_ndk_repository(name = "androidndk") From d1e3a81d5d777831c36df6ee532a2ce238635016 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 7 Jun 2021 12:40:29 -0700 Subject: [PATCH 014/109] Update to androidx.test 1.4.0-beta02 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 12 ++++++------ 18 files changed, 86 insertions(+), 86 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 59f00dc00..03130d5a7 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 7c06904fc..442e1a48e 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 7c06904fc..442e1a48e 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 0727d9017..3f0e1a636 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -29,9 +29,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 1e36f9c39..f776578bd 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index e36f197c7..6082fb485 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index b97f999bd..4854b2ae6 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 1cabbc817..ddec61840 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index d1feb9243..951ba3457 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index ccca86b9b..565326fae 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index b68a0bab4..696c9ebe7 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - extTruthVersion = "1.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + extTruthVersion = "1.4.0-beta02" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index f8fd673cc..2e7e252ec 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index f140831ba..739cf9725 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 5fea4dade..e4003c094 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 7c06904fc..442e1a48e 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index 0db5cb85c..f9df988f6 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" - rulesVersion = "1.4.0-beta01" - espressoVersion = "3.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" + rulesVersion = "1.4.0-beta02" + espressoVersion = "3.4.0-beta02" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 08c9dbfab..8b5e46edd 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta01" - extJUnitVersion = "1.1.3-beta01" - runnerVersion = "1.4.0-beta01" + coreVersion = "1.4.0-beta02" + extJUnitVersion = "1.1.3-beta02" + runnerVersion = "1.4.0-beta02" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index ca8939a32..25ab47db7 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0-beta01" -rulesVersion="1.4.0-beta01" -coreVersion="1.4.0-beta01" -extJUnitVersion="1.1.3-beta01" -extTruthVersion="1.4.0-beta01" -espressoVersion="3.4.0-beta01" +runnerVersion="1.4.0-beta02" +rulesVersion="1.4.0-beta02" +coreVersion="1.4.0-beta02" +extJUnitVersion="1.1.3-beta02" +extTruthVersion="1.4.0-beta02" +espressoVersion="3.4.0-beta02" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From 280f76172098dc38313387989e3e861008e3ace4 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Wed, 30 Jun 2021 10:12:44 -0700 Subject: [PATCH 015/109] Update to androidx.test 1.4.0 / espresso 3.4.0 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 12 ++++++------ 18 files changed, 86 insertions(+), 86 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 03130d5a7..20513cfed 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 442e1a48e..f12c5a218 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 442e1a48e..f12c5a218 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 3f0e1a636..22572c08e 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -29,9 +29,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + espressoVersion = "3.4.0" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index f776578bd..9766b6ed6 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index 6082fb485..4c5ddcdd2 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 4854b2ae6..fa99cc258 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + espressoVersion = "3.4.0" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index ddec61840..ea7f7c0be 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 951ba3457..a18f23230 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 565326fae..473c80282 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 696c9ebe7..30ec172fd 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - extTruthVersion = "1.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" + extJUnitVersion = "1.1.3" + extTruthVersion = "1.4.0" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index 2e7e252ec..c2fb25c9b 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index 739cf9725..cdfa80cbe 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index e4003c094..569dbdc40 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 442e1a48e..f12c5a218 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index f9df988f6..eb435d409 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" - rulesVersion = "1.4.0-beta02" - espressoVersion = "3.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" + rulesVersion = "1.4.0" + espressoVersion = "3.4.0" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 8b5e46edd..0482f4718 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0-beta02" - extJUnitVersion = "1.1.3-beta02" - runnerVersion = "1.4.0-beta02" + coreVersion = "1.4.0" + extJUnitVersion = "1.1.3" + runnerVersion = "1.4.0" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index 25ab47db7..efc6d8511 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0-beta02" -rulesVersion="1.4.0-beta02" -coreVersion="1.4.0-beta02" -extJUnitVersion="1.1.3-beta02" -extTruthVersion="1.4.0-beta02" -espressoVersion="3.4.0-beta02" +runnerVersion="1.4.0" +rulesVersion="1.4.0" +coreVersion="1.4.0" +extJUnitVersion="1.1.3" +extTruthVersion="1.4.0" +espressoVersion="3.4.0" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From 8f88eeec590bcdf0303632102b9666de9b1a113d Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Thu, 1 Jul 2021 15:16:30 -0700 Subject: [PATCH 016/109] Workaround for org.checkerframework duplicate class errors. See https://github.com/android/android-test/issues/861 --- ui/espresso/AccessibilitySample/app/build.gradle | 9 +++++++-- ui/espresso/AccessibilitySample/build.gradle | 5 +++-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ui/espresso/AccessibilitySample/app/build.gradle b/ui/espresso/AccessibilitySample/app/build.gradle index 0510792d2..802f977d3 100644 --- a/ui/espresso/AccessibilitySample/app/build.gradle +++ b/ui/espresso/AccessibilitySample/app/build.gradle @@ -30,6 +30,8 @@ android { } } + + tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { jvmTarget = "1.8" @@ -47,6 +49,9 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion androidTestImplementation 'androidx.test:runner:' + rootProject.runnerVersion androidTestImplementation 'androidx.test.espresso:espresso-core:' + rootProject.espressoVersion - androidTestImplementation 'androidx.test.espresso:espresso-accessibility:' + rootProject.espressoVersion - androidTestImplementation 'com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:3.1' + androidTestImplementation('androidx.test.espresso:espresso-accessibility:' + rootProject.espressoVersion) { + // workaround for https://github.com/android/android-test/issues/861 + exclude group: 'org.checkerframework', module: 'checker' + } + androidTestImplementation 'com.google.truth:truth:1.1.3' } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 22572c08e..563376bcc 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -1,14 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.10' + ext.kotlin_version = '1.3.20' repositories { // Insert local test repo here jcenter() google() + mavenLocal() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.1' + classpath 'com.android.tools.build:gradle:4.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties index 10c11cbaa..25c695e68 100644 --- a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip From 414e815e1cb67ec31ab0aa27ac30c1d4f8788d64 Mon Sep 17 00:00:00 2001 From: utzcoz Date: Sat, 3 Jul 2021 01:06:23 +0800 Subject: [PATCH 017/109] Migrate links in README.md to main branch Signed-off-by: utzcoz --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 396c6c9e2..a5390493b 100644 --- a/README.md +++ b/README.md @@ -5,46 +5,46 @@ A collection of samples demonstrating different frameworks and techniques for au ### Espresso Samples -**[BasicSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/BasicSample)** - Basic Espresso sample +**[BasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/BasicSample)** - Basic Espresso sample -**[CustomMatcherSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/CustomMatcherSample)** - Shows how to extend Espresso to match the *hint* property of an EditText +**[CustomMatcherSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/CustomMatcherSample)** - Shows how to extend Espresso to match the *hint* property of an EditText -**[DataAdapterSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/DataAdapterSample)** - Showcases the `onData()` entry point for Espresso, for lists and AdapterViews +**[DataAdapterSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/DataAdapterSample)** - Showcases the `onData()` entry point for Espresso, for lists and AdapterViews -**[FragmentScenarioSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/FragmentScenarioSample)** - Basic usage of `FragmentScenario` with Espresso. +**[FragmentScenarioSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/FragmentScenarioSample)** - Basic usage of `FragmentScenario` with Espresso. -**[IdlingResourceSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/IdlingResourceSample)** - Synchronization with background jobs +**[IdlingResourceSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/IdlingResourceSample)** - Synchronization with background jobs -**[IntentsBasicSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/IntentsBasicSample)** - Basic usage of `intended()` and `intending()` +**[IntentsBasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/IntentsBasicSample)** - Basic usage of `intended()` and `intending()` -**[IntentsAdvancedSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/IntentsAdvancedSample)** - Simulates a user fetching a bitmap using the camera +**[IntentsAdvancedSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/IntentsAdvancedSample)** - Simulates a user fetching a bitmap using the camera -**[MultiWindowSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/MultiWindowSample)** - Shows how to point Espresso to different windows +**[MultiWindowSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/MultiWindowSample)** - Shows how to point Espresso to different windows -**[RecyclerViewSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/RecyclerViewSample)** - RecyclerView actions for Espresso +**[RecyclerViewSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/RecyclerViewSample)** - RecyclerView actions for Espresso -**[WebBasicSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/WebBasicSample)** - Use Espresso-web to interact with WebViews +**[WebBasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/WebBasicSample)** - Use Espresso-web to interact with WebViews -**[BasicSampleBundled](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/BasicSampleBundled)** - Basic sample for Eclipse and other IDEs +**[BasicSampleBundled](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/BasicSampleBundled)** - Basic sample for Eclipse and other IDEs -**[MultiProcessSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/MultiProcessSample)** - Showcases how to use multiprocess Espresso. +**[MultiProcessSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/MultiProcessSample)** - Showcases how to use multiprocess Espresso. ### UiAutomator Sample -**[BasicSample](https://github.com/googlesamples/android-testing/tree/master/ui/uiautomator/BasicSample)** - Basic UI Automator sample +**[BasicSample](https://github.com/googlesamples/android-testing/tree/main/ui/uiautomator/BasicSample)** - Basic UI Automator sample ### AndroidJUnitRunner Sample -**[AndroidJunitRunnerSample](https://github.com/googlesamples/android-testing/tree/master/runner/AndroidJunitRunnerSample)** - Showcases test annotations, parameterized tests and testsuite creation +**[AndroidJunitRunnerSample](https://github.com/googlesamples/android-testing/tree/main/runner/AndroidJunitRunnerSample)** - Showcases test annotations, parameterized tests and testsuite creation ### JUnit4 Rules Sample **All previous samples use ActivityTestRule or IntentsTestRule but there's one specific to ServiceTestRule: -**[BasicSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/BasicSample)** - Simple usage of `ActivityTestRule` +**[BasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/BasicSample)** - Simple usage of `ActivityTestRule` -**[IntentsBasicSample](https://github.com/googlesamples/android-testing/blob/master/ui/espresso/IntentsBasicSample)** - Simple usage of `IntentsTestRule` +**[IntentsBasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/IntentsBasicSample)** - Simple usage of `IntentsTestRule` -**[ServiceTestRuleSample](https://github.com/googlesamples/android-testing/tree/master/integration/ServiceTestRuleSample)** - Simple usage of `ServiceTestRule` +**[ServiceTestRuleSample](https://github.com/googlesamples/android-testing/tree/main/integration/ServiceTestRuleSample)** - Simple usage of `ServiceTestRule` Prerequisites -------------- From 785b089d12f4aee62fbfd30524b00d0ef4010b0d Mon Sep 17 00:00:00 2001 From: Philipp Wollermann Date: Fri, 13 Aug 2021 03:40:33 +0200 Subject: [PATCH 018/109] Remove ubuntu1604 from buildkite-pipeline.yml (#391) Ubuntu 16.04 is end-of-life, we're going to remove it from Bazel CI. If you like you can add testing on `ubuntu2004` platform which we also support. --- bazelci/buildkite-pipeline.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/bazelci/buildkite-pipeline.yml b/bazelci/buildkite-pipeline.yml index c95da91e9..907acfadf 100644 --- a/bazelci/buildkite-pipeline.yml +++ b/bazelci/buildkite-pipeline.yml @@ -1,15 +1,6 @@ # https://github.com/googlesamples/android-testing#experimental-bazel-support --- platforms: - ubuntu1604: - build_targets: - - "//..." - test_flags: - - "--config=remote_android" - - "--flaky_test_attempts=3" - test_targets: - - "//..." - - "-//ui/espresso/AccessibilitySample/..." ubuntu1804: build_targets: - "//..." From f5b36dc67d62c79894b0feea44080801680ef72d Mon Sep 17 00:00:00 2001 From: Ivo List Date: Fri, 13 Aug 2021 03:41:08 +0200 Subject: [PATCH 019/109] Stop running android_instrumentation_test on Bazel CI (#397) Android Emulator adds complexity to the infrastructure, because the emulator requires access to the /dev/kvm device and enabled Nested Virtualization, which means that basically any CI job could get root on the host VM using that. The mitigations for that make other features very hard to implement. --- bazelci/buildkite-pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bazelci/buildkite-pipeline.yml b/bazelci/buildkite-pipeline.yml index 907acfadf..5efdb8e8e 100644 --- a/bazelci/buildkite-pipeline.yml +++ b/bazelci/buildkite-pipeline.yml @@ -4,7 +4,10 @@ platforms: ubuntu1804: build_targets: - "//..." + build_flags: + - "--test_lang_filters=-android_instrumentation" # BazelCI does not have Android Emulator test_flags: + - "--test_lang_filters=-android_instrumentation" # BazelCI does not have Android Emulator - "--config=remote_android" - "--flaky_test_attempts=3" test_targets: From cb136a96872d05330e08da6156a6acb4f61a1dde Mon Sep 17 00:00:00 2001 From: Ivo List Date: Tue, 17 Aug 2021 10:09:20 +0200 Subject: [PATCH 020/109] Disable android_instrumentation_test explicitly (#398) Using just test_filter was not enough, because it still triggers emulator resolution. --- bazelci/buildkite-pipeline.yml | 83 ++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/bazelci/buildkite-pipeline.yml b/bazelci/buildkite-pipeline.yml index 5efdb8e8e..89474fcfe 100644 --- a/bazelci/buildkite-pipeline.yml +++ b/bazelci/buildkite-pipeline.yml @@ -4,15 +4,92 @@ platforms: ubuntu1804: build_targets: - "//..." - build_flags: - - "--test_lang_filters=-android_instrumentation" # BazelCI does not have Android Emulator + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_23_x86" # BazelCI does not have Android Emulator + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_23_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_22_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_21_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_19_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_23_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_22_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_21_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_19_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_23_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_22_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_21_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_19_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_23_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_22_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_21_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_19_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_19_x86" test_flags: - - "--test_lang_filters=-android_instrumentation" # BazelCI does not have Android Emulator - "--config=remote_android" - "--flaky_test_attempts=3" test_targets: - "//..." - "-//ui/espresso/AccessibilitySample/..." + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_23_x86" # BazelCI does not have Android Emulator + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/uiautomator/BasicSample:BasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_23_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_22_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_21_x86" + - "-//ui/espresso/RecyclerViewSample:RecyclerViewSampleInstrumentationTest_19_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_23_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_22_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_21_x86" + - "-//ui/espresso/MultiWindowSample:MultiWindowSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IntentsBasicSample:IntentsBasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IntentsAdvancedSample:IntentsAdvancedSampleInstrumentationTest_19_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_23_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_22_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_21_x86" + - "-//ui/espresso/IdlingResourceSample:IdlingResourceSampleInstrumentationTest_19_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_23_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_22_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_21_x86" + - "-//ui/espresso/DataAdapterSample:DataAdapterSampleInstrumentationTest_19_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_23_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_22_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_21_x86" + - "-//ui/espresso/CustomMatcherSample:CustomMatcherSampleInstrumentationTest_19_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/BasicSample:BasicSampleInstrumentationTest_19_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_23_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_22_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_21_x86" + - "-//ui/espresso/AccessibilitySample:BasicSampleInstrumentationTest_19_x86" macos: # Testing does not work for macos and windows yet build_targets: # Results of `bazel query 'kind(android_binary, //...)' From 813540954e4ebf45d6727d8ce66bfbc430ef057f Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Thu, 9 Sep 2021 12:18:05 -0700 Subject: [PATCH 021/109] Upgrade to androidx.test alpha libraries released on 08.23.21 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- runner/AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/app/build.gradle | 2 +- ui/espresso/BasicSample/build.gradle | 12 ++++++------ ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 14 +++++++------- 19 files changed, 90 insertions(+), 90 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 20513cfed..7b3cc991c 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -24,8 +24,8 @@ allprojects { ext { buildToolsVersion = "30.0.2" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index f12c5a218..a1efc28a0 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index f12c5a218..a1efc28a0 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 563376bcc..f89f56b45 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -30,9 +30,9 @@ ext { androidxAnnotationVersion = "1.1.0" robolectricVersion = "4.5.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" guavaVersion = "29.0-android" } diff --git a/ui/espresso/BasicSample/app/build.gradle b/ui/espresso/BasicSample/app/build.gradle index cf0926d0e..cd9086011 100644 --- a/ui/espresso/BasicSample/app/build.gradle +++ b/ui/espresso/BasicSample/app/build.gradle @@ -40,7 +40,7 @@ dependencies { implementation 'com.google.guava:guava:' + rootProject.guavaVersion // Testing-only dependencies - androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" androidTestImplementation 'androidx.test:core:' + rootProject.coreVersion androidTestImplementation 'androidx.test:core-ktx:' + rootProject.coreVersion androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 9766b6ed6..77cf9cc50 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.72' + ext.kotlin_version = '1.4.31' repositories { // Insert local test repo here jcenter() google() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:4.1.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -30,8 +30,8 @@ ext { robolectricVersion = "4.5.1" guavaVersion = "29.0-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index 4c5ddcdd2..ab84da8c2 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index fa99cc258..33ebf6920 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index ea7f7c0be..9136c40bf 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -30,11 +30,11 @@ ext { androidxCoreVersion = "1.2.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" robolectricVersion = "4.5.1" truthVersion = "1.0.1" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index a18f23230..2a73f596d 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -42,8 +42,8 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 473c80282..e8bb76a6c 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 30ec172fd..7b35bc9b4 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -26,12 +26,12 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" androidxCoreVersion = "1.2.0" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" - extJUnitVersion = "1.1.3" - extTruthVersion = "1.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" + extJUnitVersion = "1.1.4-alpha01" + extTruthVersion = "1.5.0-alpha01" robolectricVersion = "4.5.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index c2fb25c9b..d36df84fa 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -45,9 +45,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index cdfa80cbe..c0f4cd333 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -26,10 +26,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 569dbdc40..0c98ccb6f 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -43,9 +43,9 @@ ext { androidxAnnotationVersion = "1.1.0" androidxRecyclerVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index f12c5a218..a1efc28a0 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -26,9 +26,9 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index eb435d409..b2129b718 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -23,10 +23,10 @@ ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" guavaVersion = "29.0-android" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" - rulesVersion = "1.4.0" - espressoVersion = "3.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" + rulesVersion = "1.4.1-alpha01" + espressoVersion = "3.5.0-alpha01" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index 0482f4718..a6fba2213 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -25,9 +25,9 @@ allprojects { ext { buildToolsVersion = "30.0.2" androidxAnnotationVersion = "1.1.0" - coreVersion = "1.4.0" - extJUnitVersion = "1.1.3" - runnerVersion = "1.4.0" + coreVersion = "1.4.1-alpha01" + extJUnitVersion = "1.1.4-alpha01" + runnerVersion = "1.4.1-alpha01" hamcrestVersion = "1.3" truthVersion = "1.0.1" } diff --git a/update_versions.sh b/update_versions.sh index efc6d8511..991c24924 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -5,7 +5,7 @@ set -ex # Exit immediately if a command exits with a non-zero status. #repourl="" # Leave empty to be ignored -#repourl="file:\/\/\/~\/test_repos\/1.3.1-alpha01\/m2repository" +#repourl="file:\/\/\/~\/test_repos\/1.4.1-alpha01\/m2repository" #repourl="https:\/\/oss.sonatype.org\/content\/repositories\/orgrobolectric-1216" #repourl="http:\/\/localhost:1480" buildToolsVersion="30.0.2" @@ -16,12 +16,12 @@ androidxCoreVersion="1.2.0" androidxRecyclerVersion="1.1.0" guavaVersion="29.0-android" truthVersion="1.0.1" -runnerVersion="1.4.0" -rulesVersion="1.4.0" -coreVersion="1.4.0" -extJUnitVersion="1.1.3" -extTruthVersion="1.4.0" -espressoVersion="3.4.0" +runnerVersion="1.4.1-alpha01" +rulesVersion="1.4.1-alpha01" +coreVersion="1.4.1-alpha01" +extJUnitVersion="1.1.4-alpha01" +extTruthVersion="1.5.0-alpha01" +espressoVersion="3.5.0-alpha01" robolectricVersion="4.5.1" uiAutomatorVersion="2.2.0" From ad2409b327e34a927fb410b9bdc14a8cda997590 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Sat, 18 Sep 2021 12:41:51 -0700 Subject: [PATCH 022/109] Update to latest dependencies. - swap jcenter for mavenCentral - AGP -> 7.0.2 - build tools -> 31.0.0 - androidx.annotation -> 1.2.0 - androidx.core -> 1.6.0 - androidx.recyclerview -> 1.2.1 - truth -> 1.1.3 - guava -> 30.1.1-android --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- runner/AndroidJunitRunnerSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../AndroidTestOrchestratorSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/AccessibilitySample/build.gradle | 17 ++++++++--------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/BasicSample/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/CustomMatcherSample/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/DataAdapterSample/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/FragmentScenarioSample/build.gradle | 14 +++++++------- ui/espresso/IdlingResourceSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/MultiWindowSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/RecyclerViewSample/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/WebBasicSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/uiautomator/BasicSample/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicSample-kotlinApp/build.gradle | 4 ++-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicSample/build.gradle | 8 ++++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicUnitAndroidTest/build.gradle | 12 ++++++------ .../gradle/wrapper/gradle-wrapper.properties | 2 +- update_versions.sh | 14 +++++++------- 38 files changed, 137 insertions(+), 138 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 7b3cc991c..c9439e65e 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,13 +17,13 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties b/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties index 78b939385..d6c2efa6d 100644 --- a/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties +++ b/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index a1efc28a0..73d165a05 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +17,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties b/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties index 8e4f539c0..c31c2fddf 100644 --- a/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties +++ b/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index a1efc28a0..73d165a05 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +17,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties b/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties index 8e4f539c0..c31c2fddf 100644 --- a/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties +++ b/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index f89f56b45..760b2d580 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -1,15 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.20' + ext.kotlin_version = '1.3.40' repositories { // Insert local test repo here - jcenter() google() - mavenLocal() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -20,19 +19,19 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - robolectricVersion = "4.5.1" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + robolectricVersion = "4.6.1" extTruthVersion = '1.3.1-alpha02' coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - guavaVersion = "29.0-android" + guavaVersion = "30.1.1-android" } diff --git a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties index 25c695e68..874796601 100644 --- a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 77cf9cc50..53583ed27 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -4,11 +4,11 @@ buildscript { ext.kotlin_version = '1.4.31' repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.1' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -19,16 +19,16 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - robolectricVersion = "4.5.1" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + robolectricVersion = "4.6.1" + guavaVersion = "30.1.1-android" extTruthVersion = '1.3.0-rc01' coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" diff --git a/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties index 36f2e433e..af7e7bf5b 100644 --- a/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index ab84da8c2..9003680c9 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,19 +17,19 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" rulesVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties index fdee9f493..002ece90b 100644 --- a/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 33ebf6920..f63a3680b 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,18 +17,18 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties index 5fb1fe3a5..8f650c55f 100644 --- a/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 9136c40bf..5da62e993 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -4,11 +4,11 @@ buildscript { ext.kotlin_version = '1.3.72' repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -16,7 +16,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } @@ -26,8 +26,8 @@ task clean(type: Delete) { } ext { - buildToolsVersion = "30.0.2" - androidxCoreVersion = "1.2.0" + buildToolsVersion = "31.0.0" + androidxCoreVersion = "1.6.0" androidxCompatVersion = "1.1.0-rc01" androidxFragmentVersion = "1.1.0-rc01" coreVersion = "1.4.1-alpha01" @@ -35,6 +35,6 @@ ext { runnerVersion = "1.4.1-alpha01" rulesVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" - truthVersion = "1.0.1" + robolectricVersion = "4.6.1" + truthVersion = "1.1.3" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 2a73f596d..6f4c22452 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -19,11 +19,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,15 +33,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties index 4bf0df09b..ee90e7d54 100644 --- a/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties @@ -19,4 +19,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index e8bb76a6c..9bee4cb86 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,14 +17,14 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 7b35bc9b4..6b95dcc18 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +17,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - androidxCoreVersion = "1.2.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + androidxCoreVersion = "1.6.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" @@ -33,5 +33,5 @@ ext { espressoVersion = "3.5.0-alpha01" extJUnitVersion = "1.1.4-alpha01" extTruthVersion = "1.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties index a79ffaef8..f487f9108 100644 --- a/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index d36df84fa..6d519e5a8 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -19,11 +19,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,8 +33,8 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } @@ -43,8 +43,8 @@ task clean(type: Delete) { } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties index ea86e4ef7..e42f87aff 100644 --- a/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index c0f4cd333..bd225e8e3 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +17,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties index 46a5d120f..27604293b 100644 --- a/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 0c98ccb6f..9b6f55b71 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -19,11 +19,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,16 +33,16 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - androidxRecyclerVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + androidxRecyclerVersion = "1.2.1" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties index 83b3aa658..6b167a346 100644 --- a/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index a1efc28a0..73d165a05 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +17,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index b2129b718..1db264f83 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -3,26 +3,26 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' } } allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicSample-kotlinApp/build.gradle b/unit/BasicSample-kotlinApp/build.gradle index 24f00833b..16ab9a81b 100644 --- a/unit/BasicSample-kotlinApp/build.gradle +++ b/unit/BasicSample-kotlinApp/build.gradle @@ -3,8 +3,8 @@ buildscript { kotlinVersion = '1.3.61' } repositories { - jcenter() google() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.5.2' @@ -14,7 +14,7 @@ buildscript { allprojects { repositories { - jcenter() google() + mavenCentral() } } diff --git a/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties b/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicSample/build.gradle b/unit/BasicSample/build.gradle index 107d55f04..33365d169 100644 --- a/unit/BasicSample/build.gradle +++ b/unit/BasicSample/build.gradle @@ -18,11 +18,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -32,13 +32,13 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" junitVersion = "4.12" mockitoVersion = "1.10.19" } diff --git a/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties b/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index a6fba2213..9335c3ccd 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -3,11 +3,11 @@ buildscript { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,17 +17,17 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" hamcrestVersion = "1.3" - truthVersion = "1.0.1" + truthVersion = "1.1.3" } diff --git a/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties b/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties index 5b5d0bbcc..e2bfe2e4b 100644 --- a/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/update_versions.sh b/update_versions.sh index 991c24924..68189555e 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -8,21 +8,21 @@ set -ex # Exit immediately if a command exits with a non-zero status. #repourl="file:\/\/\/~\/test_repos\/1.4.1-alpha01\/m2repository" #repourl="https:\/\/oss.sonatype.org\/content\/repositories\/orgrobolectric-1216" #repourl="http:\/\/localhost:1480" -buildToolsVersion="30.0.2" +buildToolsVersion="31.0.0" compileSdkVersion="30" targetSdkVersion="30" -androidxAnnotationVersion="1.1.0" -androidxCoreVersion="1.2.0" -androidxRecyclerVersion="1.1.0" -guavaVersion="29.0-android" -truthVersion="1.0.1" +androidxAnnotationVersion="1.2.0" +androidxCoreVersion="1.6.0" +androidxRecyclerVersion="1.2.1" +guavaVersion="30.1.1-android" +truthVersion="1.1.3" runnerVersion="1.4.1-alpha01" rulesVersion="1.4.1-alpha01" coreVersion="1.4.1-alpha01" extJUnitVersion="1.1.4-alpha01" extTruthVersion="1.5.0-alpha01" espressoVersion="3.5.0-alpha01" -robolectricVersion="4.5.1" +robolectricVersion="4.6.1" uiAutomatorVersion="2.2.0" for p in $(cat projects.conf); do From d46e0498f7c3ea0bde587139f81d459ebb7fa136 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Sat, 18 Sep 2021 12:41:51 -0700 Subject: [PATCH 023/109] Update to latest dependencies. - swap jcenter for mavenCentral - AGP -> 7.0.2 - build tools -> 31.0.0 - androidx.annotation -> 1.2.0 - androidx.core -> 1.6.0 - androidx.recyclerview -> 1.2.1 - truth -> 1.1.3 - guava -> 30.1.1-android --- .../ServiceTestRuleSample/build.gradle | 9 ++++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- runner/AndroidJunitRunnerSample/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/AccessibilitySample/build.gradle | 20 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/BasicSample/app/build.gradle | 2 +- ui/espresso/BasicSample/build.gradle | 19 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/CustomMatcherSample/build.gradle | 15 ++++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/DataAdapterSample/build.gradle | 15 ++++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../FragmentScenarioSample/app/build.gradle | 9 ++++++- .../SampleDialogFragmentTest.kt | 1 - .../fragmentscenario/SampleFragmentTest.kt | 1 - .../FragmentScenarioSample/build.gradle | 23 ++++++++-------- .../FragmentScenarioSample/gradle.properties | 3 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/IdlingResourceSample/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../IntentsAdvancedSample/build.gradle | 11 ++++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/IntentsBasicSample/build.gradle | 15 ++++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/MultiProcessSample/build.gradle | 11 ++++---- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/MultiWindowSample/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/RecyclerViewSample/build.gradle | 15 ++++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/espresso/WebBasicSample/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- ui/uiautomator/BasicSample/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicSample-kotlinApp/build.gradle | 4 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicSample/app/build.gradle | 4 +-- unit/BasicSample/build.gradle | 9 ++++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- unit/BasicUnitAndroidTest/build.gradle | 13 +++++----- .../gradle/wrapper/gradle-wrapper.properties | 2 +- update_versions.sh | 26 ++++++++++++------- 45 files changed, 185 insertions(+), 156 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 7b3cc991c..79c5e2dbb 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,13 +18,13 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties b/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties index 78b939385..d6c2efa6d 100644 --- a/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties +++ b/integration/ServiceTestRuleSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index a1efc28a0..08e62a0ca 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +18,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties b/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties index 8e4f539c0..c31c2fddf 100644 --- a/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties +++ b/runner/AndroidJunitRunnerSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index a1efc28a0..08e62a0ca 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +18,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties b/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties index 8e4f539c0..c31c2fddf 100644 --- a/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties +++ b/runner/AndroidTestOrchestratorSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index f89f56b45..34e8f698f 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -1,16 +1,16 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.20' + ext.kotlinVersion = "1.4.31" + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() - mavenLocal() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "com.android.tools.build:gradle:$agpVersion" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -20,19 +20,19 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - robolectricVersion = "4.5.1" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + robolectricVersion = "4.6.1" extTruthVersion = '1.3.1-alpha02' coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - guavaVersion = "29.0-android" + guavaVersion = "30.1.1-android" } diff --git a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties index 25c695e68..874796601 100644 --- a/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/AccessibilitySample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/BasicSample/app/build.gradle b/ui/espresso/BasicSample/app/build.gradle index cd9086011..cb401e273 100644 --- a/ui/espresso/BasicSample/app/build.gradle +++ b/ui/espresso/BasicSample/app/build.gradle @@ -40,7 +40,7 @@ dependencies { implementation 'com.google.guava:guava:' + rootProject.guavaVersion // Testing-only dependencies - androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" androidTestImplementation 'androidx.test:core:' + rootProject.coreVersion androidTestImplementation 'androidx.test:core-ktx:' + rootProject.coreVersion androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 77cf9cc50..f28e5235f 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -1,15 +1,16 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.31' + ext.kotlinVersion = "1.4.31" + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "com.android.tools.build:gradle:$agpVersion" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -19,16 +20,16 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - robolectricVersion = "4.5.1" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + robolectricVersion = "4.6.1" + guavaVersion = "30.1.1-android" extTruthVersion = '1.3.0-rc01' coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" diff --git a/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties index 36f2e433e..af7e7bf5b 100644 --- a/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index ab84da8c2..7d0cc0b4a 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,19 +18,19 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" rulesVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties index fdee9f493..002ece90b 100644 --- a/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/CustomMatcherSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 33ebf6920..772f8a2ec 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,18 +18,18 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties index 5fb1fe3a5..8f650c55f 100644 --- a/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/DataAdapterSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/FragmentScenarioSample/app/build.gradle b/ui/espresso/FragmentScenarioSample/app/build.gradle index 17e5114b4..7e2e82ba0 100644 --- a/ui/espresso/FragmentScenarioSample/app/build.gradle +++ b/ui/espresso/FragmentScenarioSample/app/build.gradle @@ -33,11 +33,18 @@ android { // include the android resources in local tests. See http://robolectric.org/migrating/#migrating-to-40 unitTests.includeAndroidResources = true } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" implementation 'androidx.appcompat:appcompat:' + rootProject.androidxCompatVersion implementation 'androidx.core:core-ktx:' + rootProject.androidxCoreVersion implementation 'androidx.fragment:fragment-ktx:' + rootProject.androidxFragmentVersion diff --git a/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleDialogFragmentTest.kt b/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleDialogFragmentTest.kt index 0eb667118..8844e0f71 100644 --- a/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleDialogFragmentTest.kt +++ b/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleDialogFragmentTest.kt @@ -18,7 +18,6 @@ import org.robolectric.annotation.LooperMode * See [testing documentation](http://d.android.com/tools/testing). */ @RunWith(AndroidJUnit4::class) -@LooperMode(LooperMode.Mode.PAUSED) class SampleDialogFragmentTest { @Test diff --git a/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleFragmentTest.kt b/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleFragmentTest.kt index 54a9a40e4..b35a058d0 100644 --- a/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleFragmentTest.kt +++ b/ui/espresso/FragmentScenarioSample/app/src/sharedTest/java/com/example/android/testing/espresso/fragmentscenario/SampleFragmentTest.kt @@ -17,7 +17,6 @@ import org.robolectric.annotation.LooperMode * See [testing documentation](http://d.android.com/tools/testing). */ @RunWith(AndroidJUnit4::class) -@LooperMode(LooperMode.Mode.PAUSED) class SampleFragmentTest { @Test fun launchFragmentAndVerifyUI() { diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 9136c40bf..44de1873f 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -1,22 +1,23 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.72' + ext.kotlinVersion = "1.4.31" + ext.agpVersion = "7.0.2" repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "com.android.tools.build:gradle:$agpVersion" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } allprojects { repositories { google() - jcenter() + mavenCentral() } } @@ -26,15 +27,15 @@ task clean(type: Delete) { } ext { - buildToolsVersion = "30.0.2" - androidxCoreVersion = "1.2.0" - androidxCompatVersion = "1.1.0-rc01" - androidxFragmentVersion = "1.1.0-rc01" + buildToolsVersion = "31.0.0" + androidxCoreVersion = "1.6.0" + androidxCompatVersion = "1.3.1" + androidxFragmentVersion = "1.3.6" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" rulesVersion = "1.4.1-alpha01" espressoVersion = "3.5.0-alpha01" - robolectricVersion = "4.5.1" - truthVersion = "1.0.1" + robolectricVersion = "4.6.1" + truthVersion = "1.1.3" } diff --git a/ui/espresso/FragmentScenarioSample/gradle.properties b/ui/espresso/FragmentScenarioSample/gradle.properties index 3be565ea9..c13b18e9c 100644 --- a/ui/espresso/FragmentScenarioSample/gradle.properties +++ b/ui/espresso/FragmentScenarioSample/gradle.properties @@ -10,8 +10,7 @@ org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -android.useAndroidX=true +# org.gradle.parallel=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn diff --git a/ui/espresso/FragmentScenarioSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/FragmentScenarioSample/gradle/wrapper/gradle-wrapper.properties index 0b4379475..5e8f057b6 100644 --- a/ui/espresso/FragmentScenarioSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/FragmentScenarioSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 2a73f596d..eb8199601 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -17,13 +17,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,15 +34,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties index 4bf0df09b..ee90e7d54 100644 --- a/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IdlingResourceSample/gradle/wrapper/gradle-wrapper.properties @@ -19,4 +19,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index e8bb76a6c..34b4bfff2 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,14 +18,14 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IntentsAdvancedSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 7b35bc9b4..6dda0aeb9 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +18,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - androidxCoreVersion = "1.2.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + androidxCoreVersion = "1.6.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" @@ -33,5 +34,5 @@ ext { espressoVersion = "3.5.0-alpha01" extJUnitVersion = "1.1.4-alpha01" extTruthVersion = "1.5.0-alpha01" - robolectricVersion = "4.5.1" + robolectricVersion = "4.6.1" } diff --git a/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties index a79ffaef8..f487f9108 100644 --- a/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/IntentsBasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index d36df84fa..6ec6532db 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -17,13 +17,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,8 +34,8 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } @@ -43,8 +44,8 @@ task clean(type: Delete) { } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties index ea86e4ef7..e42f87aff 100644 --- a/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/MultiProcessSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index c0f4cd333..4c0902da4 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +18,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties index 46a5d120f..27604293b 100644 --- a/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/MultiWindowSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index 0c98ccb6f..b8f932bde 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -17,13 +17,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,16 +34,16 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - androidxRecyclerVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + androidxRecyclerVersion = "1.2.1" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties index 83b3aa658..6b167a346 100644 --- a/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/RecyclerViewSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index a1efc28a0..08e62a0ca 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,15 +18,15 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/espresso/WebBasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index b2129b718..fdcb8469d 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -1,28 +1,29 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" } } allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" - guavaVersion = "29.0-android" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" + guavaVersion = "30.1.1-android" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" diff --git a/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties b/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/ui/uiautomator/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicSample-kotlinApp/build.gradle b/unit/BasicSample-kotlinApp/build.gradle index 24f00833b..16ab9a81b 100644 --- a/unit/BasicSample-kotlinApp/build.gradle +++ b/unit/BasicSample-kotlinApp/build.gradle @@ -3,8 +3,8 @@ buildscript { kotlinVersion = '1.3.61' } repositories { - jcenter() google() + mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.5.2' @@ -14,7 +14,7 @@ buildscript { allprojects { repositories { - jcenter() google() + mavenCentral() } } diff --git a/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties b/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicSample-kotlinApp/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicSample/app/build.gradle b/unit/BasicSample/app/build.gradle index d0926a3d4..68bd91064 100644 --- a/unit/BasicSample/app/build.gradle +++ b/unit/BasicSample/app/build.gradle @@ -32,6 +32,6 @@ android { dependencies { // Unit testing dependencies. - testCompile 'junit:junit:' + rootProject.junitVersion; - testCompile 'org.mockito:mockito-core:' + rootProject.mockitoVersion; + testImplementation 'junit:junit:' + rootProject.junitVersion; + testImplementation 'org.mockito:mockito-core:' + rootProject.mockitoVersion; } diff --git a/unit/BasicSample/build.gradle b/unit/BasicSample/build.gradle index 107d55f04..31e1ea606 100644 --- a/unit/BasicSample/build.gradle +++ b/unit/BasicSample/build.gradle @@ -16,13 +16,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -32,13 +33,13 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" + buildToolsVersion = "31.0.0" junitVersion = "4.12" mockitoVersion = "1.10.19" } diff --git a/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties b/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties index 50ca1a56b..3e225375a 100644 --- a/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicSample/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index a6fba2213..d89482b51 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.agpVersion = "7.0.2" repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.1' + classpath "com.android.tools.build:gradle:$agpVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -17,17 +18,17 @@ buildscript { allprojects { repositories { // Insert local test repo here - jcenter() google() + mavenCentral() } } ext { - buildToolsVersion = "30.0.2" - androidxAnnotationVersion = "1.1.0" + buildToolsVersion = "31.0.0" + androidxAnnotationVersion = "1.2.0" coreVersion = "1.4.1-alpha01" extJUnitVersion = "1.1.4-alpha01" runnerVersion = "1.4.1-alpha01" hamcrestVersion = "1.3" - truthVersion = "1.0.1" + truthVersion = "1.1.3" } diff --git a/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties b/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties index 5b5d0bbcc..e2bfe2e4b 100644 --- a/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties +++ b/unit/BasicUnitAndroidTest/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/update_versions.sh b/update_versions.sh index 991c24924..47aeadd16 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -8,21 +8,25 @@ set -ex # Exit immediately if a command exits with a non-zero status. #repourl="file:\/\/\/~\/test_repos\/1.4.1-alpha01\/m2repository" #repourl="https:\/\/oss.sonatype.org\/content\/repositories\/orgrobolectric-1216" #repourl="http:\/\/localhost:1480" -buildToolsVersion="30.0.2" +buildToolsVersion="31.0.0" +agpVersion="7.0.2" +kotlinVersion="1.4.31" compileSdkVersion="30" targetSdkVersion="30" -androidxAnnotationVersion="1.1.0" -androidxCoreVersion="1.2.0" -androidxRecyclerVersion="1.1.0" -guavaVersion="29.0-android" -truthVersion="1.0.1" +androidxAnnotationVersion="1.2.0" +androidxCompatVersion="1.3.1" +androidxCoreVersion="1.6.0" +androidxFragmentVersion="1.3.6" +androidxRecyclerVersion="1.2.1" +guavaVersion="30.1.1-android" +truthVersion="1.1.3" runnerVersion="1.4.1-alpha01" rulesVersion="1.4.1-alpha01" coreVersion="1.4.1-alpha01" extJUnitVersion="1.1.4-alpha01" extTruthVersion="1.5.0-alpha01" espressoVersion="3.5.0-alpha01" -robolectricVersion="4.5.1" +robolectricVersion="4.6.1" uiAutomatorVersion="2.2.0" for p in $(cat projects.conf); do @@ -33,15 +37,19 @@ for p in $(cat projects.conf); do pushd $p > /dev/null # Silent pushd # Replace versions + sed -i "s/buildToolsVersion = \".*\"/buildToolsVersion = \"$buildToolsVersion\"/" build.gradle + sed -i "s/agpVersion = \".*\"/agpVersion = \"$agpVersion\"/" build.gradle + sed -i "s/kotlinVersion = \".*\"/kotlinVersion = \"$kotlinVersion\"/" build.gradle sed -i "s/coreVersion = \".*\"/coreVersion = \"$coreVersion\"/" build.gradle sed -i "s/extJUnitVersion = \".*\"/extJUnitVersion = \"$extJUnitVersion\"/" build.gradle sed -i "s/extTruthVersion = \".*\"/extTruthVersion = \"$extTruthVersion\"/" build.gradle sed -i "s/runnerVersion = \".*\"/runnerVersion = \"$runnerVersion\"/" build.gradle sed -i "s/rulesVersion = \".*\"/rulesVersion = \"$rulesVersion\"/" build.gradle sed -i "s/espressoVersion = \".*\"/espressoVersion = \"$espressoVersion\"/" build.gradle - sed -i "s/buildToolsVersion = \".*\"/buildToolsVersion = \"$buildToolsVersion\"/" build.gradle sed -i "s/androidxAnnotationVersion = \".*\"/androidxAnnotationVersion = \"$androidxAnnotationVersion\"/" build.gradle + sed -i "s/androidxCompatVersion = \".*\"/androidxCompatVersion = \"$androidxCompatVersion\"/" build.gradle sed -i "s/androidxCoreVersion = \".*\"/androidxCoreVersion = \"$androidxCoreVersion\"/" build.gradle + sed -i "s/androidxFragmentVersion = \".*\"/androidxFragmentVersion = \"$androidxFragmentVersion\"/" build.gradle sed -i "s/androidxRecyclerVersion = \".*\"/androidxRecyclerVersion = \"$androidxRecyclerVersion\"/" build.gradle sed -i "s/guavaVersion = \".*\"/guavaVersion = \"$guavaVersion\"/" build.gradle sed -i "s/truthVersion = \".*\"/truthVersion = \"$truthVersion\"/" build.gradle @@ -51,7 +59,7 @@ for p in $(cat projects.conf); do sed -i "s/robolectricVersion = \".*\"/robolectricVersion = \"$robolectricVersion\"/" build.gradle if [ ! -z "$repourl" ] then - sed -i "s/.*jcenter()/ jcenter()\n maven {\n url \"$repourl\"\n }/" build.gradle + sed -i "s/.*google()/ google()\n maven {\n url \"$repourl\"\n }/" build.gradle fi popd > /dev/null # Silent popd done From 7f3c696defba23e79e872589d38954000d77b1ff Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Tue, 28 Sep 2021 19:22:41 -0700 Subject: [PATCH 024/109] Update to androidx.test artifacts released on 09.28.2021 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- .../AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- ui/espresso/FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 16 ++++++++-------- 18 files changed, 88 insertions(+), 88 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 79c5e2dbb..0b9f15c30 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -25,8 +25,8 @@ allprojects { ext { buildToolsVersion = "31.0.0" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 08e62a0ca..1c76e0bc6 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 08e62a0ca..1c76e0bc6 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index 34e8f698f..cdf3a47c3 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -30,9 +30,9 @@ ext { androidxAnnotationVersion = "1.2.0" robolectricVersion = "4.6.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" guavaVersion = "30.1.1-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index f28e5235f..88a454536 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -31,8 +31,8 @@ ext { robolectricVersion = "4.6.1" guavaVersion = "30.1.1-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index 7d0cc0b4a..4e52f0336 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -27,10 +27,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 772f8a2ec..8798aa10e 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 44de1873f..245819504 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -31,11 +31,11 @@ ext { androidxCoreVersion = "1.6.0" androidxCompatVersion = "1.3.1" androidxFragmentVersion = "1.3.6" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" robolectricVersion = "4.6.1" truthVersion = "1.1.3" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index eb8199601..1f79be570 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -43,8 +43,8 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 34b4bfff2..72b1831b0 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -26,9 +26,9 @@ allprojects { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 6dda0aeb9..9d4c34638 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -27,12 +27,12 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" androidxCoreVersion = "1.6.0" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" - extJUnitVersion = "1.1.4-alpha01" - extTruthVersion = "1.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" + extJUnitVersion = "1.1.4-alpha02" + extTruthVersion = "1.5.0-alpha02" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index 6ec6532db..895d37017 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -46,9 +46,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index 4c0902da4..3c22d0bbe 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -27,10 +27,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index b8f932bde..b5862b60c 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -44,9 +44,9 @@ ext { androidxAnnotationVersion = "1.2.0" androidxRecyclerVersion = "1.2.1" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 08e62a0ca..1c76e0bc6 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index fdcb8469d..15e295a93 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -24,10 +24,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" - rulesVersion = "1.4.1-alpha01" - espressoVersion = "3.5.0-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" + rulesVersion = "1.4.1-alpha02" + espressoVersion = "3.5.0-alpha02" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index d89482b51..de0d16bd7 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -26,9 +26,9 @@ allprojects { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha01" - extJUnitVersion = "1.1.4-alpha01" - runnerVersion = "1.4.1-alpha01" + coreVersion = "1.4.1-alpha02" + extJUnitVersion = "1.1.4-alpha02" + runnerVersion = "1.4.1-alpha02" hamcrestVersion = "1.3" truthVersion = "1.1.3" } diff --git a/update_versions.sh b/update_versions.sh index 47aeadd16..d218017d3 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -5,7 +5,7 @@ set -ex # Exit immediately if a command exits with a non-zero status. #repourl="" # Leave empty to be ignored -#repourl="file:\/\/\/~\/test_repos\/1.4.1-alpha01\/m2repository" +#repourl="file:\/\/\/usr\/local\/company\/home\/user\/test_repos\/1.4.1-alpha02\/m2repository" #repourl="https:\/\/oss.sonatype.org\/content\/repositories\/orgrobolectric-1216" #repourl="http:\/\/localhost:1480" buildToolsVersion="31.0.0" @@ -20,12 +20,12 @@ androidxFragmentVersion="1.3.6" androidxRecyclerVersion="1.2.1" guavaVersion="30.1.1-android" truthVersion="1.1.3" -runnerVersion="1.4.1-alpha01" -rulesVersion="1.4.1-alpha01" -coreVersion="1.4.1-alpha01" -extJUnitVersion="1.1.4-alpha01" -extTruthVersion="1.5.0-alpha01" -espressoVersion="3.5.0-alpha01" +runnerVersion="1.4.1-alpha02" +rulesVersion="1.4.1-alpha02" +coreVersion="1.4.1-alpha02" +extJUnitVersion="1.1.4-alpha02" +extTruthVersion="1.5.0-alpha02" +espressoVersion="3.5.0-alpha02" robolectricVersion="4.6.1" uiAutomatorVersion="2.2.0" @@ -59,7 +59,7 @@ for p in $(cat projects.conf); do sed -i "s/robolectricVersion = \".*\"/robolectricVersion = \"$robolectricVersion\"/" build.gradle if [ ! -z "$repourl" ] then - sed -i "s/.*google()/ google()\n maven {\n url \"$repourl\"\n }/" build.gradle + sed -i "s/.*google()/ google()\n maven {\n url \"$repourl\"\n allowInsecureProtocol=true\n }/" build.gradle fi popd > /dev/null # Silent popd done From 214b2367d97ba3334282903e580d07707d6703e1 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 09:46:11 -0700 Subject: [PATCH 025/109] WIP screenshot sample --- projects.conf | 1 + ui/espresso/ScreenshotSample/.gitignore | 15 ++ ui/espresso/ScreenshotSample/app/.gitignore | 1 + ui/espresso/ScreenshotSample/app/build.gradle | 49 +++++ .../ScreenshotSample/app/proguard-rules.pro | 21 ++ .../screenshotsample/ScreenshotJavaTest.java | 63 ++++++ .../screenshotsample/ScreenshotTest.kt | 69 +++++++ .../app/src/main/AndroidManifest.xml | 22 +++ .../espresso/screenshotsample/MainActivity.kt | 14 ++ .../drawable-v24/ic_launcher_foreground.xml | 30 +++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 18 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 18 ++ .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 18 ++ ui/espresso/ScreenshotSample/build.gradle | 24 +++ .../ScreenshotSample/gradle.properties | 21 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + ui/espresso/ScreenshotSample/gradlew | 185 ++++++++++++++++++ ui/espresso/ScreenshotSample/gradlew.bat | 89 +++++++++ ui/espresso/ScreenshotSample/settings.gradle | 13 ++ 35 files changed, 870 insertions(+) create mode 100644 ui/espresso/ScreenshotSample/.gitignore create mode 100644 ui/espresso/ScreenshotSample/app/.gitignore create mode 100644 ui/espresso/ScreenshotSample/app/build.gradle create mode 100644 ui/espresso/ScreenshotSample/app/proguard-rules.pro create mode 100644 ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotJavaTest.java create mode 100644 ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt create mode 100644 ui/espresso/ScreenshotSample/app/src/main/AndroidManifest.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/layout/activity_main.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/values-night/themes.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/values/colors.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/values/strings.xml create mode 100644 ui/espresso/ScreenshotSample/app/src/main/res/values/themes.xml create mode 100644 ui/espresso/ScreenshotSample/build.gradle create mode 100644 ui/espresso/ScreenshotSample/gradle.properties create mode 100644 ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.jar create mode 100644 ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.properties create mode 100755 ui/espresso/ScreenshotSample/gradlew create mode 100644 ui/espresso/ScreenshotSample/gradlew.bat create mode 100644 ui/espresso/ScreenshotSample/settings.gradle diff --git a/projects.conf b/projects.conf index 01e271ab1..98f71f9ec 100644 --- a/projects.conf +++ b/projects.conf @@ -12,6 +12,7 @@ ui/espresso/IntentsBasicSample ui/espresso/MultiWindowSample ui/espresso/MultiProcessSample ui/espresso/RecyclerViewSample +ui/espresso/ScreenshotSample ui/espresso/WebBasicSample ui/uiautomator/BasicSample unit/BasicSample diff --git a/ui/espresso/ScreenshotSample/.gitignore b/ui/espresso/ScreenshotSample/.gitignore new file mode 100644 index 000000000..aa724b770 --- /dev/null +++ b/ui/espresso/ScreenshotSample/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/ui/espresso/ScreenshotSample/app/.gitignore b/ui/espresso/ScreenshotSample/app/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle new file mode 100644 index 000000000..bf9e44644 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -0,0 +1,49 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' +} +apply plugin: 'kotlin-android' + +android { + compileSdk 31 + + defaultConfig { + applicationId "com.example.android.testing.espresso.screenshotsample" + minSdk 18 + targetSdk 31 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + testInstrumentationRunnerArguments useTestStorageService: 'true' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.6.0' + implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.4-alpha03' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha03' + androidTestImplementation 'androidx.test.espresso:espresso-screenshot:3.5.0-alpha03' + androidTestUtil 'androidx.test.services:test-services:1.4.1-alpha03' + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +} diff --git a/ui/espresso/ScreenshotSample/app/proguard-rules.pro b/ui/espresso/ScreenshotSample/app/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotJavaTest.java b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotJavaTest.java new file mode 100644 index 000000000..7db4217b9 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotJavaTest.java @@ -0,0 +1,63 @@ +package com.example.android.testing.espresso.screenshotsample; + +import static androidx.test.core.app.DeviceCapture.takeScreenshot; +import static androidx.test.core.graphics.BitmapStorage.writeToTestStorage; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.matcher.ViewMatchers.isRoot; +import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static androidx.test.espresso.screenshot.ViewInteractionCapture.captureToBitmap; + +import android.view.View; + +import androidx.concurrent.futures.ResolvableFuture; +import androidx.test.core.app.ActivityScenario; +import androidx.test.core.view.ViewCapture; +import androidx.test.ext.junit.rules.ActivityScenarioRule; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; +import org.junit.runner.RunWith; + +import java.io.IOException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +/** + * Equivalent of {@link ScreenshotTest} for java. + */ +@RunWith(AndroidJUnit4.class) +public class ScreenshotJavaTest { + // a handy JUnit rule that stores the method name + @Rule + public TestName nameRule = new TestName(); + + @Rule + public ActivityScenarioRule activityScenarioRule = + new ActivityScenarioRule<>(MainActivity.class); + + /** + * Captures and saves an image of the entire {@link MainActivity} contents. + */ + @Test + public void saveActivityBitmap() throws IOException { + writeToTestStorage(captureToBitmap(onView(isRoot())), nameRule.getMethodName()); + } + + /** + * Captures and saves an image of the 'Hello world' view. + */ + @Test + public void saveViewBitmap() throws IOException { + writeToTestStorage(captureToBitmap(onView(withText("Hello World!"))), nameRule.getMethodName()); + } + + /** + * Captures and saves an image of the entire device screen to storage. + */ + @Test + public void saveDeviceScreenBitmap() throws IOException { + writeToTestStorage(takeScreenshot(), nameRule.getMethodName()); + } +} diff --git a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt new file mode 100644 index 000000000..5ea2030df --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt @@ -0,0 +1,69 @@ +package com.example.android.testing.espresso.screenshotsample + + +//import androidx.test.core.view.captureToBitmap + +import androidx.test.core.app.takeScreenshot +import androidx.test.core.graphics.writeToTestStorage +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.matcher.ViewMatchers +import androidx.test.espresso.matcher.ViewMatchers.isRoot +import androidx.test.espresso.matcher.ViewMatchers.withText +import androidx.test.espresso.screenshot.captureToBitmap +import androidx.test.ext.junit.rules.activityScenarioRule +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TestName +import org.junit.runner.RunWith +import java.io.IOException + +/* + * Illustrates usage of APIs to capture a bitmap from view and saving it to test storage. + */ +@RunWith(AndroidJUnit4::class) +class ScreenshotTest { + + // a handy JUnit rule that stores the method name, so it can be used to generate unique + // screenshot files per test method + @get:Rule + var nameRule = TestName() + + @get:Rule + val activityScenarioRule = activityScenarioRule() + + + /** + * Captures and saves an image of the entire [MainActivity] contents. + */ + @Test + @Throws(IOException::class) + fun saveActivityBitmap() { + onView(isRoot()) + .captureToBitmap() + .writeToTestStorage(nameRule.methodName) + } + + /** + * Captures and saves an image of the 'Hello world' view. + */ + @Test + @Throws(IOException::class) + fun saveViewBitmap() { + onView(withText("Hello World!")) + .captureToBitmap() + .writeToTestStorage(nameRule.methodName) + } + + /** + * Captures and saves an image of the entire device screen to storage. + */ + @Test + @Throws(IOException::class) + fun saveDeviceScreenBitmap() { + takeScreenshot() + .writeToTestStorage(nameRule.methodName) + } +} + + diff --git a/ui/espresso/ScreenshotSample/app/src/main/AndroidManifest.xml b/ui/espresso/ScreenshotSample/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..4696f4353 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt b/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt new file mode 100644 index 000000000..990363c57 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt @@ -0,0 +1,14 @@ +package com.example.android.testing.espresso.screenshotsample + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle + +/** + * A simple [Activity], autogenerated via Studio's 'Empty Activity' wizard. + */ +class MainActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + } +} \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/ui/espresso/ScreenshotSample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 000000000..966abaff2 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/drawable/ic_launcher_background.xml b/ui/espresso/ScreenshotSample/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 000000000..61bb79edb --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/layout/activity_main.xml b/ui/espresso/ScreenshotSample/app/src/main/res/layout/activity_main.xml new file mode 100644 index 000000000..39c94590a --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..03eed2533 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..03eed2533 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/ui/espresso/ScreenshotSample/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/values-night/themes.xml b/ui/espresso/ScreenshotSample/app/src/main/res/values-night/themes.xml new file mode 100644 index 000000000..63db09579 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/values-night/themes.xml @@ -0,0 +1,18 @@ + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/values/colors.xml b/ui/espresso/ScreenshotSample/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..09837df62 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/values/strings.xml b/ui/espresso/ScreenshotSample/app/src/main/res/values/strings.xml new file mode 100644 index 000000000..18ad9a3ec --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + ScreenshotSample + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/app/src/main/res/values/themes.xml b/ui/espresso/ScreenshotSample/app/src/main/res/values/themes.xml new file mode 100644 index 000000000..1cb135be5 --- /dev/null +++ b/ui/espresso/ScreenshotSample/app/src/main/res/values/themes.xml @@ -0,0 +1,18 @@ + + + + \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/build.gradle b/ui/espresso/ScreenshotSample/build.gradle new file mode 100644 index 000000000..2f55f940c --- /dev/null +++ b/ui/espresso/ScreenshotSample/build.gradle @@ -0,0 +1,24 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = '1.5.31' + repositories { + maven { + url "file:///Users/brettchabot/test-repos/m2repository" + allowInsecureProtocol = true + } + google() + mavenCentral() + } + dependencies { + classpath "com.android.tools.build:gradle:7.1.0-alpha13" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/gradle.properties b/ui/espresso/ScreenshotSample/gradle.properties new file mode 100644 index 000000000..98bed167d --- /dev/null +++ b/ui/espresso/ScreenshotSample/gradle.properties @@ -0,0 +1,21 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official \ No newline at end of file diff --git a/ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.jar b/ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.properties b/ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..06d431cbb --- /dev/null +++ b/ui/espresso/ScreenshotSample/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Sep 30 12:30:46 PDT 2021 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/ui/espresso/ScreenshotSample/gradlew b/ui/espresso/ScreenshotSample/gradlew new file mode 100755 index 000000000..4f906e0c8 --- /dev/null +++ b/ui/espresso/ScreenshotSample/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/ui/espresso/ScreenshotSample/gradlew.bat b/ui/espresso/ScreenshotSample/gradlew.bat new file mode 100644 index 000000000..ac1b06f93 --- /dev/null +++ b/ui/espresso/ScreenshotSample/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/ui/espresso/ScreenshotSample/settings.gradle b/ui/espresso/ScreenshotSample/settings.gradle new file mode 100644 index 000000000..28cecfc1d --- /dev/null +++ b/ui/espresso/ScreenshotSample/settings.gradle @@ -0,0 +1,13 @@ +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + maven { + url "file:///Users/brettchabot/test-repos/m2repository" + allowInsecureProtocol = true + } + google() + mavenCentral() + } +} +rootProject.name = "ScreenshotSample" +include ':app' From f7ee5f46a4aad0f2b6e1e2dfccaf5046107fff76 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 11:58:44 -0700 Subject: [PATCH 026/109] Introduce variables to store versions --- ui/espresso/ScreenshotSample/app/build.gradle | 16 ++++++------ ui/espresso/ScreenshotSample/build.gradle | 25 ++++++++++++------- ui/espresso/ScreenshotSample/settings.gradle | 4 --- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle index bf9e44644..5bb39097e 100644 --- a/ui/espresso/ScreenshotSample/app/build.gradle +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -15,7 +15,6 @@ android { versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - testInstrumentationRunnerArguments useTestStorageService: 'true' } @@ -36,14 +35,13 @@ android { dependencies { - implementation 'androidx.core:core-ktx:1.6.0' - implementation 'androidx.appcompat:appcompat:1.3.1' - implementation 'com.google.android.material:material:1.4.0' + implementation "androidx.core:core-ktx:$androidxCoreVersion" + implementation "androidx.appcompat:appcompat:$androidxCompatVersion" + implementation "com.google.android.material:material:1.4.0" implementation 'androidx.constraintlayout:constraintlayout:2.1.1' testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.4-alpha03' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha03' - androidTestImplementation 'androidx.test.espresso:espresso-screenshot:3.5.0-alpha03' - androidTestUtil 'androidx.test.services:test-services:1.4.1-alpha03' - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + androidTestImplementation "androidx.test.ext:junit-ktx:$extJUnitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" + androidTestUtil "androidx.test.services:test-services:$servicesVersion" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" } diff --git a/ui/espresso/ScreenshotSample/build.gradle b/ui/espresso/ScreenshotSample/build.gradle index 2f55f940c..666348460 100644 --- a/ui/espresso/ScreenshotSample/build.gradle +++ b/ui/espresso/ScreenshotSample/build.gradle @@ -1,18 +1,25 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.5.31' + ext.agpVersion = "7.1.0-alpha13" + ext.kotlinVersion = '1.5.31' + ext.androidxCoreVersion = "1.6.0" + ext.buildToolsVersion = "31.0.0" + ext.androidxCompatVersion = "1.3.1" + ext.coreVersion = "1.4.1-alpha02" + ext.extJUnitVersion = "1.1.4-alpha02" + ext.runnerVersion = "1.4.1-alpha02" + ext.rulesVersion = "1.4.1-alpha02" + ext.espressoVersion = "3.5.0-alpha02" + ext.servicesVersion = "1.4.1-alpha02" + ext.truthVersion = "1.1.3" + repositories { - maven { - url "file:///Users/brettchabot/test-repos/m2repository" - allowInsecureProtocol = true - } google() mavenCentral() } dependencies { - classpath "com.android.tools.build:gradle:7.1.0-alpha13" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "com.android.tools.build:gradle:$agpVersion" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -21,4 +28,4 @@ buildscript { task clean(type: Delete) { delete rootProject.buildDir -} \ No newline at end of file +} diff --git a/ui/espresso/ScreenshotSample/settings.gradle b/ui/espresso/ScreenshotSample/settings.gradle index 28cecfc1d..3822a81e2 100644 --- a/ui/espresso/ScreenshotSample/settings.gradle +++ b/ui/espresso/ScreenshotSample/settings.gradle @@ -1,10 +1,6 @@ dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { - maven { - url "file:///Users/brettchabot/test-repos/m2repository" - allowInsecureProtocol = true - } google() mavenCentral() } From 2587afb05d970c6013c6d7aebf819d0e6e852c8d Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 13:12:38 -0700 Subject: [PATCH 027/109] Fix ws --- .../android/testing/espresso/screenshotsample/ScreenshotTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt index 5ea2030df..9bb76288d 100644 --- a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt +++ b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt @@ -32,7 +32,6 @@ class ScreenshotTest { @get:Rule val activityScenarioRule = activityScenarioRule() - /** * Captures and saves an image of the entire [MainActivity] contents. */ From 9dbc3cd2d929c659c546233a9b97b451d167b12a Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 14:07:59 -0700 Subject: [PATCH 028/109] Update to androidx.test versions released on Oct 4, 2021 --- integration/ServiceTestRuleSample/build.gradle | 8 ++++---- runner/AndroidJunitRunnerSample/build.gradle | 10 +++++----- .../AndroidTestOrchestratorSample/build.gradle | 10 +++++----- ui/espresso/AccessibilitySample/build.gradle | 8 ++++---- ui/espresso/BasicSample/build.gradle | 8 ++++---- ui/espresso/CustomMatcherSample/build.gradle | 10 +++++----- ui/espresso/DataAdapterSample/build.gradle | 8 ++++---- .../FragmentScenarioSample/build.gradle | 10 +++++----- ui/espresso/IdlingResourceSample/build.gradle | 8 ++++---- ui/espresso/IntentsAdvancedSample/build.gradle | 10 +++++----- ui/espresso/IntentsBasicSample/build.gradle | 14 +++++++------- ui/espresso/MultiProcessSample/build.gradle | 10 +++++----- ui/espresso/MultiWindowSample/build.gradle | 10 +++++----- ui/espresso/RecyclerViewSample/build.gradle | 10 +++++----- ui/espresso/ScreenshotSample/build.gradle | 12 ++++++------ ui/espresso/WebBasicSample/build.gradle | 10 +++++----- ui/uiautomator/BasicSample/build.gradle | 10 +++++----- unit/BasicUnitAndroidTest/build.gradle | 6 +++--- update_versions.sh | 18 +++++++++++------- 19 files changed, 97 insertions(+), 93 deletions(-) diff --git a/integration/ServiceTestRuleSample/build.gradle b/integration/ServiceTestRuleSample/build.gradle index 0b9f15c30..61cc2701c 100644 --- a/integration/ServiceTestRuleSample/build.gradle +++ b/integration/ServiceTestRuleSample/build.gradle @@ -25,8 +25,8 @@ allprojects { ext { buildToolsVersion = "31.0.0" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" } diff --git a/runner/AndroidJunitRunnerSample/build.gradle b/runner/AndroidJunitRunnerSample/build.gradle index 1c76e0bc6..8006df0c8 100644 --- a/runner/AndroidJunitRunnerSample/build.gradle +++ b/runner/AndroidJunitRunnerSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/runner/AndroidTestOrchestratorSample/build.gradle b/runner/AndroidTestOrchestratorSample/build.gradle index 1c76e0bc6..8006df0c8 100644 --- a/runner/AndroidTestOrchestratorSample/build.gradle +++ b/runner/AndroidTestOrchestratorSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/AccessibilitySample/build.gradle b/ui/espresso/AccessibilitySample/build.gradle index cdf3a47c3..15b455418 100644 --- a/ui/espresso/AccessibilitySample/build.gradle +++ b/ui/espresso/AccessibilitySample/build.gradle @@ -30,9 +30,9 @@ ext { androidxAnnotationVersion = "1.2.0" robolectricVersion = "4.6.1" extTruthVersion = '1.3.1-alpha02' - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" guavaVersion = "30.1.1-android" } diff --git a/ui/espresso/BasicSample/build.gradle b/ui/espresso/BasicSample/build.gradle index 88a454536..f211f48e2 100644 --- a/ui/espresso/BasicSample/build.gradle +++ b/ui/espresso/BasicSample/build.gradle @@ -31,8 +31,8 @@ ext { robolectricVersion = "4.6.1" guavaVersion = "30.1.1-android" extTruthVersion = '1.3.0-rc01' - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/CustomMatcherSample/build.gradle b/ui/espresso/CustomMatcherSample/build.gradle index 4e52f0336..ee03127fe 100644 --- a/ui/espresso/CustomMatcherSample/build.gradle +++ b/ui/espresso/CustomMatcherSample/build.gradle @@ -27,10 +27,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/DataAdapterSample/build.gradle b/ui/espresso/DataAdapterSample/build.gradle index 8798aa10e..cee8ba697 100644 --- a/ui/espresso/DataAdapterSample/build.gradle +++ b/ui/espresso/DataAdapterSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/FragmentScenarioSample/build.gradle b/ui/espresso/FragmentScenarioSample/build.gradle index 245819504..3f58e67be 100644 --- a/ui/espresso/FragmentScenarioSample/build.gradle +++ b/ui/espresso/FragmentScenarioSample/build.gradle @@ -31,11 +31,11 @@ ext { androidxCoreVersion = "1.6.0" androidxCompatVersion = "1.3.1" androidxFragmentVersion = "1.3.6" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" robolectricVersion = "4.6.1" truthVersion = "1.1.3" } diff --git a/ui/espresso/IdlingResourceSample/build.gradle b/ui/espresso/IdlingResourceSample/build.gradle index 1f79be570..e3a29a9e4 100644 --- a/ui/espresso/IdlingResourceSample/build.gradle +++ b/ui/espresso/IdlingResourceSample/build.gradle @@ -43,8 +43,8 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/IntentsAdvancedSample/build.gradle b/ui/espresso/IntentsAdvancedSample/build.gradle index 72b1831b0..9fa91c24b 100644 --- a/ui/espresso/IntentsAdvancedSample/build.gradle +++ b/ui/espresso/IntentsAdvancedSample/build.gradle @@ -26,9 +26,9 @@ allprojects { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/IntentsBasicSample/build.gradle b/ui/espresso/IntentsBasicSample/build.gradle index 9d4c34638..a07cb8189 100644 --- a/ui/espresso/IntentsBasicSample/build.gradle +++ b/ui/espresso/IntentsBasicSample/build.gradle @@ -27,12 +27,12 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" androidxCoreVersion = "1.6.0" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" - extJUnitVersion = "1.1.4-alpha02" - extTruthVersion = "1.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" + extJUnitVersion = "1.1.4-alpha03" + extTruthVersion = "1.5.0-alpha03" robolectricVersion = "4.6.1" } diff --git a/ui/espresso/MultiProcessSample/build.gradle b/ui/espresso/MultiProcessSample/build.gradle index 895d37017..9dbf9b7ba 100644 --- a/ui/espresso/MultiProcessSample/build.gradle +++ b/ui/espresso/MultiProcessSample/build.gradle @@ -46,9 +46,9 @@ task clean(type: Delete) { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/MultiWindowSample/build.gradle b/ui/espresso/MultiWindowSample/build.gradle index 3c22d0bbe..9ab44c804 100644 --- a/ui/espresso/MultiWindowSample/build.gradle +++ b/ui/espresso/MultiWindowSample/build.gradle @@ -27,10 +27,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/RecyclerViewSample/build.gradle b/ui/espresso/RecyclerViewSample/build.gradle index b5862b60c..4b08c51ca 100644 --- a/ui/espresso/RecyclerViewSample/build.gradle +++ b/ui/espresso/RecyclerViewSample/build.gradle @@ -44,9 +44,9 @@ ext { androidxAnnotationVersion = "1.2.0" androidxRecyclerVersion = "1.2.1" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/espresso/ScreenshotSample/build.gradle b/ui/espresso/ScreenshotSample/build.gradle index 666348460..d50e3a86b 100644 --- a/ui/espresso/ScreenshotSample/build.gradle +++ b/ui/espresso/ScreenshotSample/build.gradle @@ -5,12 +5,12 @@ buildscript { ext.androidxCoreVersion = "1.6.0" ext.buildToolsVersion = "31.0.0" ext.androidxCompatVersion = "1.3.1" - ext.coreVersion = "1.4.1-alpha02" - ext.extJUnitVersion = "1.1.4-alpha02" - ext.runnerVersion = "1.4.1-alpha02" - ext.rulesVersion = "1.4.1-alpha02" - ext.espressoVersion = "3.5.0-alpha02" - ext.servicesVersion = "1.4.1-alpha02" + ext.coreVersion = "1.4.1-alpha03" + ext.extJUnitVersion = "1.1.4-alpha03" + ext.runnerVersion = "1.4.1-alpha03" + ext.rulesVersion = "1.4.1-alpha03" + ext.espressoVersion = "3.5.0-alpha03" + ext.servicesVersion = "1.4.1-alpha03" ext.truthVersion = "1.1.3" repositories { diff --git a/ui/espresso/WebBasicSample/build.gradle b/ui/espresso/WebBasicSample/build.gradle index 1c76e0bc6..8006df0c8 100644 --- a/ui/espresso/WebBasicSample/build.gradle +++ b/ui/espresso/WebBasicSample/build.gradle @@ -27,9 +27,9 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" } diff --git a/ui/uiautomator/BasicSample/build.gradle b/ui/uiautomator/BasicSample/build.gradle index 15e295a93..979d6fe12 100644 --- a/ui/uiautomator/BasicSample/build.gradle +++ b/ui/uiautomator/BasicSample/build.gradle @@ -24,10 +24,10 @@ ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" guavaVersion = "30.1.1-android" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" - rulesVersion = "1.4.1-alpha02" - espressoVersion = "3.5.0-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" + rulesVersion = "1.4.1-alpha03" + espressoVersion = "3.5.0-alpha03" uiAutomatorVersion = "2.2.0" } diff --git a/unit/BasicUnitAndroidTest/build.gradle b/unit/BasicUnitAndroidTest/build.gradle index de0d16bd7..897fe9d15 100644 --- a/unit/BasicUnitAndroidTest/build.gradle +++ b/unit/BasicUnitAndroidTest/build.gradle @@ -26,9 +26,9 @@ allprojects { ext { buildToolsVersion = "31.0.0" androidxAnnotationVersion = "1.2.0" - coreVersion = "1.4.1-alpha02" - extJUnitVersion = "1.1.4-alpha02" - runnerVersion = "1.4.1-alpha02" + coreVersion = "1.4.1-alpha03" + extJUnitVersion = "1.1.4-alpha03" + runnerVersion = "1.4.1-alpha03" hamcrestVersion = "1.3" truthVersion = "1.1.3" } diff --git a/update_versions.sh b/update_versions.sh index d218017d3..a1e37f801 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -5,7 +5,7 @@ set -ex # Exit immediately if a command exits with a non-zero status. #repourl="" # Leave empty to be ignored -#repourl="file:\/\/\/usr\/local\/company\/home\/user\/test_repos\/1.4.1-alpha02\/m2repository" +#repourl="file:\/\/\/tmp\/test_repo\/m2repository" #repourl="https:\/\/oss.sonatype.org\/content\/repositories\/orgrobolectric-1216" #repourl="http:\/\/localhost:1480" buildToolsVersion="31.0.0" @@ -20,12 +20,14 @@ androidxFragmentVersion="1.3.6" androidxRecyclerVersion="1.2.1" guavaVersion="30.1.1-android" truthVersion="1.1.3" -runnerVersion="1.4.1-alpha02" -rulesVersion="1.4.1-alpha02" -coreVersion="1.4.1-alpha02" -extJUnitVersion="1.1.4-alpha02" -extTruthVersion="1.5.0-alpha02" -espressoVersion="3.5.0-alpha02" +runnerVersion="1.4.1-alpha03" +rulesVersion="1.4.1-alpha03" +servicesVersion="1.4.1-alpha03" +orchestratorVersion="1.4.1-alpha03" +coreVersion="1.4.1-alpha03" +extJUnitVersion="1.1.4-alpha03" +extTruthVersion="1.5.0-alpha03" +espressoVersion="3.5.0-alpha03" robolectricVersion="4.6.1" uiAutomatorVersion="2.2.0" @@ -45,6 +47,8 @@ for p in $(cat projects.conf); do sed -i "s/extTruthVersion = \".*\"/extTruthVersion = \"$extTruthVersion\"/" build.gradle sed -i "s/runnerVersion = \".*\"/runnerVersion = \"$runnerVersion\"/" build.gradle sed -i "s/rulesVersion = \".*\"/rulesVersion = \"$rulesVersion\"/" build.gradle + sed -i "s/servicesVersion = \".*\"/servicesVersion = \"$servicesVersion\"/" build.gradle + sed -i "s/orchestratorVersion = \".*\"/orchestratorVersion = \"$orchestratorVersion\"/" build.gradle sed -i "s/espressoVersion = \".*\"/espressoVersion = \"$espressoVersion\"/" build.gradle sed -i "s/androidxAnnotationVersion = \".*\"/androidxAnnotationVersion = \"$androidxAnnotationVersion\"/" build.gradle sed -i "s/androidxCompatVersion = \".*\"/androidxCompatVersion = \"$androidxCompatVersion\"/" build.gradle From 91c8b6c58bcee23e9558cad6d9420ddc59d17988 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 14:20:16 -0700 Subject: [PATCH 029/109] Address review comments --- ui/espresso/ScreenshotSample/.gitignore | 1 + ui/espresso/ScreenshotSample/app/proguard-rules.pro | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/espresso/ScreenshotSample/.gitignore b/ui/espresso/ScreenshotSample/.gitignore index aa724b770..951e883e1 100644 --- a/ui/espresso/ScreenshotSample/.gitignore +++ b/ui/espresso/ScreenshotSample/.gitignore @@ -13,3 +13,4 @@ .externalNativeBuild .cxx local.properties + diff --git a/ui/espresso/ScreenshotSample/app/proguard-rules.pro b/ui/espresso/ScreenshotSample/app/proguard-rules.pro index 481bb4348..cf504086a 100644 --- a/ui/espresso/ScreenshotSample/app/proguard-rules.pro +++ b/ui/espresso/ScreenshotSample/app/proguard-rules.pro @@ -18,4 +18,5 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile + From f16309a5385a57712899101d2973bb7363b92c04 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 14:26:11 -0700 Subject: [PATCH 030/109] Add ScreenshotSample entry to main README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a5390493b..09c9728d1 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ A collection of samples demonstrating different frameworks and techniques for au **[RecyclerViewSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/RecyclerViewSample)** - RecyclerView actions for Espresso +**[ScreenshotSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/ScreenshotSample)** - Screenshot capturing and saving using Espresso and androidx.test.core APIs + **[WebBasicSample](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/WebBasicSample)** - Use Espresso-web to interact with WebViews **[BasicSampleBundled](https://github.com/googlesamples/android-testing/blob/main/ui/espresso/BasicSampleBundled)** - Basic sample for Eclipse and other IDEs From ef6881ad671424cf6dfda17d3db8faeeb7e2c5da Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 16:53:10 -0700 Subject: [PATCH 031/109] reorganize imports --- .../espresso/screenshotsample/ScreenshotTest.kt | 13 +++++++------ .../espresso/screenshotsample/MainActivity.kt | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt index 9bb76288d..0b6c024bf 100644 --- a/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt +++ b/ui/espresso/ScreenshotSample/app/src/androidTest/java/com/example/android/testing/espresso/screenshotsample/ScreenshotTest.kt @@ -1,12 +1,8 @@ package com.example.android.testing.espresso.screenshotsample - -//import androidx.test.core.view.captureToBitmap - import androidx.test.core.app.takeScreenshot import androidx.test.core.graphics.writeToTestStorage import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.isRoot import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.espresso.screenshot.captureToBitmap @@ -20,6 +16,13 @@ import java.io.IOException /* * Illustrates usage of APIs to capture a bitmap from view and saving it to test storage. + * + * The exact path will vary based on android API version, but the saved files can be retrieved via + * Device File Explorer at a path like + * /storage/emulated/0/googletest/test_outputfiles + * + * A future Android Gradle Plugin version should auto-retrieve these files from the device onto the + * host. */ @RunWith(AndroidJUnit4::class) class ScreenshotTest { @@ -64,5 +67,3 @@ class ScreenshotTest { .writeToTestStorage(nameRule.methodName) } } - - diff --git a/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt b/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt index 990363c57..9048994a3 100644 --- a/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt +++ b/ui/espresso/ScreenshotSample/app/src/main/java/com/example/android/testing/espresso/screenshotsample/MainActivity.kt @@ -11,4 +11,4 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } -} \ No newline at end of file +} From f32d2dfd8cf7c794a4a62dd52ae4fb8a5f6c8c81 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Mon, 4 Oct 2021 17:24:26 -0700 Subject: [PATCH 032/109] WIP: try out gradle managed devices + automated test device image --- ui/espresso/ScreenshotSample/app/build.gradle | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle index 5bb39097e..66b9b7942 100644 --- a/ui/espresso/ScreenshotSample/app/build.gradle +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -31,6 +31,17 @@ android { kotlinOptions { jvmTarget = '1.8' } + testOptions { + devices { + nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { + // Use device profiles you typically see in Android Studio + device = "Nexus One" + apiLevel = 30 + systemImageSource = "aosp-atd" + abi = "x86" + } + } + } } dependencies { From 2eabfdb347180fb8dc9ff85bc27fa4351641c286 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Tue, 5 Oct 2021 10:24:07 -0700 Subject: [PATCH 033/109] Add comments --- ui/espresso/ScreenshotSample/app/build.gradle | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle index 66b9b7942..8c288edd7 100644 --- a/ui/espresso/ScreenshotSample/app/build.gradle +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -33,10 +33,16 @@ android { } testOptions { devices { + // run with ../gradlew -Pandroid.sdk.channel=3 -Pandroid.experimental.androidTest.useUnifiedTestPlatform=true nexusOneApi30DebugAndroidTest nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { - // Use device profiles you typically see in Android Studio + // A lower resolution device is used here for better performance, although using + // an ATD image will greatly reduce the performance impact of emulating higher + // resolution screens device = "Nexus One" apiLevel = 30 + // The AOSP ATD image is used so emulator consumes less resources + // The androidx.test screenshot APIs will automatically enable hardware rendering + // to take a screenshot systemImageSource = "aosp-atd" abi = "x86" } From f2d1a49fda151eee4c0076153299c62bb7bdc58a Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Wed, 6 Oct 2021 16:22:47 -0700 Subject: [PATCH 034/109] Address code review comments --- runner/AndroidJunitRunnerSample/app/build.gradle | 16 ++++++++++++++++ .../CalculatorInstrumentationTest.java | 1 + 2 files changed, 17 insertions(+) diff --git a/runner/AndroidJunitRunnerSample/app/build.gradle b/runner/AndroidJunitRunnerSample/app/build.gradle index 5d7057c1b..6e994ce40 100644 --- a/runner/AndroidJunitRunnerSample/app/build.gradle +++ b/runner/AndroidJunitRunnerSample/app/build.gradle @@ -27,6 +27,22 @@ android { useLibrary 'android.test.base' useLibrary 'android.test.mock' + testOptions { + devices { + // run with ../gradlew -Pandroid.sdk.channel=3 nexusOneApi30DebugAndroidTest + nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { + // A lower resolution device is used here for better emulator performance + device = "Nexus One" + apiLevel = 30 + // Also use the AOSP ATD image for better emulator performance + // The androidx.test screenshot APIs will automatically enable hardware rendering + // to take a screenshot + systemImageSource = "aosp-atd" + abi = "x86" + } + } + } + } dependencies { diff --git a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java index 8cdde1d39..23d0380f6 100644 --- a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java +++ b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java @@ -18,6 +18,7 @@ import junit.framework.TestSuite; + import org.junit.Before; import org.junit.Test; import org.junit.internal.builders.AllDefaultPossibilitiesBuilder; From 7a77c10a28ca27c86f541a31b2723d4c0b0d4d68 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Wed, 6 Oct 2021 16:29:43 -0700 Subject: [PATCH 035/109] Address code review comments --- ui/espresso/ScreenshotSample/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle index 8c288edd7..baee66cac 100644 --- a/ui/espresso/ScreenshotSample/app/build.gradle +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -33,7 +33,7 @@ android { } testOptions { devices { - // run with ../gradlew -Pandroid.sdk.channel=3 -Pandroid.experimental.androidTest.useUnifiedTestPlatform=true nexusOneApi30DebugAndroidTest + // run with ../gradlew -Pandroid.sdk.channel=3 nexusOneApi30DebugAndroidTest nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { // A lower resolution device is used here for better performance, although using // an ATD image will greatly reduce the performance impact of emulating higher From 80120fcc1c7143dfb0baf6bfd607450e2ac4922d Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Wed, 6 Oct 2021 16:33:19 -0700 Subject: [PATCH 036/109] put changes in the right gradle file --- runner/AndroidJunitRunnerSample/app/build.gradle | 16 ---------------- ui/espresso/ScreenshotSample/app/build.gradle | 6 ++---- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/runner/AndroidJunitRunnerSample/app/build.gradle b/runner/AndroidJunitRunnerSample/app/build.gradle index 6e994ce40..5d7057c1b 100644 --- a/runner/AndroidJunitRunnerSample/app/build.gradle +++ b/runner/AndroidJunitRunnerSample/app/build.gradle @@ -27,22 +27,6 @@ android { useLibrary 'android.test.base' useLibrary 'android.test.mock' - testOptions { - devices { - // run with ../gradlew -Pandroid.sdk.channel=3 nexusOneApi30DebugAndroidTest - nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { - // A lower resolution device is used here for better emulator performance - device = "Nexus One" - apiLevel = 30 - // Also use the AOSP ATD image for better emulator performance - // The androidx.test screenshot APIs will automatically enable hardware rendering - // to take a screenshot - systemImageSource = "aosp-atd" - abi = "x86" - } - } - } - } dependencies { diff --git a/ui/espresso/ScreenshotSample/app/build.gradle b/ui/espresso/ScreenshotSample/app/build.gradle index baee66cac..77ab7e26a 100644 --- a/ui/espresso/ScreenshotSample/app/build.gradle +++ b/ui/espresso/ScreenshotSample/app/build.gradle @@ -35,12 +35,10 @@ android { devices { // run with ../gradlew -Pandroid.sdk.channel=3 nexusOneApi30DebugAndroidTest nexusOneApi30 (com.android.build.api.dsl.ManagedVirtualDevice) { - // A lower resolution device is used here for better performance, although using - // an ATD image will greatly reduce the performance impact of emulating higher - // resolution screens + // A lower resolution device is used here for better emulator performance device = "Nexus One" apiLevel = 30 - // The AOSP ATD image is used so emulator consumes less resources + // Also use the AOSP ATD image for better emulator performance // The androidx.test screenshot APIs will automatically enable hardware rendering // to take a screenshot systemImageSource = "aosp-atd" From 0e7dd4dd422a2059c7e0af76ef4e686ac7b3e749 Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Wed, 6 Oct 2021 16:34:15 -0700 Subject: [PATCH 037/109] fix ws --- .../androidjunitrunnersample/CalculatorInstrumentationTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java index 23d0380f6..8cdde1d39 100644 --- a/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java +++ b/runner/AndroidJunitRunnerSample/app/src/androidTest/java/com/example/android/testing/androidjunitrunnersample/CalculatorInstrumentationTest.java @@ -18,7 +18,6 @@ import junit.framework.TestSuite; - import org.junit.Before; import org.junit.Test; import org.junit.internal.builders.AllDefaultPossibilitiesBuilder; From eb90ed5fb6873c843da4487912cf1af1dedbd8e2 Mon Sep 17 00:00:00 2001 From: Yuki Hamada Date: Thu, 14 Oct 2021 16:12:16 -0700 Subject: [PATCH 038/109] Add an example project that demonstrates how to use Jacoco test coverage with AndroidX Test Orchestrator --- .../.gitignore | 6 + .../README.md | 30 ++++ .../app/build.gradle | 45 +++++ .../CalculatorAddParameterizedTest.java | 93 ++++++++++ .../CalculatorInstrumentationTest.java | 110 ++++++++++++ .../app/src/main/AndroidManifest.xml | 37 ++++ .../Calculator.java | 57 ++++++ .../CalculatorActivity.java | 138 +++++++++++++++ .../main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 5035 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 3046 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 7042 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 12352 bytes .../main/res/layout/activity_calculator.xml | 82 +++++++++ .../app/src/main/res/values-v14/styles.xml | 20 +++ .../app/src/main/res/values-v21/styles.xml | 20 +++ .../app/src/main/res/values-w820dp/dimens.xml | 23 +++ .../app/src/main/res/values/dimens.xml | 22 +++ .../app/src/main/res/values/strings.xml | 29 ++++ .../app/src/main/res/values/styles.xml | 20 +++ .../build.gradle | 36 ++++ .../gradle.properties | 20 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../gradlew | 164 ++++++++++++++++++ .../gradlew.bat | 90 ++++++++++ .../settings.gradle | 1 + 26 files changed, 1049 insertions(+) create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/.gitignore create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/README.md create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/build.gradle create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorAddParameterizedTest.java create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorInstrumentationTest.java create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/AndroidManifest.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/Calculator.java create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/CalculatorActivity.java create mode 100755 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-hdpi/ic_launcher.png create mode 100755 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-mdpi/ic_launcher.png create mode 100755 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xhdpi/ic_launcher.png create mode 100755 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/layout/activity_calculator.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values-v14/styles.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values-v21/styles.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values-w820dp/dimens.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values/dimens.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values/strings.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/values/styles.xml create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/build.gradle create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/gradle.properties create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/gradle/wrapper/gradle-wrapper.jar create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/gradle/wrapper/gradle-wrapper.properties create mode 100755 runner/AndroidTestOrchestratorWithTestCoverageSample/gradlew create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/gradlew.bat create mode 100644 runner/AndroidTestOrchestratorWithTestCoverageSample/settings.gradle diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/.gitignore b/runner/AndroidTestOrchestratorWithTestCoverageSample/.gitignore new file mode 100644 index 000000000..03eee2ade --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/.gitignore @@ -0,0 +1,6 @@ +.gradle +/local.properties +.idea +*.iml +.DS_Store +build diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/README.md b/runner/AndroidTestOrchestratorWithTestCoverageSample/README.md new file mode 100644 index 000000000..153125649 --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/README.md @@ -0,0 +1,30 @@ +# AndroidTestOrchestrator with test coverage sample + +The Android Test Orchestrator allows you to run each of your app's tests in isolation, enabling greater reliability. +See https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator for more background. + +This sample is a subset of the AndroidJUnitRunner sample, but it +illustrates how to enable Jacoco test coverage report with the Android Test Orchestrator in the app/build.gradle file. + +This project uses the Gradle build system. You don't need an IDE to build and execute it but Android Studio is recommended. + +1. Download the project code, preferably using `git clone`. +1. Open the Android SDK Manager (*Tools* Menu | *Android*). +1. In Android Studio, select *File* | *Open...* and point to the top-level `./build.gradle` file. +1. Check out the relevant code: + * The application under test is located in `src/main/java` + * Tests are in `src/androidTest/java` +1. Create the test configuration with a custom runner: `androidx.test.runner.AndroidJUnitRunner` + * Open *Run* menu | *Edit Configurations* + * Add a new *Android Tests* configuration + * Choose a module + * Add a *Specific instrumentation runner*: `androidx.test.runner.AndroidJUnitRunner` +1. Connect a device or start an emulator + * Turn animations off. + (On your device, under Settings->Developer options disable the following 3 settings: "Window animation scale", "Transition animation scale" and "Animator duration scale") +1. Run the newly created configuration + +The application will be started on the device/emulator and a series of actions will be performed automatically. + +If you are using Android Studio, the *Run* window will show the test results. +The test coverage report will be generated in `app/build/reports/coverage/androidTest/debug/index.html`. diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/build.gradle b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/build.gradle new file mode 100644 index 000000000..be82d3fe8 --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/build.gradle @@ -0,0 +1,45 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 31 + buildToolsVersion rootProject.buildToolsVersion + defaultConfig { + applicationId "com.example.android.testing.androidtestorchestratorsample" + minSdkVersion 14 + targetSdkVersion 31 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunnerArguments clearPackageData: 'true' + testInstrumentationRunnerArguments useTestStorageService: 'true' + } + buildTypes { + debug { + testCoverageEnabled true + } + } + + useLibrary 'android.test.runner' + + useLibrary 'android.test.base' + useLibrary 'android.test.mock' + + testOptions { + execution 'ANDROIDX_TEST_ORCHESTRATOR' + } +} + +dependencies { + // App's dependencies, including test + implementation 'androidx.annotation:annotation:' + rootProject.androidxAnnotationVersion + implementation 'com.google.guava:guava:' + rootProject.guavaVersion + + // Testing-only dependencies + androidTestImplementation 'androidx.test:core:' + rootProject.coreVersion + androidTestImplementation 'androidx.test.ext:junit:' + rootProject.extJUnitVersion + androidTestImplementation 'androidx.test:runner:' + rootProject.runnerVersion + androidTestImplementation 'androidx.test.espresso:espresso-core:' + rootProject.espressoVersion + androidTestUtil 'androidx.test:orchestrator:' + rootProject.runnerVersion + androidTestUtil 'androidx.test.services:test-services:' + rootProject.testServicesVersion +} diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorAddParameterizedTest.java b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorAddParameterizedTest.java new file mode 100644 index 000000000..63c9e7146 --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorAddParameterizedTest.java @@ -0,0 +1,93 @@ +/* + * Copyright 2020, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.testing.androidtestorchestratorsample; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import androidx.test.filters.SmallTest; + +import java.lang.Iterable; +import java.util.Arrays; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.runners.Parameterized.Parameters; + + +/** + * JUnit4 tests for the calculator's add logic. + * + *

This test uses a Junit4s Parameterized tests features which uses annotations to pass + * parameters into a unit test. The way this works is that you have to use the {@link Parameterized} + * runner to run your tests. + *

+ */ +@RunWith(Parameterized.class) +@SmallTest +public class CalculatorAddParameterizedTest { + + /** + * @return {@link Iterable} that contains the values that should be passed to the constructor. + * In this example we are going to use three parameters: operand one, operand two and the + * expected result. + */ + @Parameters + public static Iterable data() { + return Arrays.asList(new Object[][]{ + {0, 0, 0}, + {0, -1, -1}, + {2, 2, 4}, + {8, 8, 16}, + {16, 16, 32}, + {32, 0, 32}, + {64, 64, 128}}); + } + + private final double mOperandOne; + private final double mOperandTwo; + private final double mExpectedResult; + + private Calculator mCalculator; + + /** + * Constructor that takes in the values specified in + * {@link CalculatorAddParameterizedTest#data()}. The values need to be saved to fields in order + * to reuse them in your tests. + */ + public CalculatorAddParameterizedTest(double operandOne, double operandTwo, + double expectedResult) { + + mOperandOne = operandOne; + mOperandTwo = operandTwo; + mExpectedResult = expectedResult; + } + + @Before + public void setUp() { + mCalculator = new Calculator(); + } + + @Test + public void testAdd_TwoNumbers() { + double resultAdd = mCalculator.add(mOperandOne, mOperandTwo); + assertThat(resultAdd, is(equalTo(mExpectedResult))); + } +} \ No newline at end of file diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorInstrumentationTest.java b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorInstrumentationTest.java new file mode 100644 index 000000000..80b31bae5 --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/androidTest/java/com/example/android/testing/androidtestorchestratorsample/CalculatorInstrumentationTest.java @@ -0,0 +1,110 @@ +/* + * Copyright 2020, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.testing.androidtestorchestratorsample; + +import junit.framework.TestSuite; + +import org.junit.Before; +import org.junit.Test; +import org.junit.internal.builders.AllDefaultPossibilitiesBuilder; +import org.junit.runner.RunWith; + +import androidx.test.core.app.ActivityScenario; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnitRunner; + +import static androidx.test.core.app.ApplicationProvider.getApplicationContext; +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.closeSoftKeyboard; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; + +/** + * JUnit4 Ui Tests for {@link CalculatorActivity} using the {@link AndroidJUnitRunner} with the + * Android Test Orchestrator. + * This class uses the JUnit4 syntax for tests. + *

+ * With the new AndroidJUnit runner you can run both JUnit3 and JUnit4 tests in a single test + * suite. The {@link AndroidRunnerBuilder} which extends JUnit's + * {@link AllDefaultPossibilitiesBuilder} will create a single {@link + * TestSuite} from all tests and run them. + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class CalculatorInstrumentationTest { + + /** + * Use {@link ActivityScenario} to create and launch of the activity. + */ + @Before + public void launchActivity() { + ActivityScenario.launch(CalculatorActivity.class); + } + + @Test + public void noOperandShowsComputationError() { + final String expectedResult = getApplicationContext().getString(R.string.computationError); + onView(withId(R.id.operation_add_btn)).perform(click()); + onView(withId(R.id.operation_result_text_view)).check(matches(withText(expectedResult))); + } + + @Test + public void typeOperandsAndPerformAddOperation() { + performOperation(R.id.operation_add_btn, "16.0", "16.0", "32.0"); + } + + @Test + public void typeOperandsAndPerformSubOperation() { + performOperation(R.id.operation_sub_btn, "32.0", "16.0", "16.0"); + } + + @Test + public void typeOperandsAndPerformDivOperation() { + performOperation(R.id.operation_div_btn, "128.0", "16.0", "8.0"); + } + + @Test + public void divZeroForOperandTwoShowsError() { + final String expectedResult = getApplicationContext().getString(R.string.computationError); + performOperation(R.id.operation_div_btn, "128.0", "0.0", expectedResult); + } + + @Test + public void typeOperandsAndPerformMulOperation() { + performOperation(R.id.operation_mul_btn, "16.0", "16.0", "256.0"); + } + + private void performOperation(int btnOperationResId, String operandOne, + String operandTwo, String expectedResult) { + // Type the two operands in the EditText fields + onView(withId(R.id.operand_one_edit_text)).perform(typeText(operandOne), + closeSoftKeyboard()); + onView(withId(R.id.operand_two_edit_text)).perform(typeText(operandTwo), + closeSoftKeyboard()); + + // Click on a given operation button + onView(withId(btnOperationResId)).perform(click()); + + // Check the expected test is displayed in the Ui + onView(withId(R.id.operation_result_text_view)).check(matches(withText(expectedResult))); + } + +} diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/AndroidManifest.xml b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..f3b473cae --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/AndroidManifest.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/Calculator.java b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/Calculator.java new file mode 100644 index 000000000..b7a17d12e --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/Calculator.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.testing.androidtestorchestratorsample; + +import static com.google.common.base.Preconditions.checkArgument; + +/** + * A simple calculator with a basic set of operations. + */ +public class Calculator { + + public enum Operator {ADD, SUB, DIV, MUL} + + /** + * Addition operation + */ + public double add(double firstOperand, double secondOperand) { + return firstOperand + secondOperand; + } + + /** + * Substract operation + */ + public double sub(double firstOperand, double secondOperand) { + return firstOperand - secondOperand; + } + + /** + * Divide operation + */ + public double div(double firstOperand, double secondOperand) { + checkArgument(secondOperand != 0, "secondOperand must be != 0, you cannot divide by zero"); + return firstOperand / secondOperand; + } + + /** + * Multiply operation + */ + public double mul(double firstOperand, double secondOperand) { + + return firstOperand * secondOperand; + } +} diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/CalculatorActivity.java b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/CalculatorActivity.java new file mode 100644 index 000000000..d745a3210 --- /dev/null +++ b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/java/com/example/android/testing/androidtestorchestratorsample/CalculatorActivity.java @@ -0,0 +1,138 @@ +/* + * Copyright 2020, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.testing.androidtestorchestratorsample; + +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + +/** + * {@link android.app.Activity} which contains a simple calculator. Numbers can be entered in the + * two {@link EditText} fields and result can be obtained by pressing one of the + * operation {@link Button}s at the bottom. + */ +public class CalculatorActivity extends Activity { + + private static final String TAG = "CalculatorActivity"; + + private Calculator mCalculator; + + private EditText mOperandOneEditText; + private EditText mOperandTwoEditText; + + private TextView mResultTextView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_calculator); + mCalculator = new Calculator(); + mResultTextView = (TextView) findViewById(R.id.operation_result_text_view); + mOperandOneEditText = (EditText) findViewById(R.id.operand_one_edit_text); + mOperandTwoEditText = (EditText) findViewById(R.id.operand_two_edit_text); + } + + /** + * OnClick method that is called when the add {@link Button} is pressed. + */ + public void onAdd(View view) { + compute(Calculator.Operator.ADD); + } + + /** + * OnClick method that is called when the substract {@link Button} is pressed. + */ + public void onSub(View view) { + compute(Calculator.Operator.SUB); + } + + /** + * OnClick method that is called when the divide {@link Button} is pressed. + */ + public void onDiv(View view) { + try { + compute(Calculator.Operator.DIV); + } catch (IllegalArgumentException iae) { + Log.e(TAG, "IllegalArgumentException", iae); + mResultTextView.setText(getString(R.string.computationError)); + } + } + + /** + * OnClick method that is called when the multiply {@link Button} is pressed. + */ + public void onMul(View view) { + compute(Calculator.Operator.MUL); + } + + private void compute(Calculator.Operator operator) { + double operandOne; + double operandTwo; + try { + operandOne = getOperand(mOperandOneEditText); + operandTwo = getOperand(mOperandTwoEditText); + } catch (NumberFormatException nfe) { + Log.e(TAG, "NumberFormatException", nfe); + mResultTextView.setText(getString(R.string.computationError)); + return; + } + + String result; + switch (operator) { + case ADD: + result = String.valueOf(mCalculator.add(operandOne, operandTwo)); + break; + case SUB: + result = String.valueOf(mCalculator.sub(operandOne, operandTwo)); + break; + case DIV: + result = String.valueOf(mCalculator.div(operandOne, operandTwo)); + break; + case MUL: + result = String.valueOf(mCalculator.mul(operandOne, operandTwo)); + break; + default: + result = getString(R.string.computationError); + break; + } + mResultTextView.setText(result); + } + + /** + * @return the operand value which was entered in an {@link EditText} as a double + */ + private static Double getOperand(EditText operandEditText) { + String operandText = getOperandText(operandEditText); + return Double.valueOf(operandText); + } + + /** + * @return the operand text which was entered in an {@link EditText}. + */ + private static String getOperandText(EditText operandEditText) { + String operandText = operandEditText.getText().toString(); + if (TextUtils.isEmpty(operandText)) { + throw new NumberFormatException("operand cannot be empty!"); + } + return operandText; + } +} diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-hdpi/ic_launcher.png b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..965ac96247326d9ff525c4ac155a1210a5fb70eb GIT binary patch literal 5035 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 BiQE7H literal 0 HcmV?d00001 diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-mdpi/ic_launcher.png b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..df52c527841706f13b793466d9843940b3286dd7 GIT binary patch literal 3046 zcmV|L2^0_b!iRu``Xi%;DZW_w{}M z|NZ}e&bcc1fp4lGIDU`_&|Zg4kIn57C)J1eda#+W*(3ssCj4MvIScaXSYNkxW2yLpi-$ck1}`(o6Tmk1P2F?#ozT3fso3|%4&^9^GI7? zB4Dvt%u!KMk@)+*L|_#D2*nosr_aN`QmNc9I5eO}hp6!wq+_*~sgC;aKd9As&PIE5 z9QLcEy&PJ0f7-wXpu+!F3)@@S-irG^JcD~1N}Kif;xV2B3+tm}8y?%l@w(J|DP(zU z_po(J1l0Hg(SiTI3y}sD#xa3ZBVZ!I2w)#6Ov6a1*)b7N<2k_pL|COlGD3wm#4Bwo z@fHTgW@UhYKodwJK!A~q1;Nv?6(~-L0G%g7M3Tt#LC#DANv9cGFFmAx8uk0=o0w*a z0C|EDVHOvA;T5HqICyMC1WC{y5h=on?2o`1c-nKTI$D<#QG#X1%<^^u8I!90@xd*! zary-<5{PYf1gs!IWP~U9H3Xc_6L{_c2A=JS05t-S?vTNA4{&b~FacUvUIIKAc&c8URaySqCuLK-pVKD7K;skg``W`(n zFo@kXqd}{|Qh~X#&uSEb>lgzXl@><1M}nK$3(S@_=;>>cV?d+Uu`Ja;3-PQ&%?zf# z7WNMEn5pjpdr$uiIP=|dmR*zq9p*g;;`~>FPU9QIFX5%&H1(HgD=VbU%*xL+EUB@{v_TC47&nYlQKLL6z9Z*vHI|v%}1dP_jF%Np{ z#-pbq&_m7aIn-yew7|{Azrup(qe#F{5GdsNf24KbNO?4`10oZ}_@%?tkT+#>Rk!{V zt~czG^Z#Rkzk&##h0xG-3Cint@*xJ^`_#C1LGKoT*S-(+T^ATol1GehIz;&{#p^G^ z)q8I{)Pn`lpD+SMx~_v0=uaYJQjPO0bfi40SprWMo)eji7MuZh+dqeKqn{NrdY;LM z&QA!)W`H_Om2j!AI`8mRDmol(0dZUj};Nd6ZQNTsFL=@PGxLjs1)hxVsL6_>7Q`a(rZg zm6Hw53H;O{XRZZ{vsc2EqZ0psF5@b!2c zzQtNV-jfD(3I17FGgiR;&LSkR!C{P)7WV}sP*n44B#=MIsMP|QQyQET$oo13C8Wlp z@-a##8E!T1!SwhJpTJ;?^mz`6{Q+gs3|~|%hH*Y=m}cK#7OKTe)oH$qH6Q`Pyyr2i zp0D{Ow3+V6gSv!(m(Vz?kidDCE~QZ^UAr*8fDvfG_~dEkRPb1gIH}q`mv9!zXc62i(Aaeu1N*0#PFI76TcE5pV{Zf8 zXnda)H@;CCwXtB256FajonK+Fz9uBZXK0J!3PG<87^qk5Asm#MelfLqI069}13I*X zA0t4ikxd!dIG+!j`8hY70``c!&x_Y+T@=QH516cN=!qKU0SUac*QoRuBRU-G^kAiK zcbKWsn2QIyG<%cg4OZysZ2^m|2ePIAT31@RC$R)s>s|6!;|Pw z#tPXSl!2=xLBJ$0NXJU>LlclPk(~s|giDE&P#*Ku3;QI96U&)qa!w%kiVi(s*SDj! zmEd{M+5?z}t}8*z;z15%DX51cVP8)o;yKgILlU63`|mpE-slL7AoAry8(UVCWX1bs zz)U(y*$kABoRb`4Lc{_sxnNU?Wk>E6Wya#iug>kGVnZu)Z0%2a3#|`&&!0bk;@nrx z;@T*;v=S_zMp8gaK<&E6C3y$yiy#(;HCyLay{!7FI!YgVQVB0(}QbCnvv+;9ECu-n^)yqT)7T6t53EapJ@c1PsfTEqfgMXmm!KHYO$}e(Tn)ClUCV z^XJcR+_`gSE?LtR!;x$VxM=bxCKvCOFH_H$F(YF8_U)I@`T_a*`8zgk+O!kT%E5)l z5v8T2)n>C9Qc_arV?>R(nRSBy|&lrjTop(p##(26 zY$V&m5YVh%y?T09R@OPpB-*^ZyfwMGxkvG(ZP=7Lc1D2S>ywj{^K%5g8_D+`K74r2 z-o1M-35mGO;b92)96x^iSa^8&k1?RmW#Wc!Ghk!EtJs_opv&mn)mQ|6C?O$X4rZ4# z>FMb-(I!K1z!YapK45@P*_-~ z3}PiPs(?W##~ntaaaCpEYaNzc3cQEiNvmWk1ShE^Q+v;DJx2u?W=)dI^>D zp$d@n>6U=7PohI0A`ITxXplxZ9>-!}bO}9PG*SX|J%Oh^pNS8>NuO@%3ie5Km}}{| oWDIFA@~ literal 0 HcmV?d00001 diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xhdpi/ic_launcher.png b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..3d479bfe732ba0be4a130fe14ad257cacba654e3 GIT binary patch literal 7042 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 literal 0 HcmV?d00001 diff --git a/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/runner/AndroidTestOrchestratorWithTestCoverageSample/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..c85d90b05f51ff4b23891035fa8a6301770e379f GIT binary patch literal 12352 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 + + + + + + + + + + +