@@ -15,6 +15,7 @@ import 'package:instabug_flutter/InstabugLog.dart';
15
15
import 'package:instabug_flutter/NetworkLogger.dart' ;
16
16
import 'package:instabug_flutter/Replies.dart' ;
17
17
import 'package:instabug_flutter/Surveys.dart' ;
18
+ import 'package:instabug_flutter/instabug_custom_http_client.dart' ;
18
19
import 'package:instabug_flutter/models/crash_data.dart' ;
19
20
import 'package:instabug_flutter/models/exception_data.dart' ;
20
21
import 'package:instabug_flutter/models/network_data.dart' ;
@@ -44,6 +45,35 @@ void main() {
44
45
};
45
46
late MockPlatformManager mockPlatform;
46
47
48
+ const String url = 'https://jsonplaceholder.typicode.com' ;
49
+ const String method = 'POST' ;
50
+ final DateTime startDate = DateTime .now ();
51
+ final DateTime endDate = DateTime .now ().add (const Duration (hours: 1 ));
52
+ const dynamic requestBody = 'requestBody' ;
53
+ const dynamic responseBody = 'responseBody' ;
54
+ const int status = 200 ;
55
+ const Map <String , dynamic > requestHeaders = < String , dynamic > {
56
+ 'request' : 'request'
57
+ };
58
+ const Map <String , dynamic > responseHeaders = < String , dynamic > {
59
+ 'response' : 'response'
60
+ };
61
+ const int duration = 10 ;
62
+ const String contentType = 'contentType' ;
63
+ final NetworkData networkData = NetworkData (
64
+ url: url,
65
+ method: method,
66
+ startTime: startDate,
67
+ contentType: contentType,
68
+ duration: duration,
69
+ endTime: endDate,
70
+ requestBody: requestBody,
71
+ responseBody: responseBody,
72
+ requestHeaders: requestHeaders,
73
+ responseHeaders: responseHeaders,
74
+ status: status,
75
+ );
76
+
47
77
setUpAll (() async {
48
78
const MethodChannel ('instabug_flutter' )
49
79
.setMockMethodCallHandler ((MethodCall methodCall) async {
@@ -823,7 +853,8 @@ void main() {
823
853
});
824
854
825
855
test ('networkLog: Test' , () async {
826
- final data = NetworkData (method: 'method' , url: 'url' , startTime: DateTime .now ());
856
+ final data =
857
+ NetworkData (method: 'method' , url: 'url' , startTime: DateTime .now ());
827
858
final List <dynamic > args = < dynamic > [data.toMap ()];
828
859
NetworkLogger .networkLog (data);
829
860
expect (log, < Matcher > [
@@ -873,4 +904,76 @@ void main() {
873
904
]);
874
905
}
875
906
});
907
+ test ('Test NetworkData model ToMap' , () async {
908
+ final newNetworkData = networkData.toMap ();
909
+ expect (networkData.url, newNetworkData['url' ]);
910
+ expect (networkData.method, newNetworkData['method' ]);
911
+ expect (networkData.contentType, newNetworkData['contentType' ]);
912
+ expect (networkData.duration, newNetworkData['duration' ]);
913
+ expect (networkData.requestBody, newNetworkData['requestBody' ]);
914
+ expect (networkData.responseBody, newNetworkData['responseBody' ]);
915
+ expect (networkData.requestHeaders, newNetworkData['requestHeaders' ]);
916
+ expect (networkData.responseHeaders, newNetworkData['responseHeaders' ]);
917
+ });
918
+ test ('Test NetworkData model CopyWith empty' , () async {
919
+ final newNetworkData = networkData.copyWith ();
920
+ final newNetworkDataMap = newNetworkData.toMap ();
921
+ final networkDataMap = networkData.toMap ();
922
+ networkDataMap.forEach ((key, dynamic value) {
923
+ expect (value, newNetworkDataMap[key]);
924
+ });
925
+ });
926
+
927
+ test ('Test NetworkData model CopyWith' , () async {
928
+ const String urlCopy = 'https://jsonplaceholder.typicode.comCopy' ;
929
+ const String methodCopy = 'POSTCopy' ;
930
+ const dynamic requestBodyCopy = 'requestBodyCopy' ;
931
+ const dynamic responseBodyCopy = 'responseBodyCopy' ;
932
+ const Map <String , dynamic > requestHeadersCopy = < String , dynamic > {
933
+ 'requestCopy' : 'requestCopy'
934
+ };
935
+ const Map <String , dynamic > responseHeadersCopy = < String , dynamic > {
936
+ 'responseCopy' : 'responseCopy'
937
+ };
938
+ const int durationCopy = 20 ;
939
+ const String contentTypeCopy = 'contentTypeCopy' ;
940
+ final DateTime startDateCopy = DateTime .now ().add (const Duration (days: 1 ));
941
+ final DateTime endDateCopy = DateTime .now ().add (const Duration (days: 2 ));
942
+ const int statusCopy = 300 ;
943
+
944
+ final newNetworkData = networkData.copyWith (
945
+ url: urlCopy,
946
+ method: methodCopy,
947
+ requestBody: requestBodyCopy,
948
+ requestHeaders: requestHeadersCopy,
949
+ responseBody: responseBodyCopy,
950
+ responseHeaders: responseHeadersCopy,
951
+ duration: durationCopy,
952
+ contentType: contentTypeCopy,
953
+ startTime: startDateCopy,
954
+ endTime: endDateCopy,
955
+ status: statusCopy);
956
+
957
+ expect (newNetworkData.url, urlCopy);
958
+ expect (newNetworkData.method, methodCopy);
959
+ expect (newNetworkData.requestBody, requestBodyCopy);
960
+ expect (newNetworkData.requestHeaders, requestHeadersCopy);
961
+ expect (newNetworkData.responseBody, responseBodyCopy);
962
+ expect (newNetworkData.responseHeaders, responseHeadersCopy);
963
+ expect (newNetworkData.duration, durationCopy);
964
+ expect (newNetworkData.contentType, contentTypeCopy);
965
+ expect (newNetworkData.startTime, startDateCopy);
966
+ expect (newNetworkData.endTime, endDateCopy);
967
+ expect (newNetworkData.status, statusCopy);
968
+ });
969
+
970
+ test ('Test Http client logger' , () async {
971
+ final InstabugCustomHttpClient client = InstabugCustomHttpClient ();
972
+ final HttpClientRequest request = await client
973
+ .getUrl (Uri .parse ('https://jsonplaceholder.typicode.com/posts' ));
974
+ client.logger.onRequest (request);
975
+ final HttpClientResponse response = await request.close ();
976
+ client.logger.onResponse (response, request);
977
+ expect (client.requests.length, 0 );
978
+ });
876
979
}
0 commit comments