summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java
new file mode 100644
index 0000000000..aca398271d
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testrule/EnableTestTracing.java
@@ -0,0 +1,44 @@
+package com.mapbox.mapboxsdk.testrule;
+
+import android.os.Trace;
+
+import org.junit.rules.ExternalResource;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * This rule enables {@link Trace Tracing} for each test. The section name
+ * used for the Trace API is the name of the test being run.
+ *
+ * To enable AndroidTracing on a test simply add this rule like so and it will be enabled/disabled
+ * when the platform support for Tracing exists (API Level 18 or higher).
+ *
+ * <pre>
+ * @Rule
+ * public EnableTestTracing mEnableTestTracing = new EnableTestTracing();
+ * </pre>
+ */
+public class EnableTestTracing extends ExternalResource {
+
+ private String mTestName;
+
+ @Override
+ public Statement apply(Statement base, Description description) {
+ mTestName = description.getMethodName();
+ return super.apply(base, description);
+ }
+
+ @Override
+ public void before() {
+ if (android.os.Build.VERSION.SDK_INT >= 18) {
+ Trace.beginSection(mTestName);
+ }
+ }
+
+ @Override
+ public void after() {
+ if (android.os.Build.VERSION.SDK_INT >= 18) {
+ Trace.endSection();
+ }
+ }
+}