Skip to content

Commit 4382648

Browse files
add tests
1 parent dfc28eb commit 4382648

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

sentry-android-core/src/test/java/io/sentry/android/core/AndroidOptionsInitializerTest.kt

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,21 @@ class AndroidOptionsInitializerTest {
7070
useRealContext: Boolean = false,
7171
configureOptions: SentryAndroidOptions.() -> Unit = {},
7272
configureContext: Context.() -> Unit = {},
73-
assets: AssetManager? = null
73+
assets: AssetManager? = null,
74+
customMockContext: Context? = null,
75+
isFragmentAvailable: Boolean = false
7476
) {
7577
sentryOptions.executorService = ImmediateExecutorService()
76-
mockContext = if (metadata != null) {
77-
ContextUtilsTestHelper.mockMetaData(
78-
mockContext = ContextUtilsTestHelper.createMockContext(hasAppContext),
79-
metaData = metadata,
80-
assets = assets
81-
)
82-
} else {
83-
ContextUtilsTestHelper.createMockContext(hasAppContext)
84-
}
78+
mockContext = customMockContext
79+
?: if (metadata != null) {
80+
ContextUtilsTestHelper.mockMetaData(
81+
mockContext = ContextUtilsTestHelper.createMockContext(hasAppContext),
82+
metaData = metadata,
83+
assets = assets
84+
)
85+
} else {
86+
ContextUtilsTestHelper.createMockContext(hasAppContext)
87+
}
8588
whenever(mockContext.cacheDir).thenReturn(file)
8689
if (mockContext.applicationContext != null) {
8790
whenever(mockContext.applicationContext.cacheDir).thenReturn(file)
@@ -101,7 +104,7 @@ class AndroidOptionsInitializerTest {
101104
BuildInfoProvider(AndroidLogger()),
102105
loadClass,
103106
activityFramesTracker,
104-
false,
107+
isFragmentAvailable,
105108
false,
106109
false
107110
)
@@ -880,4 +883,24 @@ class AndroidOptionsInitializerTest {
880883
assertFalse { fixture.sentryOptions.socketTagger is AndroidSocketTagger }
881884
assertFalse { fixture.sentryOptions.compositePerformanceCollector is DefaultCompositePerformanceCollector }
882885
}
886+
887+
@Test
888+
fun `When given context which is not instance of Application use applicationContext to initialize activityLifecycleCallbacks integrations`() {
889+
fixture.initSut(isFragmentAvailable = true)
890+
891+
assertNotNull(fixture.sentryOptions.integrations.firstOrNull { it is ActivityBreadcrumbsIntegration })
892+
assertNotNull(fixture.sentryOptions.integrations.firstOrNull { it is CurrentActivityIntegration })
893+
assertNotNull(fixture.sentryOptions.integrations.firstOrNull { it is UserInteractionIntegration })
894+
assertNotNull(fixture.sentryOptions.integrations.firstOrNull { it is FragmentLifecycleIntegration }) // Only when fragment is available
895+
}
896+
897+
@Test
898+
fun `When given context applicationContext is not App do not initialize activityLifecycleCallbacks integrations`() {
899+
fixture.initSut(customMockContext = mock<Context>())
900+
901+
assertNull(fixture.sentryOptions.integrations.firstOrNull { it is ActivityBreadcrumbsIntegration })
902+
assertNull(fixture.sentryOptions.integrations.firstOrNull { it is CurrentActivityIntegration })
903+
assertNull(fixture.sentryOptions.integrations.firstOrNull { it is UserInteractionIntegration })
904+
assertNull(fixture.sentryOptions.integrations.firstOrNull { it is FragmentLifecycleIntegration }) // Only when fragment is available
905+
}
883906
}

0 commit comments

Comments
 (0)