Skip to content

Commit 77fce9d

Browse files
authored
Merge pull request #194 from Instabug/fix/instabug_http_client
[MOB-5620] Fix/Instabug http client
2 parents cc208f1 + 2b0ba48 commit 77fce9d

File tree

5 files changed

+111
-4
lines changed

5 files changed

+111
-4
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## v10.0.1 (2021-08-25)
2+
3+
* Fixes an issue with http client logger.
4+
15
## v10.0.0 (2021-08-04)
26

37
* Bumps Instabug native SDKs to v10.8

lib/models/network_data.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class NetworkData {
4141
NetworkData(
4242
url: url ?? this.url,
4343
method: method ?? this.method,
44-
requestBody: requestBody ?? this.requestHeaders,
44+
requestBody: requestBody ?? this.requestBody,
4545
responseBody: responseBody ?? this.responseBody,
4646
status: status ?? this.status,
4747
requestHeaders: requestHeaders ?? this.requestHeaders,

lib/utils/http_client_logger.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class HttpClientLogger {
3737
return;
3838
}
3939

40-
final responseHeaders = networkData.responseHeaders;
40+
final responseHeaders = <String, dynamic>{};
4141
request.headers.forEach((String header, dynamic value) {
4242
responseHeaders[header] = value[0];
4343
});

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: instabug_flutter
2-
version: 10.0.0
2+
version: 10.0.1
33
description: >-
44
Deliver the best user experience through a comprehensive platform that will
55
help you uncover, analyze and fix any app performance, quality or stability issues.

test/instabug_flutter_test.dart

Lines changed: 104 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import 'package:instabug_flutter/InstabugLog.dart';
1515
import 'package:instabug_flutter/NetworkLogger.dart';
1616
import 'package:instabug_flutter/Replies.dart';
1717
import 'package:instabug_flutter/Surveys.dart';
18+
import 'package:instabug_flutter/instabug_custom_http_client.dart';
1819
import 'package:instabug_flutter/models/crash_data.dart';
1920
import 'package:instabug_flutter/models/exception_data.dart';
2021
import '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

Comments
 (0)