Skip to content

Commit

Permalink
Merge pull request #263 from bugsnag/fix-metadata-filters
Browse files Browse the repository at this point in the history
add tests for setting metadata filters by default
  • Loading branch information
fractalwrench committed Mar 14, 2018
2 parents 9b894c0 + 9c4005a commit 0c09dd2
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 4 deletions.
41 changes: 41 additions & 0 deletions sdk/src/androidTest/java/com/bugsnag/android/MetaDataTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

Expand All @@ -17,13 +18,21 @@
import java.util.Map;

import static com.bugsnag.android.BugsnagTestUtils.streamableToJson;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

@RunWith(AndroidJUnit4.class)
@SmallTest
public class MetaDataTest {

private Client client;

@Before
public void setUp() throws Exception {
client = BugsnagTestUtils.generateClient();
}

@Test
public void testBasicSerialization() throws JSONException, IOException {
MetaData metaData = new MetaData();
Expand Down Expand Up @@ -188,4 +197,36 @@ public void testNestedFiltering() throws JSONException, IOException {
assertEquals("[FILTERED]", sensitiveMapJson.getString("confirm_password"));
assertEquals("safe", sensitiveMapJson.getString("normal"));
}

@Test
public void testFilterConstructor() throws Exception {
MetaData metaData = client.getMetaData();
metaData.addToTab("foo", "password", "abc123");
JSONObject jsonObject = streamableToJson(metaData);

assertArrayEquals(new String[]{"password"}, metaData.getFilters());
assertEquals("[FILTERED]", jsonObject.getJSONObject("foo").get("password"));
}

@Test
public void testFilterSetter() throws Exception {
MetaData metaData = new MetaData();
client.setMetaData(metaData);
assertArrayEquals(new String[]{"password"}, metaData.getFilters());
}

@Test
public void testFilterOverride() throws Exception {
MetaData metaData = client.getMetaData();
client.setFilters("test", "another");
assertArrayEquals(new String[]{"test", "another"}, metaData.getFilters());
}

@Test
public void testFilterMetadataOverride() throws Exception {
MetaData data = new MetaData();
data.setFilters("CUSTOM");
client.setMetaData(data);
assertArrayEquals(new String[]{"CUSTOM"}, data.getFilters());
}
}
4 changes: 1 addition & 3 deletions sdk/src/main/java/com/bugsnag/android/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ public class Configuration extends Observable implements Observer {
private String endpoint = "https://notify.bugsnag.com";
private String sessionEndpoint = "https://sessions.bugsnag.com";

private String[] filters = new String[]{"password"};
private String[] ignoreClasses;
@Nullable
private String[] notifyReleaseStages = null;
Expand Down Expand Up @@ -191,7 +190,7 @@ public void setBuildUUID(String buildUuid) {
* @return Filters
*/
public String[] getFilters() {
return filters;
return metaData.getFilters();
}

/**
Expand All @@ -208,7 +207,6 @@ public String[] getFilters() {
* @param filters a list of keys to filter from metaData
*/
public void setFilters(String[] filters) {
this.filters = filters;
this.metaData.setFilters(filters);
}

Expand Down
7 changes: 6 additions & 1 deletion sdk/src/main/java/com/bugsnag/android/MetaData.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ public class MetaData extends Observable implements JsonStream.Streamable {
private static final String FILTERED_PLACEHOLDER = "[FILTERED]";
private static final String OBJECT_PLACEHOLDER = "[OBJECT]";

private String[] filters;
private String[] filters = {"password"};

@NonNull
final Map<String, Object> store;

Expand Down Expand Up @@ -118,6 +119,10 @@ void setFilters(String... filters) {
notifyBugsnagObservers(NotifyType.FILTERS);
}

String[] getFilters() {
return filters;
}

@NonNull
static MetaData merge(@NonNull MetaData... metaDataList) {
List<Map<String, Object>> stores = new ArrayList<>();
Expand Down

0 comments on commit 0c09dd2

Please sign in to comment.