@@ -15,6 +15,7 @@ import 'package:instabug_flutter/InstabugLog.dart';
1515import 'package:instabug_flutter/NetworkLogger.dart' ;
1616import 'package:instabug_flutter/Replies.dart' ;
1717import 'package:instabug_flutter/Surveys.dart' ;
18+ import 'package:instabug_flutter/instabug_custom_http_client.dart' ;
1819import 'package:instabug_flutter/models/crash_data.dart' ;
1920import 'package:instabug_flutter/models/exception_data.dart' ;
2021import 'package:instabug_flutter/models/network_data.dart' ;
@@ -44,6 +45,35 @@ void main() {
4445 };
4546 late MockPlatformManager mockPlatform;
4647
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+
4777 setUpAll (() async {
4878 const MethodChannel ('instabug_flutter' )
4979 .setMockMethodCallHandler ((MethodCall methodCall) async {
@@ -823,7 +853,8 @@ void main() {
823853 });
824854
825855 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 ());
827858 final List <dynamic > args = < dynamic > [data.toMap ()];
828859 NetworkLogger .networkLog (data);
829860 expect (log, < Matcher > [
@@ -873,4 +904,76 @@ void main() {
873904 ]);
874905 }
875906 });
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+ });
876979}
0 commit comments