From 4affb3f76d641074fade6f0f32c4a874c7f7288a Mon Sep 17 00:00:00 2001 From: fractalwrench Date: Thu, 1 Mar 2018 14:13:07 +0000 Subject: [PATCH] add scenarios for manual + auto filtering of sensitive data --- features/auto_filter.feature | 11 ++++++++++ features/manual_filter.feature | 11 ++++++++++ .../scenarios/AutoFilterScenario.kt | 21 ++++++++++++++++++ .../scenarios/ManualFilterScenario.kt | 22 +++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 features/auto_filter.feature create mode 100644 features/manual_filter.feature create mode 100644 mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/AutoFilterScenario.kt create mode 100644 mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/ManualFilterScenario.kt diff --git a/features/auto_filter.feature b/features/auto_filter.feature new file mode 100644 index 0000000000..52b50d0a32 --- /dev/null +++ b/features/auto_filter.feature @@ -0,0 +1,11 @@ +Feature: Android support + +Scenario: Automatic Filter Tracking + When I run "AutoFilterScenario" with the defaults + Then I should receive a request + And the request is a valid for the error reporting API + And the "Bugsnag-API-Key" header equals "a35a2a72bd230ac0aa0f52715bbdc6aa" + And the exception "message" equals "AutoFilterScenario" + And the event "metaData.custom.foo" equals "hunter2" + And the event "metaData.custom.password" equals "[FILTERED]" + And the event "metaData.user.password" equals "[FILTERED]" diff --git a/features/manual_filter.feature b/features/manual_filter.feature new file mode 100644 index 0000000000..9ea94660b9 --- /dev/null +++ b/features/manual_filter.feature @@ -0,0 +1,11 @@ +Feature: Android support + +Scenario: Manual Filter Tracking + When I run "ManualFilterScenario" with the defaults + Then I should receive a request + And the request is a valid for the error reporting API + And the "Bugsnag-API-Key" header equals "a35a2a72bd230ac0aa0f52715bbdc6aa" + And the exception "message" equals "ManualFilterScenario" + And the event "metaData.custom.foo" equals "[FILTERED]" + And the event "metaData.user.foo" equals "[FILTERED]" + And the event "metaData.custom.bar" equals "hunter2" diff --git a/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/AutoFilterScenario.kt b/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/AutoFilterScenario.kt new file mode 100644 index 0000000000..e9662122de --- /dev/null +++ b/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/AutoFilterScenario.kt @@ -0,0 +1,21 @@ +package com.bugsnag.android.mazerunner.scenarios + +import android.content.Context +import com.bugsnag.android.Bugsnag +import com.bugsnag.android.Configuration + +/** + * Sends a handled exception to Bugsnag, which contains metadata that should be filtered + */ +internal class AutoFilterScenario(config: Configuration, + context: Context) : Scenario(config, context) { + + override fun run() { + super.run() + Bugsnag.addToTab("user", "password", "hunter2") + Bugsnag.addToTab("custom", "password", "hunter2") + Bugsnag.addToTab("custom", "foo", "hunter2") + Bugsnag.notify(generateException()) + } + +} diff --git a/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/ManualFilterScenario.kt b/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/ManualFilterScenario.kt new file mode 100644 index 0000000000..3a8c0b0025 --- /dev/null +++ b/mazerunner/src/main/java/com/bugsnag/android/mazerunner/scenarios/ManualFilterScenario.kt @@ -0,0 +1,22 @@ +package com.bugsnag.android.mazerunner.scenarios + +import android.content.Context +import com.bugsnag.android.Bugsnag +import com.bugsnag.android.Configuration + +/** + * Sends a handled exception to Bugsnag, which contains metadata that should be filtered + */ +internal class ManualFilterScenario(config: Configuration, + context: Context) : Scenario(config, context) { + + override fun run() { + super.run() + Bugsnag.setFilters("foo") + Bugsnag.addToTab("user", "foo", "hunter2") + Bugsnag.addToTab("custom", "foo", "hunter2") + Bugsnag.addToTab("custom", "bar", "hunter2") + Bugsnag.notify(generateException()) + } + +}