This commit is contained in:
Ashita Prasad
2024-09-17 02:30:58 +05:30
parent abdd397cb7
commit 28a22218fc
3 changed files with 42 additions and 36 deletions

View File

@ -101,7 +101,9 @@ String stripUrlParams(String url) {
(List<ResponseBodyView>, String?) getResponseBodyViewOptions(
MediaType? mediaType) {
if (mediaType != null) {
if (mediaType == null) {
return (kRawBodyViewOptions, null);
}
var type = mediaType.type;
var subtype = mediaType.subtype;
if (kResponseBodyViewOptions.containsKey(type)) {
@ -128,7 +130,6 @@ String stripUrlParams(String url) {
subtype
);
}
}
return (kNoBodyViewOptions, null);
}

View File

@ -345,12 +345,14 @@ class ResponseBody extends StatelessWidget {
);
}
var mediaType = responseModel.mediaType;
if (mediaType == null) {
return ErrorMessage(
message:
'$kMsgUnknowContentType - ${responseModel.contentType}. $kUnexpectedRaiseIssue');
}
final mediaType =
responseModel.mediaType ?? MediaType(kTypeText, kSubTypePlain);
// Fix #415: Treat null Content-type as plain text instead of Error message
// if (mediaType == null) {
// return ErrorMessage(
// message:
// '$kMsgUnknowContentType - ${responseModel.contentType}. $kUnexpectedRaiseIssue');
// }
var responseBodyView = getResponseBodyViewOptions(mediaType);
var options = responseBodyView.$1;

View File

@ -214,8 +214,13 @@ void main() {
findsOneWidget);
});
testWidgets('Testing Response Body, no mediaType', (tester) async {
var responseModelNoHeaders = responseModel.copyWith(headers: null);
testWidgets(
'Testing Response Body, no mediaType; shoud be default plaintext preview',
(tester) async {
var responseModelNoHeaders = responseModel.copyWith(
headers: null,
formattedBody: null,
);
var requestModelNoResponseHeaders =
testRequestModel.copyWith(httpResponseModel: responseModelNoHeaders);
@ -230,10 +235,8 @@ void main() {
),
);
expect(
find.text(
'Unknown Response Content-Type - ${responseModelNoHeaders.contentType}. $kUnexpectedRaiseIssue'),
findsOneWidget);
expect(find.text("Raw"), findsOneWidget);
expect(find.text('{"data":"world"}'), findsOneWidget);
});
testWidgets('Testing Response Body for No body view', (tester) async {