@@ -399,7 +399,7 @@ public void testDeviceSampling_tracesDisabledButNetworkEnabled() {
399
399
}
400
400
401
401
@ Test
402
- public void testDeviceSampling_tracesEnabledButFragmentDisabled () {
402
+ public void testDeviceSampling_tracesEnabledButFragmentDisabled_dropsFragmentTrace () {
403
403
makeConfigResolverReturnDefaultValues ();
404
404
when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.5f );
405
405
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.02f );
@@ -435,7 +435,7 @@ public void testDeviceSampling_tracesEnabledButFragmentDisabled() {
435
435
}
436
436
437
437
@ Test
438
- public void testDeviceSampling_tracesDisabledButFragmentEnabled () {
438
+ public void testDeviceSampling_tracesDisabledButFragmentEnabled_dropsFragmentTrace () {
439
439
makeConfigResolverReturnDefaultValues ();
440
440
when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.02f );
441
441
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.5f );
@@ -551,6 +551,30 @@ public void testDeviceSampling_bothTracesAndNetworkDisabled() {
551
551
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
552
552
}
553
553
554
+ @ Test
555
+ public void testDeviceSampling_bothTracesAndFragmentEnabled_acceptsFragmentTrace () {
556
+ makeConfigResolverReturnDefaultValues ();
557
+ when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.5f );
558
+ when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.5f );
559
+
560
+ RateLimiter limiter =
561
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
562
+
563
+ assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
564
+ assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isTrue ();
565
+
566
+ PerfMetric trace =
567
+ PerfMetric .newBuilder ()
568
+ .setTraceMetric (
569
+ TraceMetric .newBuilder ()
570
+ .setName ("_st_TestFragment" )
571
+ .putCustomAttributes (Constants .ACTIVITY_ATTRIBUTE_KEY , "TestActivity" )
572
+ .addAllPerfSessions (Arrays .asList (createNonVerbosePerfSessions ())))
573
+ .build ();
574
+ assertThat (limiter .isFragmentScreenTrace (trace )).isTrue ();
575
+ assertThat (limiter .isEventSampled (trace )).isTrue ();
576
+ }
577
+
554
578
@ Test
555
579
public void testDeviceSampling_changeInTraceSamplingRateIsImmediatelyEffective () {
556
580
makeConfigResolverReturnDefaultValues ();
@@ -923,12 +947,12 @@ public void testNetworkRequestsAreNotSampledWhenSessionIsVerboseAndSamplingEnabl
923
947
}
924
948
925
949
@ Test
926
- public void testFragmentScreenTraces_areSampled_whenSessionIsVerboseAndSamplingEnabled () {
950
+ public void isEventSampled_verboseSessionEnabledAndDiceRollFailed_returnsTrue () {
927
951
makeConfigResolverReturnDefaultValues ();
928
952
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.70f );
929
953
930
- // Passing a value for samplingBucketId which is greater than the sampling rate ensures that
931
- // the sampling will be enabled causing all the metrics to be dropped
954
+ // Passing a value for samplingBucketId which is greater than the sampling rate means that
955
+ // the sampling dice roll failed causing all the metrics to be dropped
932
956
RateLimiter limiter =
933
957
new RateLimiter (
934
958
/* rate= */ TWO_TOKENS_PER_SECOND ,
@@ -1001,12 +1025,12 @@ public void testNetworkRequestsAreSampledWhenSessionIsNonVerboseAndSamplingEnabl
1001
1025
}
1002
1026
1003
1027
@ Test
1004
- public void testFragmentScreenTraces_areNotSampled_whenSessionIsNonVerboseAndSamplingEnabled () {
1028
+ public void isEventSampled_verboseSessionDisabledAndDiceRollFailed_returnsFalse () {
1005
1029
makeConfigResolverReturnDefaultValues ();
1006
1030
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.70f );
1007
1031
1008
- // Passing a value for samplingBucketId which is greater than the sampling rate ensures that
1009
- // the sampling will be enabled causing all the metrics to be dropped
1032
+ // Passing a value for samplingBucketId which is greater than the sampling rate means that
1033
+ // the sampling dice roll failed causing all the metrics to be dropped
1010
1034
RateLimiter limiter =
1011
1035
new RateLimiter (
1012
1036
/* rate= */ TWO_TOKENS_PER_SECOND ,
0 commit comments