summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java
new file mode 100644
index 0000000000..bba65b4476
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/rules/TraceRule.java
@@ -0,0 +1,36 @@
+package com.mapbox.mapboxsdk.rules;
+
+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.
+ * <p>
+ * 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).
+ * <p>
+ */
+public class TraceRule extends ExternalResource {
+
+ private String testName;
+
+ @Override
+ public Statement apply(Statement base, Description description) {
+ testName = description.getMethodName();
+ return super.apply(base, description);
+ }
+
+ @Override
+ public void before() {
+ Trace.beginSection(testName);
+ }
+
+ @Override
+ public void after() {
+ Trace.endSection();
+ }
+}