diff --git a/brouter-routing-app/build.gradle b/brouter-routing-app/build.gradle index 58dde91..bd69984 100644 --- a/brouter-routing-app/build.gradle +++ b/brouter-routing-app/build.gradle @@ -17,6 +17,8 @@ android { setProperty("archivesBaseName","BRouterApp." + defaultConfig.versionName) minSdkVersion 14 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } sourceSets.main.assets.srcDirs += new File(project.buildDir, 'assets') @@ -99,6 +101,10 @@ dependencies { implementation project(':brouter-expressions') implementation project(':brouter-util') + testImplementation 'junit:junit:4.13.2' + + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } task generateProfiles(type: Exec) { diff --git a/brouter-routing-app/src/androidTest/java/btools/routingapp/BRouterActivityTest.java b/brouter-routing-app/src/androidTest/java/btools/routingapp/BRouterActivityTest.java new file mode 100644 index 0000000..6a6a9cd --- /dev/null +++ b/brouter-routing-app/src/androidTest/java/btools/routingapp/BRouterActivityTest.java @@ -0,0 +1,47 @@ +package btools.routingapp; + +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertThat; + +import android.os.Build; +import android.os.Environment; + +import androidx.test.core.app.ActivityScenario; +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.runner.RunWith; + +import java.io.File; +import java.util.List; + +@RunWith(AndroidJUnit4.class) +public class BRouterActivityTest { + @Rule + public ActivityScenarioRule rule = new ActivityScenarioRule<>(BRouterActivity.class); + + @Test + public void storageDirectories() { + ActivityScenario scenario = rule.getScenario(); + scenario.onActivity(activity -> { + List storageDirectories = activity.getStorageDirectories(); + + // Before Android Q (10) legacy storage access is possible + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { + assertThat(storageDirectories, hasItem(Environment.getExternalStorageDirectory())); + } + + // When targeting older SDK we can access legacy storage on any android version + if (activity.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.Q) { + assertThat(storageDirectories, hasItem(Environment.getExternalStorageDirectory())); + } + + assertThat(storageDirectories, not(empty())); + }); + } + +}