@@ -344,85 +344,6 @@ class SentryFragmentLifecycleCallbacksTest {
344344 )
345345 }
346346
347- @Test
348- fun `When fragment view is created via detach-attach, it should start tracing if enabled` () {
349- // Simulates detach/attach navigation: onFragmentCreated is NOT called, only
350- // onFragmentViewCreated
351- val sut = fixture.getSut(enableAutoFragmentLifecycleTracing = true )
352-
353- sut.onFragmentViewCreated(
354- fixture.fragmentManager,
355- fixture.fragment,
356- view = mock(),
357- savedInstanceState = null ,
358- )
359-
360- verify(fixture.transaction)
361- .startChild(
362- check<String > { assertEquals(SentryFragmentLifecycleCallbacks .FRAGMENT_LOAD_OP , it) },
363- check<String > { assertEquals(" androidx.fragment.app.Fragment" , it) },
364- )
365- }
366-
367- @Test
368- fun `When fragment view is created after onFragmentCreated, it should not start a second span` () {
369- // Normal path: onFragmentCreated already started the span; onFragmentViewCreated is a no-op
370- val sut = fixture.getSut(enableAutoFragmentLifecycleTracing = true )
371-
372- sut.onFragmentCreated(fixture.fragmentManager, fixture.fragment, savedInstanceState = null )
373- sut.onFragmentViewCreated(
374- fixture.fragmentManager,
375- fixture.fragment,
376- view = mock(),
377- savedInstanceState = null ,
378- )
379-
380- verify(fixture.transaction).startChild(any<String >(), any<String >())
381- }
382-
383- @Test
384- fun `When fragment is resumed, it should stop tracing if span is still running` () {
385- // Simulates detach/attach path where onFragmentStarted may be skipped
386- val sut = fixture.getSut(enableAutoFragmentLifecycleTracing = true )
387-
388- sut.onFragmentViewCreated(
389- fixture.fragmentManager,
390- fixture.fragment,
391- view = mock(),
392- savedInstanceState = null ,
393- )
394- sut.onFragmentResumed(fixture.fragmentManager, fixture.fragment)
395-
396- verify(fixture.span).finish(check { assertEquals(SpanStatus .OK , it) })
397- }
398-
399- @Test
400- fun `When fragment is resumed after started, it should not double-finish the span` () {
401- // Normal path: onFragmentStarted already stopped the span; onFragmentResumed is a no-op
402- val sut = fixture.getSut(enableAutoFragmentLifecycleTracing = true )
403-
404- sut.onFragmentCreated(fixture.fragmentManager, fixture.fragment, savedInstanceState = null )
405- sut.onFragmentStarted(fixture.fragmentManager, fixture.fragment)
406- sut.onFragmentResumed(fixture.fragmentManager, fixture.fragment)
407-
408- verify(fixture.span).finish(any())
409- }
410-
411- @Test
412- fun `When fragment view is destroyed before started, it should stop tracing as failsafe` () {
413- val sut = fixture.getSut(enableAutoFragmentLifecycleTracing = true )
414-
415- sut.onFragmentViewCreated(
416- fixture.fragmentManager,
417- fixture.fragment,
418- view = mock(),
419- savedInstanceState = null ,
420- )
421- sut.onFragmentViewDestroyed(fixture.fragmentManager, fixture.fragment)
422-
423- verify(fixture.span).finish(check { assertEquals(SpanStatus .OK , it) })
424- }
425-
426347 private fun verifyBreadcrumbAddedCount (count : Int ) {
427348 verify(fixture.scopes, times(count)).addBreadcrumb(any<Breadcrumb >(), anyOrNull())
428349 }
0 commit comments