diff --git a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/arch/schema/ErrorCodeAttribute.kt b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/arch/schema/ErrorCodeAttribute.kt index c05e67bfe2..252ec16ce0 100644 --- a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/arch/schema/ErrorCodeAttribute.kt +++ b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/arch/schema/ErrorCodeAttribute.kt @@ -13,7 +13,7 @@ public sealed class ErrorCodeAttribute( errorCode: ErrorCode ) : FixedAttribute { override val key: EmbraceAttributeKey = EmbraceAttributeKey(id = "error_code") - override val value: String = errorCode.name.toLowerCase(Locale.ENGLISH) + override val value: String = errorCode.name.lowercase(Locale.ENGLISH) public object Failure : ErrorCodeAttribute(FAILURE) diff --git a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/capture/metadata/RnBundleIdTrackerImpl.kt b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/capture/metadata/RnBundleIdTrackerImpl.kt index 2fe70a211b..21729ea8be 100644 --- a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/capture/metadata/RnBundleIdTrackerImpl.kt +++ b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/capture/metadata/RnBundleIdTrackerImpl.kt @@ -164,9 +164,9 @@ public class RnBundleIdTrackerImpl( val bundleHashed = md.digest(bundle) val sb = StringBuilder() for (b in bundleHashed) { - sb.append(String.format(Locale.getDefault(), "%02x", b.toInt() and 0xff)) + sb.append(String.format(Locale.ENGLISH, "%02x", b.toInt() and 0xff)) } - hashBundle = sb.toString().toUpperCase(Locale.getDefault()) + hashBundle = sb.toString().uppercase(Locale.ENGLISH) return hashBundle } } diff --git a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/config/behavior/SessionBehaviorImpl.kt b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/config/behavior/SessionBehaviorImpl.kt index 8b1e41c7ce..6df0a9da6e 100644 --- a/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/config/behavior/SessionBehaviorImpl.kt +++ b/embrace-android-core/src/main/kotlin/io/embrace/android/embracesdk/internal/config/behavior/SessionBehaviorImpl.kt @@ -27,7 +27,7 @@ public class SessionBehaviorImpl( override fun getFullSessionEvents(): Set { val strings = remote?.sessionConfig?.fullSessionEvents ?: local?.fullSessionEvents ?: emptySet() - return strings.map { it.toLowerCase(Locale.US) }.toSet() + return strings.map { it.lowercase(Locale.US) }.toSet() } override fun getSessionComponents(): Set? = diff --git a/embrace-android-core/src/test/java/io/embrace/android/embracesdk/internal/config/behavior/BreadcrumbBehaviorImplTest.kt b/embrace-android-core/src/test/java/io/embrace/android/embracesdk/internal/config/behavior/BreadcrumbBehaviorImplTest.kt index 89687afdde..83355bb89a 100644 --- a/embrace-android-core/src/test/java/io/embrace/android/embracesdk/internal/config/behavior/BreadcrumbBehaviorImplTest.kt +++ b/embrace-android-core/src/test/java/io/embrace/android/embracesdk/internal/config/behavior/BreadcrumbBehaviorImplTest.kt @@ -1,12 +1,12 @@ package io.embrace.android.embracesdk.internal.config.behavior -import io.embrace.android.embracesdk.fakes.fakeBreadcrumbBehavior import io.embrace.android.embracesdk.internal.config.local.SdkLocalConfig import io.embrace.android.embracesdk.internal.config.local.TapsLocalConfig import io.embrace.android.embracesdk.internal.config.local.ViewLocalConfig import io.embrace.android.embracesdk.internal.config.local.WebViewLocalConfig import io.embrace.android.embracesdk.internal.config.remote.RemoteConfig import io.embrace.android.embracesdk.internal.config.remote.UiRemoteConfig +import io.embrace.android.embracesdk.internal.utils.Uuid import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue @@ -24,6 +24,8 @@ internal class BreadcrumbBehaviorImplTest { ) ) + private val behaviorThresholdCheck = BehaviorThresholdCheck { Uuid.getEmbUuid() } + private val local = SdkLocalConfig( taps = TapsLocalConfig(false), viewConfig = ViewLocalConfig(false), @@ -33,7 +35,7 @@ internal class BreadcrumbBehaviorImplTest { @Test fun testDefaults() { - with(fakeBreadcrumbBehavior()) { + with(BreadcrumbBehaviorImpl(thresholdCheck = behaviorThresholdCheck, localSupplier = { null }) { null }) { assertEquals(100, getCustomBreadcrumbLimit()) assertEquals(100, getTapBreadcrumbLimit()) assertEquals(100, getViewBreadcrumbLimit()) @@ -49,7 +51,7 @@ internal class BreadcrumbBehaviorImplTest { @Test fun testLocalOnly() { - with(fakeBreadcrumbBehavior(localCfg = { local })) { + with(BreadcrumbBehaviorImpl(thresholdCheck = behaviorThresholdCheck, localSupplier = { local }) { null }) { assertFalse(isTapCoordinateCaptureEnabled()) assertFalse(isAutomaticActivityCaptureEnabled()) assertFalse(isWebViewBreadcrumbCaptureEnabled()) @@ -60,7 +62,7 @@ internal class BreadcrumbBehaviorImplTest { @Test fun testRemoteAndLocal() { - with(fakeBreadcrumbBehavior(localCfg = { local }, remoteCfg = { remote })) { + with(BreadcrumbBehaviorImpl(thresholdCheck = behaviorThresholdCheck, localSupplier = { local }) { remote }) { assertEquals(99, getCustomBreadcrumbLimit()) assertEquals(98, getTapBreadcrumbLimit()) assertEquals(97, getViewBreadcrumbLimit()) diff --git a/embrace-android-features/src/main/kotlin/io/embrace/android/embracesdk/internal/ndk/EmbraceNdkService.kt b/embrace-android-features/src/main/kotlin/io/embrace/android/embracesdk/internal/ndk/EmbraceNdkService.kt index ec55a6e852..17f43b1c84 100644 --- a/embrace-android-features/src/main/kotlin/io/embrace/android/embracesdk/internal/ndk/EmbraceNdkService.kt +++ b/embrace-android-features/src/main/kotlin/io/embrace/android/embracesdk/internal/ndk/EmbraceNdkService.kt @@ -371,7 +371,7 @@ public class EmbraceNdkService( } catch (ex: Exception) { logger.logError( String.format( - Locale.getDefault(), + Locale.ENGLISH, "Failed to decode symbols from resources {resourceId=%d}.", resourceId ), @@ -382,7 +382,7 @@ public class EmbraceNdkService( } else { logger.logError( String.format( - Locale.getDefault(), + Locale.ENGLISH, "Failed to find symbols in resources {resourceId=%d}.", resourceId ) diff --git a/embrace-android-features/src/test/java/io/embrace/android/embracesdk/internal/capture/crumbs/WebViewUrlDataSourceTest.kt b/embrace-android-features/src/test/java/io/embrace/android/embracesdk/internal/capture/crumbs/WebViewUrlDataSourceTest.kt index af534e99e5..fcd18f2343 100644 --- a/embrace-android-features/src/test/java/io/embrace/android/embracesdk/internal/capture/crumbs/WebViewUrlDataSourceTest.kt +++ b/embrace-android-features/src/test/java/io/embrace/android/embracesdk/internal/capture/crumbs/WebViewUrlDataSourceTest.kt @@ -1,12 +1,10 @@ package io.embrace.android.embracesdk.internal.capture.crumbs +import io.embrace.android.embracesdk.fakes.FakeBreadcrumbBehavior import io.embrace.android.embracesdk.fakes.FakeConfigService import io.embrace.android.embracesdk.fakes.FakeCurrentSessionSpan -import io.embrace.android.embracesdk.fakes.fakeBreadcrumbBehavior import io.embrace.android.embracesdk.internal.arch.schema.EmbType import io.embrace.android.embracesdk.internal.config.ConfigService -import io.embrace.android.embracesdk.internal.config.local.SdkLocalConfig -import io.embrace.android.embracesdk.internal.config.local.WebViewLocalConfig import io.embrace.android.embracesdk.internal.logging.EmbLoggerImpl import io.opentelemetry.semconv.UrlAttributes import org.junit.Assert.assertEquals @@ -27,15 +25,9 @@ internal class WebViewUrlDataSourceTest { @Test fun `add breadcrumb`() { configService = FakeConfigService( - breadcrumbBehavior = fakeBreadcrumbBehavior( - localCfg = { - SdkLocalConfig( - webViewConfig = WebViewLocalConfig( - captureWebViews = true, - captureQueryParams = true - ) - ) - } + breadcrumbBehavior = FakeBreadcrumbBehavior( + queryParamCaptureEnabled = true, + webViewBreadcrumbCaptureEnabled = true ) ) source = WebViewUrlDataSource( @@ -62,15 +54,9 @@ internal class WebViewUrlDataSourceTest { @Test fun `query param capture disabled`() { configService = FakeConfigService( - breadcrumbBehavior = fakeBreadcrumbBehavior( - localCfg = { - SdkLocalConfig( - webViewConfig = WebViewLocalConfig( - captureWebViews = true, - captureQueryParams = false - ) - ) - } + breadcrumbBehavior = FakeBreadcrumbBehavior( + queryParamCaptureEnabled = false, + webViewBreadcrumbCaptureEnabled = true ) ) source = WebViewUrlDataSource( @@ -97,15 +83,9 @@ internal class WebViewUrlDataSourceTest { @Test fun `limit not exceeded`() { configService = FakeConfigService( - breadcrumbBehavior = fakeBreadcrumbBehavior( - localCfg = { - SdkLocalConfig( - webViewConfig = WebViewLocalConfig( - captureWebViews = true, - captureQueryParams = false - ) - ) - } + breadcrumbBehavior = FakeBreadcrumbBehavior( + queryParamCaptureEnabled = false, + webViewBreadcrumbCaptureEnabled = true ) ) source = WebViewUrlDataSource( diff --git a/embrace-android-okhttp3/src/test/kotlin/io/embrace/android/embracesdk/okhttp3/EmbraceOkHttp3InterceptorsTest.kt b/embrace-android-okhttp3/src/test/kotlin/io/embrace/android/embracesdk/okhttp3/EmbraceOkHttp3InterceptorsTest.kt index 193dfa9b1b..5c697a9d50 100644 --- a/embrace-android-okhttp3/src/test/kotlin/io/embrace/android/embracesdk/okhttp3/EmbraceOkHttp3InterceptorsTest.kt +++ b/embrace-android-okhttp3/src/test/kotlin/io/embrace/android/embracesdk/okhttp3/EmbraceOkHttp3InterceptorsTest.kt @@ -38,6 +38,7 @@ import org.junit.Before import org.junit.Test import java.io.ByteArrayOutputStream import java.net.SocketException +import java.util.Locale import java.util.concurrent.atomic.AtomicLong import java.util.zip.GZIPOutputStream @@ -644,8 +645,8 @@ internal class EmbraceOkHttp3InterceptorsTest { private fun validateDefaultNonBodyNetworkCaptureData(networkCaptureData: NetworkCaptureData?) { with(checkNotNull(networkCaptureData)) { - assertEquals(requestHeaderValue, requestHeaders?.get(requestHeaderName.toLowerCase())) - assertEquals(responseHeaderValue, responseHeaders?.get(responseHeaderName.toLowerCase())) + assertEquals(requestHeaderValue, requestHeaders?.get(requestHeaderName.lowercase(Locale.ENGLISH))) + assertEquals(responseHeaderValue, responseHeaders?.get(responseHeaderName.lowercase(Locale.ENGLISH))) assertEquals(defaultQueryString, requestQueryParams) val buffer = Buffer() capturedRequestBody?.toRequestBody()?.writeTo(buffer) diff --git a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ActivityFeatureTest.kt b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ActivityFeatureTest.kt index ba0788671d..1e9c517ae5 100644 --- a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ActivityFeatureTest.kt +++ b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ActivityFeatureTest.kt @@ -3,11 +3,9 @@ package io.embrace.android.embracesdk.features import android.os.Build import androidx.test.ext.junit.runners.AndroidJUnit4 import io.embrace.android.embracesdk.IntegrationTestRule -import io.embrace.android.embracesdk.internal.arch.schema.EmbType -import io.embrace.android.embracesdk.internal.config.local.SdkLocalConfig -import io.embrace.android.embracesdk.internal.config.local.ViewLocalConfig -import io.embrace.android.embracesdk.fakes.fakeBreadcrumbBehavior +import io.embrace.android.embracesdk.fakes.FakeBreadcrumbBehavior import io.embrace.android.embracesdk.findSpansOfType +import io.embrace.android.embracesdk.internal.arch.schema.EmbType import io.embrace.android.embracesdk.internal.clock.nanosToMillis import io.embrace.android.embracesdk.internal.spans.findAttributeValue import io.embrace.android.embracesdk.recordSession @@ -28,12 +26,8 @@ internal class ActivityFeatureTest { @Test fun `automatically capture activities`() { with(testRule) { - harness.overriddenConfigService.breadcrumbBehavior = fakeBreadcrumbBehavior( - localCfg = { - SdkLocalConfig( - viewConfig = ViewLocalConfig(enableAutomaticActivityCapture = true) - ) - } + harness.overriddenConfigService.breadcrumbBehavior = FakeBreadcrumbBehavior( + automaticActivityCaptureEnabled = true ) startSdk() var startTimeMs: Long = 0 diff --git a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ThermalStateTest.kt b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ThermalStateTest.kt index 0d7ce4024b..c289a66e69 100644 --- a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ThermalStateTest.kt +++ b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/features/ThermalStateTest.kt @@ -4,14 +4,14 @@ import android.os.Build import android.os.PowerManager import androidx.test.ext.junit.runners.AndroidJUnit4 import io.embrace.android.embracesdk.IntegrationTestRule -import io.embrace.android.embracesdk.internal.arch.schema.EmbType -import io.embrace.android.embracesdk.internal.config.remote.DataRemoteConfig -import io.embrace.android.embracesdk.internal.config.remote.RemoteConfig import io.embrace.android.embracesdk.fakes.fakeAutoDataCaptureBehavior import io.embrace.android.embracesdk.fakes.fakeSdkModeBehavior import io.embrace.android.embracesdk.findSpanSnapshotsOfType import io.embrace.android.embracesdk.findSpansOfType +import io.embrace.android.embracesdk.internal.arch.schema.EmbType import io.embrace.android.embracesdk.internal.clock.nanosToMillis +import io.embrace.android.embracesdk.internal.config.remote.DataRemoteConfig +import io.embrace.android.embracesdk.internal.config.remote.RemoteConfig import io.embrace.android.embracesdk.internal.spans.findAttributeValue import io.embrace.android.embracesdk.recordSession import org.junit.Assert.assertEquals @@ -43,7 +43,7 @@ internal class ThermalStateFeatureTest { startTimeMs = harness.overriddenClock.now() val dataSource = - checkNotNull(bootstrapper.featureModule.thermalStateDataSource?.dataSource) + checkNotNull(bootstrapper.featureModule.thermalStateDataSource.dataSource) dataSource.handleThermalStateChange(PowerManager.THERMAL_STATUS_NONE) }) @@ -68,7 +68,7 @@ internal class ThermalStateFeatureTest { startTimeMs = harness.overriddenClock.now() val dataSource = - checkNotNull(bootstrapper.featureModule.thermalStateDataSource?.dataSource) + checkNotNull(bootstrapper.featureModule.thermalStateDataSource.dataSource) dataSource.handleThermalStateChange(PowerManager.THERMAL_STATUS_CRITICAL) harness.overriddenClock.tick(tickTimeMs) dataSource.handleThermalStateChange(PowerManager.THERMAL_STATUS_MODERATE) diff --git a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/session/StatefulSessionTest.kt b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/session/StatefulSessionTest.kt index d897ba6935..7c64e9191b 100644 --- a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/session/StatefulSessionTest.kt +++ b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/session/StatefulSessionTest.kt @@ -4,13 +4,13 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import io.embrace.android.embracesdk.IntegrationTestRule import io.embrace.android.embracesdk.findSessionSpan import io.embrace.android.embracesdk.getSentSessions -import io.embrace.android.embracesdk.internal.spans.findAttributeValue +import io.embrace.android.embracesdk.getSessionId import io.embrace.android.embracesdk.internal.opentelemetry.embErrorLogCount import io.embrace.android.embracesdk.internal.opentelemetry.embSessionEndType import io.embrace.android.embracesdk.internal.opentelemetry.embSessionStartType import io.embrace.android.embracesdk.internal.payload.LifeEventType +import io.embrace.android.embracesdk.internal.spans.findAttributeValue import io.embrace.android.embracesdk.recordSession -import io.embrace.android.embracesdk.getSessionId import org.junit.Assert.assertEquals import org.junit.Assert.assertNotEquals import org.junit.Assert.assertTrue @@ -18,6 +18,7 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import java.util.Locale /** * Asserts that a stateful session can be recorded. @@ -49,11 +50,15 @@ internal class StatefulSessionTest { val first = messages[0] val attrs = checkNotNull(first.findSessionSpan().attributes) assertEquals( - LifeEventType.STATE.name.toLowerCase(), attrs.findAttributeValue( - embSessionStartType.name)) + LifeEventType.STATE.name.lowercase(Locale.ENGLISH), attrs.findAttributeValue( + embSessionStartType.name + ) + ) assertEquals( - LifeEventType.STATE.name.toLowerCase(), attrs.findAttributeValue( - embSessionEndType.name)) + LifeEventType.STATE.name.lowercase(Locale.ENGLISH), attrs.findAttributeValue( + embSessionEndType.name + ) + ) assertEquals("0", attrs.findAttributeValue(embErrorLogCount.name)) // verify second session diff --git a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/PushNotificationApiTest.kt b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/PushNotificationApiTest.kt index 3e5257166f..84e346a49a 100644 --- a/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/PushNotificationApiTest.kt +++ b/embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/PushNotificationApiTest.kt @@ -3,11 +3,10 @@ package io.embrace.android.embracesdk.testcases import android.os.Build import androidx.test.ext.junit.runners.AndroidJUnit4 import io.embrace.android.embracesdk.IntegrationTestRule -import io.embrace.android.embracesdk.fakes.fakeBreadcrumbBehavior +import io.embrace.android.embracesdk.fakes.FakeBreadcrumbBehavior import io.embrace.android.embracesdk.findEventOfType import io.embrace.android.embracesdk.findSessionSpan import io.embrace.android.embracesdk.internal.arch.schema.EmbType -import io.embrace.android.embracesdk.internal.config.local.SdkLocalConfig import io.embrace.android.embracesdk.internal.payload.Envelope import io.embrace.android.embracesdk.internal.payload.SessionPayload import io.embrace.android.embracesdk.recordSession @@ -75,8 +74,8 @@ internal class PushNotificationApiTest { @Test fun `log push notification with pii`() { with(testRule) { - harness.overriddenConfigService.breadcrumbBehavior = fakeBreadcrumbBehavior( - localCfg = { SdkLocalConfig(captureFcmPiiData = true) } + harness.overriddenConfigService.breadcrumbBehavior = FakeBreadcrumbBehavior( + captureFcmPiiDataEnabled = true ) startSdk() val payload = checkNotNull(harness.recordSession { diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/injection/ModuleInitBootstrapper.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/injection/ModuleInitBootstrapper.kt index 4b9a4aaa80..42fc635a0b 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/injection/ModuleInitBootstrapper.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/injection/ModuleInitBootstrapper.kt @@ -553,5 +553,5 @@ internal class ModuleInitBootstrapper( // This is called twice for each input - memoizing/caching is not worth the hassle private fun toSectionName(klass: KClass<*>): String = - klass.simpleName?.removeSuffix("Module")?.toLowerCase(Locale.ENGLISH) ?: "module" + klass.simpleName?.removeSuffix("Module")?.lowercase(Locale.ENGLISH) ?: "module" } diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/session/orchestrator/SessionSpanAttrPopulatorImpl.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/session/orchestrator/SessionSpanAttrPopulatorImpl.kt index 0c719c6fc9..004be449f6 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/session/orchestrator/SessionSpanAttrPopulatorImpl.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/session/orchestrator/SessionSpanAttrPopulatorImpl.kt @@ -38,11 +38,11 @@ internal class SessionSpanAttrPopulatorImpl( with(sessionSpanWriter) { addSystemAttribute(SpanAttributeData(embColdStart.name, session.isColdStart.toString())) addSystemAttribute(SpanAttributeData(embSessionNumber.name, session.number.toString())) - addSystemAttribute(SpanAttributeData(embState.name, session.appState.name.toLowerCase(Locale.US))) + addSystemAttribute(SpanAttributeData(embState.name, session.appState.name.lowercase(Locale.US))) addSystemAttribute(SpanAttributeData(embCleanExit.name, false.toString())) addSystemAttribute(SpanAttributeData(embTerminated.name, true.toString())) - session.startType.toString().toLowerCase(Locale.US).let { + session.startType.toString().lowercase(Locale.US).let { addSystemAttribute(SpanAttributeData(embSessionStartType.name, it)) } } @@ -55,7 +55,7 @@ internal class SessionSpanAttrPopulatorImpl( crashId?.let { addSystemAttribute(SpanAttributeData(embCrashId.name, crashId)) } - endType?.toString()?.toLowerCase(Locale.US)?.let { + endType?.toString()?.lowercase(Locale.US)?.let { addSystemAttribute(SpanAttributeData(embSessionEndType.name, it)) } diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/event/EmbraceEventServiceTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/event/EmbraceEventServiceTest.kt index fb0d44efa3..4f6949baf6 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/event/EmbraceEventServiceTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/event/EmbraceEventServiceTest.kt @@ -41,6 +41,7 @@ import org.junit.Assert.assertTrue import org.junit.Before import org.junit.BeforeClass import org.junit.Test +import java.util.Locale internal class EmbraceEventServiceTest { @@ -363,7 +364,7 @@ internal class EmbraceEventServiceTest { @Test fun `startup event name is case sensitive`() { - eventService.startEvent(STARTUP_EVENT_NAME.toUpperCase()) + eventService.startEvent(STARTUP_EVENT_NAME.uppercase(Locale.ENGLISH)) assertNull(eventService.getActiveEvent(STARTUP_EVENT_NAME, null)) eventService.applicationStartupComplete() val lastEvent = deliveryService.lastEventSentAsync diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakeDeliveryService.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakeDeliveryService.kt index 094955da89..3b171c3252 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakeDeliveryService.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/FakeDeliveryService.kt @@ -14,6 +14,7 @@ import io.embrace.android.embracesdk.internal.session.id.SessionIdTracker import io.embrace.android.embracesdk.internal.session.orchestrator.SessionSnapshotType import io.embrace.android.embracesdk.internal.spans.findAttributeValue import io.embrace.android.embracesdk.internal.utils.Provider +import java.util.Locale /** * A [DeliveryService] that records the last parameters used to invoke each method, and for the ones that need it, count the number of @@ -83,7 +84,7 @@ internal open class FakeDeliveryService : DeliveryService { } private fun Envelope.findAppState(): ApplicationState { - val value = findSessionSpan().attributes?.findAttributeValue(embState.name)?.toUpperCase() + val value = findSessionSpan().attributes?.findAttributeValue(embState.name)?.uppercase(Locale.ENGLISH) return ApplicationState.valueOf(checkNotNull(value)) } diff --git a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/BehaviorFakes.kt b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/BehaviorFakes.kt index 93a78735a5..b72d9373f0 100644 --- a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/BehaviorFakes.kt +++ b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/BehaviorFakes.kt @@ -9,8 +9,6 @@ import io.embrace.android.embracesdk.internal.config.behavior.AutoDataCaptureBeh import io.embrace.android.embracesdk.internal.config.behavior.BackgroundActivityBehavior import io.embrace.android.embracesdk.internal.config.behavior.BackgroundActivityBehaviorImpl import io.embrace.android.embracesdk.internal.config.behavior.BehaviorThresholdCheck -import io.embrace.android.embracesdk.internal.config.behavior.BreadcrumbBehavior -import io.embrace.android.embracesdk.internal.config.behavior.BreadcrumbBehaviorImpl import io.embrace.android.embracesdk.internal.config.behavior.DataCaptureEventBehavior import io.embrace.android.embracesdk.internal.config.behavior.DataCaptureEventBehaviorImpl import io.embrace.android.embracesdk.internal.config.behavior.LogMessageBehavior @@ -92,16 +90,6 @@ public fun fakeAutoDataCaptureBehavior( remoteCfg: Provider = { null } ): AutoDataCaptureBehavior = AutoDataCaptureBehaviorImpl(thresholdCheck, localCfg, remoteCfg) -/** - * A fake [BreadcrumbBehaviorImpl] that returns default values. - */ -@Deprecated("Use FakeBreadcrumberBehavior class instead") -public fun fakeBreadcrumbBehavior( - thresholdCheck: BehaviorThresholdCheck = behaviorThresholdCheck, - localCfg: Provider = { null }, - remoteCfg: Provider = { null } -): BreadcrumbBehavior = BreadcrumbBehaviorImpl(thresholdCheck, localCfg, remoteCfg) - /** * A fake [LogMessageBehaviorImpl] that returns default values. */ diff --git a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeBreadcrumbBehavior.kt b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeBreadcrumbBehavior.kt index d875850e83..2b4c59be8d 100644 --- a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeBreadcrumbBehavior.kt +++ b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeBreadcrumbBehavior.kt @@ -12,7 +12,7 @@ public class FakeBreadcrumbBehavior( public var automaticActivityCaptureEnabled: Boolean = true, public var webViewBreadcrumbCaptureEnabled: Boolean = true, public var queryParamCaptureEnabled: Boolean = true, - public var captureFcmPiiDataEnabled: Boolean = true + public var captureFcmPiiDataEnabled: Boolean = false ) : BreadcrumbBehavior { override fun getCustomBreadcrumbLimit(): Int = customBreadcrumbLimitImpl override fun getFragmentBreadcrumbLimit(): Int = fragmentBreadcrumbLimitImpl diff --git a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeConfigService.kt b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeConfigService.kt index 58156a12be..4e846b1971 100644 --- a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeConfigService.kt +++ b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeConfigService.kt @@ -31,7 +31,7 @@ public class FakeConfigService( private var hasValidRemoteConfig: Boolean = false, override var backgroundActivityBehavior: BackgroundActivityBehavior = fakeBackgroundActivityBehavior(), override var autoDataCaptureBehavior: AutoDataCaptureBehavior = fakeAutoDataCaptureBehavior(), - override var breadcrumbBehavior: BreadcrumbBehavior = fakeBreadcrumbBehavior(), + override var breadcrumbBehavior: BreadcrumbBehavior = FakeBreadcrumbBehavior(), override var logMessageBehavior: LogMessageBehavior = fakeLogMessageBehavior(), override var anrBehavior: AnrBehavior = fakeAnrBehavior(), override var sessionBehavior: SessionBehavior = fakeSessionBehavior(), diff --git a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeLogRecordData.kt b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeLogRecordData.kt index a03d56d41b..9cf5d43db1 100644 --- a/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeLogRecordData.kt +++ b/embrace-test-fakes/src/main/kotlin/io/embrace/android/embracesdk/fakes/FakeLogRecordData.kt @@ -36,10 +36,12 @@ public class FakeLogRecordData( } override fun getSpanContext(): SpanContext { - return if (log.traceId != null && log.spanId != null) { + val traceId = log.traceId + val spanId = log.spanId + return if (traceId != null && spanId != null) { ImmutableSpanContext.create( - log.traceId, - log.spanId, + traceId, + spanId, TraceFlags.getDefault(), TraceState.getDefault(), false,