diff --git a/backtrace-library/src/androidTest/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbsTest.java b/backtrace-library/src/androidTest/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbsTest.java index 69dade937..a538f69a5 100644 --- a/backtrace-library/src/androidTest/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbsTest.java +++ b/backtrace-library/src/androidTest/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbsTest.java @@ -9,8 +9,10 @@ import android.content.Context; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; +import backtraceio.library.enums.BacktraceBreadcrumbType; import java.io.File; import java.io.IOException; +import java.util.EnumSet; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -117,6 +119,32 @@ public void testEnableBreadcrumbs() { } } + @Test + public void testAddBreadcrumbRejectsDisabledType() { + try { + cleanUp(); + + backtraceBreadcrumbs = + new BacktraceBreadcrumbs(context.getFilesDir().getAbsolutePath()); + backtraceBreadcrumbs.enableBreadcrumbs(context, EnumSet.of(BacktraceBreadcrumbType.MANUAL)); + + assertTrue(backtraceBreadcrumbs.addBreadcrumb("test-manual", BacktraceBreadcrumbType.MANUAL)); + assertFalse(backtraceBreadcrumbs.addBreadcrumb("test-system", BacktraceBreadcrumbType.SYSTEM)); + assertFalse(backtraceBreadcrumbs.addBreadcrumb("test-http", BacktraceBreadcrumbType.HTTP)); + + List breadcrumbLogFileData = BreadcrumbsReader.readBreadcrumbLogFile( + context.getFilesDir().getAbsolutePath()); + + // Configuration breadcrumb, plus breadcrumb added above. + assertEquals(2, breadcrumbLogFileData.size()); + + JSONObject parsedBreadcrumb = new JSONObject(breadcrumbLogFileData.get(1)); + assertEquals("test-manual", parsedBreadcrumb.get("message")); + } catch (Exception ex) { + fail(ex.getMessage()); + } + } + @Test public void testAddBreadcrumbWithAttributes() { try { diff --git a/backtrace-library/src/main/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbs.java b/backtrace-library/src/main/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbs.java index ab049a173..3e574cfe9 100644 --- a/backtrace-library/src/main/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbs.java +++ b/backtrace-library/src/main/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbs.java @@ -320,6 +320,9 @@ public boolean addBreadcrumb( if (!this.isEnabled() || backtraceBreadcrumbsLogManager == null) { return false; } + if (!enabledBreadcrumbTypes.contains(type)) { + return false; + } boolean addResult = backtraceBreadcrumbsLogManager.addBreadcrumb(message, attributes, type, level); if (addResult && this.onSuccessfulBreadcrumbAddEventListener != null) { this.onSuccessfulBreadcrumbAddEventListener.onSuccessfulAdd(this.getCurrentBreadcrumbId());