Skip to content

Commit b5d86ba

Browse files
fix: test cases
1 parent 63d2088 commit b5d86ba

File tree

3 files changed

+106
-3
lines changed

3 files changed

+106
-3
lines changed

android/src/main/java/com/instabug/flutter/modules/ApmApi.java

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
import com.instabug.apm.configuration.cp.FeatureAvailabilityCallback;
1212
import com.instabug.apm.model.ExecutionTrace;
1313
import com.instabug.apm.networking.APMNetworkLogger;
14+
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
1415
import com.instabug.flutter.generated.ApmPigeon;
1516
import com.instabug.flutter.util.Reflection;
1617
import com.instabug.flutter.util.ThreadManager;
1718
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
1819

1920
import io.flutter.plugin.common.BinaryMessenger;
2021

21-
import org.jetbrains.annotations.NotNull;
2222
import org.json.JSONObject;
2323

2424
import java.lang.reflect.Method;
@@ -210,10 +210,54 @@ public void networkLogAndroid(@NonNull Map<String, Object> data) {
210210
if (data.containsKey("serverErrorMessage")) {
211211
serverErrorMessage = (String) data.get("serverErrorMessage");
212212
}
213+
Boolean isW3cHeaderFound = null;
214+
Number partialId = null;
215+
Number networkStartTimeInSeconds = null;
216+
String w3CGeneratedHeader = null;
217+
String w3CCaughtHeader = null;
218+
219+
if (data.containsKey("isW3cHeaderFound")) {
220+
isW3cHeaderFound = (Boolean) data.get("isW3cHeaderFound");
221+
}
222+
223+
if (data.containsKey("partialId")) {
224+
225+
226+
partialId = ((Number) data.get("partialId"));
227+
228+
}
229+
if (data.containsKey("networkStartTimeInSeconds")) {
230+
networkStartTimeInSeconds = ((Number) data.get("networkStartTimeInSeconds"));
231+
}
232+
233+
if (data.containsKey("w3CGeneratedHeader")) {
234+
235+
w3CGeneratedHeader = (String) data.get("w3CGeneratedHeader");
236+
237+
}
238+
239+
240+
if (data.containsKey("w3CCaughtHeader")) {
241+
w3CCaughtHeader = (String) data.get("w3CCaughtHeader");
242+
243+
}
244+
245+
246+
APMCPNetworkLog.W3CExternalTraceAttributes w3cExternalTraceAttributes =
247+
null;
248+
if (isW3cHeaderFound != null) {
249+
w3cExternalTraceAttributes = new APMCPNetworkLog.W3CExternalTraceAttributes(
250+
isW3cHeaderFound, partialId == null ? null : partialId.longValue(),
251+
networkStartTimeInSeconds == null ? null : networkStartTimeInSeconds.longValue(),
252+
w3CGeneratedHeader, w3CCaughtHeader
253+
254+
);
255+
}
256+
213257

214258
Method method = Reflection.getMethod(Class.forName("com.instabug.apm.networking.APMNetworkLogger"), "log", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class, APMCPNetworkLog.W3CExternalTraceAttributes.class);
215259
if (method != null) {
216-
method.invoke(apmNetworkLogger, requestStartTime, requestDuration, requestHeaders, requestBody, requestBodySize, requestMethod, requestUrl, requestContentType, responseHeaders, responseBody, responseBodySize, statusCode, responseContentType, errorMessage, gqlQueryName, serverErrorMessage, null);
260+
method.invoke(apmNetworkLogger, requestStartTime, requestDuration, requestHeaders, requestBody, requestBodySize, requestMethod, requestUrl, requestContentType, responseHeaders, responseBody, responseBodySize, statusCode, responseContentType, errorMessage, gqlQueryName, serverErrorMessage, w3cExternalTraceAttributes);
217261
} else {
218262
Log.e(TAG, "APMNetworkLogger.log was not found by reflection");
219263
}

android/src/test/java/com/instabug/flutter/ApmApiTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
package com.instabug.flutter;
22

3+
import static com.instabug.flutter.util.GlobalMocks.reflected;
4+
import static com.instabug.flutter.util.MockResult.makeResult;
5+
import static org.junit.Assert.assertEquals;
6+
import static org.mockito.ArgumentMatchers.any;
7+
import static org.mockito.ArgumentMatchers.anyInt;
8+
import static org.mockito.ArgumentMatchers.anyString;
9+
import static org.mockito.ArgumentMatchers.eq;
10+
import static org.mockito.Mockito.mock;
11+
import static org.mockito.Mockito.mockConstruction;
12+
import static org.mockito.Mockito.mockStatic;
13+
import static org.mockito.Mockito.verify;
14+
import static org.mockito.Mockito.when;
15+
316
import com.instabug.apm.APM;
417
import com.instabug.apm.InternalAPM;
518
import com.instabug.apm.configuration.cp.APMFeature;
19+
import com.instabug.apm.InternalAPM;
20+
import com.instabug.apm.configuration.cp.APMFeature;
621
import com.instabug.apm.configuration.cp.FeatureAvailabilityCallback;
722
import com.instabug.apm.model.ExecutionTrace;
823
import com.instabug.apm.networking.APMNetworkLogger;
24+
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
925
import com.instabug.flutter.generated.ApmPigeon;
1026
import com.instabug.flutter.modules.ApmApi;
1127
import com.instabug.flutter.util.GlobalMocks;

ios/Classes/Util/IBGNetworkLogger+CP.h

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
NS_ASSUME_NONNULL_BEGIN
44

5-
@interface IBGNetworkLogger (CP)
5+
6+
@interface IBGNetworkLogger (PrivateAPIs)
7+
8+
@property (class, atomic, assign) BOOL w3ExternalTraceIDEnabled;
9+
@property (class, atomic, assign) BOOL w3ExternalGeneratedHeaderEnabled;
10+
@property (class, atomic, assign) BOOL w3CaughtHeaderEnabled;
611

712
+ (void)disableAutomaticCapturingOfNetworkLogs;
813

@@ -28,6 +33,44 @@ NS_ASSUME_NONNULL_BEGIN
2833
generatedW3CTraceparent:(NSString * _Nullable)generatedW3CTraceparent
2934
caughtedW3CTraceparent:(NSString * _Nullable)caughtedW3CTraceparent;
3035

36+
+ (void)addNetworkLogWithUrl:(NSString *_Nonnull)url
37+
method:(NSString *_Nonnull)method
38+
requestBody:(NSString *_Nonnull)request
39+
requestBodySize:(int64_t)requestBodySize
40+
responseBody:(NSString *_Nonnull)response
41+
responseBodySize:(int64_t)responseBodySize
42+
responseCode:(int32_t)code
43+
requestHeaders:(NSDictionary *_Nonnull)requestHeaders
44+
responseHeaders:(NSDictionary *_Nonnull)responseHeaders
45+
contentType:(NSString *_Nonnull)contentType
46+
errorDomain:(NSString *_Nullable)errorDomain
47+
errorCode:(int32_t)errorCode
48+
startTime:(int64_t)startTime
49+
duration:(int64_t) duration
50+
gqlQueryName:(NSString * _Nullable)gqlQueryName
51+
serverErrorMessage:(NSString * _Nullable)serverErrorMessage
52+
isW3cCaughted:(NSNumber * _Nullable)isW3cCaughted
53+
partialID:(NSNumber * _Nullable)partialID
54+
timestamp:(NSNumber * _Nullable)timestamp
55+
generatedW3CTraceparent:(NSString * _Nullable)generatedW3CTraceparent
56+
caughtedW3CTraceparent:(NSString * _Nullable)caughtedW3CTraceparent;
57+
58+
+ (void)addNetworkLogWithUrl:(NSString *_Nonnull)url
59+
method:(NSString *_Nonnull)method
60+
requestBody:(NSString *_Nonnull)request
61+
requestBodySize:(int64_t)requestBodySize
62+
responseBody:(NSString *_Nonnull)response
63+
responseBodySize:(int64_t)responseBodySize
64+
responseCode:(int32_t)code
65+
requestHeaders:(NSDictionary *_Nonnull)requestHeaders
66+
responseHeaders:(NSDictionary *_Nonnull)responseHeaders
67+
contentType:(NSString *_Nonnull)contentType
68+
errorDomain:(NSString *_Nullable)errorDomain
69+
errorCode:(int32_t)errorCode
70+
startTime:(int64_t)startTime
71+
duration:(int64_t) duration
72+
gqlQueryName:(NSString * _Nullable)gqlQueryName;
73+
3174
@end
3275

3376
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)