@@ -12,7 +12,8 @@ class SentryStackTraceFactoryTest {
1212 @Test
1313 fun `when getStackFrames is called passing a valid Array, not empty result` () {
1414 val stacktrace = Thread .currentThread().stackTrace
15- val count = stacktrace.size
15+ // count the stack traces but ignores the test class which is io.sentry package
16+ val count = stacktrace.size - 1
1617 assertEquals(count, sut.getStackFrames(stacktrace)!! .count())
1718 }
1819
@@ -55,9 +56,9 @@ class SentryStackTraceFactoryTest {
5556 // region inAppExcludes
5657 @Test
5758 fun `when getStackFrames is called passing a valid inAppExcludes, inApp should be false if prefix matches it` () {
58- val element = generateStackTrace(" io.sentry .MyActivity" )
59+ val element = generateStackTrace(" io.mysentry .MyActivity" )
5960 val elements = arrayOf(element)
60- val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.sentry " ), null )
61+ val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.mysentry " ), null )
6162 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
6263
6364 assertFalse(sentryElements!! .first().isInApp)
@@ -67,15 +68,15 @@ class SentryStackTraceFactoryTest {
6768 fun `when getStackFrames is called passing a valid inAppExcludes, inApp should be false if prefix doesnt matches it` () {
6869 val element = generateStackTrace(" io.myapp.MyActivity" )
6970 val elements = arrayOf(element)
70- val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.sentry " ), null )
71+ val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.mysentry " ), null )
7172 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
7273
7374 assertFalse(sentryElements!! .first().isInApp)
7475 }
7576
7677 @Test
7778 fun `when getStackFrames is called passing an invalid inAppExcludes, inApp should be false` () {
78- val element = generateStackTrace(" io.sentry .MyActivity" )
79+ val element = generateStackTrace(" io.mysentry .MyActivity" )
7980 val elements = arrayOf(element)
8081 val sentryStackTraceFactory = SentryStackTraceFactory (null , null )
8182 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
@@ -87,9 +88,9 @@ class SentryStackTraceFactoryTest {
8788 // region inAppIncludes
8889 @Test
8990 fun `when getStackFrames is called passing a valid inAppIncludes, inApp should be true if prefix matches it` () {
90- val element = generateStackTrace(" io.sentry .MyActivity" )
91+ val element = generateStackTrace(" io.mysentry .MyActivity" )
9192 val elements = arrayOf(element)
92- val sentryStackTraceFactory = SentryStackTraceFactory (null , listOf (" io.sentry " ))
93+ val sentryStackTraceFactory = SentryStackTraceFactory (null , listOf (" io.mysentry " ))
9394 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
9495
9596 assertTrue(sentryElements!! .first().isInApp)
@@ -99,15 +100,15 @@ class SentryStackTraceFactoryTest {
99100 fun `when getStackFrames is called passing a valid inAppIncludes, inApp should be false if prefix doesnt matches it` () {
100101 val element = generateStackTrace(" io.myapp.MyActivity" )
101102 val elements = arrayOf(element)
102- val sentryStackTraceFactory = SentryStackTraceFactory (null , listOf (" io.sentry " ))
103+ val sentryStackTraceFactory = SentryStackTraceFactory (null , listOf (" io.mysentry " ))
103104 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
104105
105106 assertFalse(sentryElements!! .first().isInApp)
106107 }
107108
108109 @Test
109110 fun `when getStackFrames is called passing an invalid inAppIncludes, inApp should be false` () {
110- val element = generateStackTrace(" io.sentry .MyActivity" )
111+ val element = generateStackTrace(" io.mysentry .MyActivity" )
111112 val elements = arrayOf(element)
112113 val sentryStackTraceFactory = SentryStackTraceFactory (null , null )
113114 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
@@ -118,29 +119,40 @@ class SentryStackTraceFactoryTest {
118119
119120 @Test
120121 fun `when getStackFrames is called passing a valid inAppIncludes and inAppExcludes, inApp should take precedence` () {
121- val element = generateStackTrace(" io.sentry .MyActivity" )
122+ val element = generateStackTrace(" io.mysentry .MyActivity" )
122123 val elements = arrayOf(element)
123- val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.sentry " ), listOf (" io.sentry " ))
124+ val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.mysentry " ), listOf (" io.mysentry " ))
124125 val sentryElements = sentryStackTraceFactory.getStackFrames(elements)
125126
126127 assertTrue(sentryElements!! .first().isInApp)
127128 }
128129
129130 @Test
130131 fun `when class is defined in the app, inApp is true` () {
131- val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.sentry .not" ), listOf (" io.sentry .inApp" ))
132- assertTrue(sentryStackTraceFactory.isInApp(" io.sentry .inApp.ClassName" ))
133- assertTrue(sentryStackTraceFactory.isInApp(" io.sentry .inApp.somePackage.ClassName" ))
134- assertFalse(sentryStackTraceFactory.isInApp(" io.sentry .not.ClassName" ))
135- assertFalse(sentryStackTraceFactory.isInApp(" io.sentry .not.somePackage.ClassName" ))
132+ val sentryStackTraceFactory = SentryStackTraceFactory (listOf (" io.mysentry .not" ), listOf (" io.mysentry .inApp" ))
133+ assertTrue(sentryStackTraceFactory.isInApp(" io.mysentry .inApp.ClassName" ))
134+ assertTrue(sentryStackTraceFactory.isInApp(" io.mysentry .inApp.somePackage.ClassName" ))
135+ assertFalse(sentryStackTraceFactory.isInApp(" io.mysentry .not.ClassName" ))
136+ assertFalse(sentryStackTraceFactory.isInApp(" io.mysentry .not.somePackage.ClassName" ))
136137 }
137138
138139 @Test
139140 fun `when class is not in the list, is not inApp` () {
140- val sentryStackTraceFactory = SentryStackTraceFactory (listOf (), listOf (" io.sentry " ))
141+ val sentryStackTraceFactory = SentryStackTraceFactory (listOf (), listOf (" io.mysentry " ))
141142 assertFalse(sentryStackTraceFactory.isInApp(" com.getsentry" ))
142143 }
143144
145+ @Test
146+ fun `when getStackFrames is called, remove sentry classes` () {
147+ val stacktrace = Thread .currentThread().stackTrace
148+ val sentryElement = StackTraceElement (" io.sentry.element" , " test" , " test.java" , 1 )
149+ stacktrace.plusElement(sentryElement)
150+
151+ assertNull(sut.getStackFrames(stacktrace)!! .find {
152+ it.module.startsWith(" io.sentry" )
153+ })
154+ }
155+
144156 private fun generateStackTrace (className : String? ) =
145157 StackTraceElement (className, " method" , " fileName" , 10 )
146158}
0 commit comments