Skip to content

Commit 2fb367c

Browse files
committed
Fix tests
1 parent db94d96 commit 2fb367c

File tree

2 files changed

+14
-37
lines changed

2 files changed

+14
-37
lines changed

sentry-android-core/src/test/java/io/sentry/android/core/internal/gestures/SentryGestureListenerScrollTest.kt

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class SentryGestureListenerScrollTest {
5959
val directions = setOf("up", "down", "left", "right")
6060

6161
internal inline fun <reified T : View> getSut(
62-
resourceName: String = "test_scroll_view",
62+
resourceName: String? = "test_scroll_view",
6363
touchWithinBounds: Boolean = true,
6464
direction: String = "",
6565
): SentryGestureListener {
@@ -234,45 +234,17 @@ class SentryGestureListenerScrollTest {
234234

235235
@Test
236236
fun `logs error message only once per gesture when no scroll target is found`() {
237-
val mockLogger = mock<ILogger>()
238-
fixture.options.setLogger(mockLogger)
239-
240-
// Create a setup where no scrollable view is found
241-
// Use regular View which doesn't implement ScrollingView/AbsListView/ScrollView
242-
fixture.target =
243-
mockView<View>(
244-
event = fixture.firstEvent,
245-
touchWithinBounds = true,
246-
context = fixture.context,
247-
)
248-
fixture.window.mockDecorView<ViewGroup>(event = fixture.firstEvent) {
249-
whenever(it.childCount).thenReturn(1)
250-
whenever(it.getChildAt(0)).thenReturn(fixture.target)
251-
}
252-
253-
fixture.resources.mockForTarget(fixture.target, "test_view")
254-
whenever(fixture.context.resources).thenReturn(fixture.resources)
255-
whenever(fixture.target.context).thenReturn(fixture.context)
256-
whenever(fixture.activity.window).thenReturn(fixture.window)
257-
doAnswer { (it.arguments[0] as ScopeCallback).run(fixture.scope) }
258-
.whenever(fixture.scopes)
259-
.configureScope(any())
260-
doAnswer {
261-
(it.arguments[0] as Scope.IWithPropagationContext).accept(fixture.propagationContext)
262-
fixture.propagationContext
263-
}
264-
.whenever(fixture.scope)
265-
.withPropagationContext(any())
266-
267-
val sut = SentryGestureListener(fixture.activity, fixture.scopes, fixture.options)
237+
val logger = mock<ILogger>()
238+
fixture.options.setLogger(logger)
239+
fixture.options.isDebug = true
240+
val sut = fixture.getSut<ScrollableListView>(resourceName = null)
268241

269242
sut.onDown(fixture.firstEvent)
270-
// Multiple onScroll calls during the same gesture - should only log once
271-
fixture.eventsInBetween.forEach { sut.onScroll(fixture.firstEvent, it, 10f, 0f) }
243+
fixture.eventsInBetween.forEach { sut.onScroll(fixture.firstEvent, it, 10.0f, 0f) }
272244
sut.onUp(fixture.endEvent)
273245

274246
// Verify that the error message is logged only once during the entire gesture
275-
verify(mockLogger, times(1))
247+
verify(logger, times(1))
276248
.log(SentryLevel.DEBUG, "Unable to find scroll target. No breadcrumb captured.")
277249
}
278250

sentry-android-core/src/test/java/io/sentry/android/core/internal/gestures/ViewHelpers.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ internal inline fun <reified T : View> mockView(
6767
return mockView
6868
}
6969

70-
internal fun Resources.mockForTarget(target: View, expectedResourceName: String) {
71-
whenever(getResourceEntryName(target.id)).thenReturn(expectedResourceName)
70+
internal fun Resources.mockForTarget(target: View, expectedResourceName: String?) {
71+
if (expectedResourceName == null) {
72+
whenever(getResourceEntryName(target.id))
73+
.thenThrow(Resources.NotFoundException("res not found"))
74+
} else {
75+
whenever(getResourceEntryName(target.id)).thenReturn(expectedResourceName)
76+
}
7277
}

0 commit comments

Comments
 (0)