summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java
new file mode 100644
index 0000000000..543ae5e668
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/PerfTestingUtils.java
@@ -0,0 +1,76 @@
+package com.mapbox.mapboxsdk.testapp.utils;
+
+import android.content.Context;
+import android.os.Environment;
+import android.support.test.InstrumentationRegistry;
+
+import java.io.File;
+
+public class PerfTestingUtils {
+ /**
+ * Retrieve the directory where test files should be written to.
+ * This directory is local to the application and removed when the app is uninstalled.
+ */
+ public static File getTestDir(String className, String testName) {
+
+ File rootDir = Environment.getExternalStorageDirectory();//getAppContext().getFilesDir();
+
+ // Create a test data subdirectory.
+ File testFileDir = new File(rootDir, "testdata");
+ if (getTranslatedTestName(className, testName) != null) {
+ testFileDir = new File(testFileDir, getTranslatedTestName(className, testName));
+ }
+
+ if (!testFileDir.exists()) {
+ if (!testFileDir.mkdirs()) {
+ throw new RuntimeException("Unable to create test file directory.");
+ }
+ }
+ return testFileDir;
+
+ }
+
+ /**
+ * Retrieve the app-under-test's {@code Context}.
+ */
+ public static Context getAppContext() {
+ return InstrumentationRegistry.getInstrumentation().getTargetContext();
+ }
+
+ /**
+ * Retrieve a file handle that is within the testing directory where tests should be written to.
+ */
+ public static File getTestRunFile(String filename) {
+ return new File(getTestDir(null, null), filename);
+ }
+
+ /**
+ * Retrieve the test run directory where tests should be written to.
+ */
+ public static File getTestRunDir() {
+ return getTestDir(null, null);
+ }
+
+ private static String getTranslatedTestName(String className, String testName) {
+ if (className == null || testName == null) {
+ return null;
+ }
+ String base = className + "_" + testName;
+
+ // Shorten the common strings so "com.google.android" comes out as "c.g.a" for brevity.
+ base = base.replace("com", "c")
+ .replace("google", "g")
+ .replace("android", "a")
+ .replace("perfmatters", "pm")
+ .replace("automatingperformancetesting", "apt");
+ return base;
+
+ }
+
+ /**
+ * Retrieve a file handle that is within the testing directory where tests should be written to.
+ */
+ public static File getTestFile(String className, String testName, String filename) {
+ return new File(getTestDir(className, testName), filename);
+ }
+}