mirror of
https://github.com/foss42/apidash.git
synced 2025-06-30 21:06:43 +08:00
Merge branch 'main' into add-feature-http-headers-suggestions
This commit is contained in:
@ -18,8 +18,8 @@ class DartDioCodeGen {
|
|||||||
final next = generatedDartCode(
|
final next = generatedDartCode(
|
||||||
url: url,
|
url: url,
|
||||||
method: requestModel.method,
|
method: requestModel.method,
|
||||||
queryParams: requestModel.paramsMap,
|
queryParams: requestModel.enabledParamsMap,
|
||||||
headers: requestModel.headersMap,
|
headers: requestModel.enabledHeadersMap,
|
||||||
body: requestModel.requestBody,
|
body: requestModel.requestBody,
|
||||||
contentType: requestModel.requestBodyContentType,
|
contentType: requestModel.requestBodyContentType,
|
||||||
);
|
);
|
||||||
|
@ -20,8 +20,8 @@ class DartHttpCodeGen {
|
|||||||
final next = generatedDartCode(
|
final next = generatedDartCode(
|
||||||
url: url,
|
url: url,
|
||||||
method: requestModel.method,
|
method: requestModel.method,
|
||||||
queryParams: requestModel.paramsMap,
|
queryParams: requestModel.enabledParamsMap,
|
||||||
headers: requestModel.headersMap,
|
headers: requestModel.enabledHeadersMap,
|
||||||
body: requestModel.requestBody,
|
body: requestModel.requestBody,
|
||||||
contentType: requestModel.requestBodyContentType,
|
contentType: requestModel.requestBodyContentType,
|
||||||
);
|
);
|
||||||
@ -55,9 +55,12 @@ class DartHttpCodeGen {
|
|||||||
final strContent = CodeExpression(Code('r\'\'\'$body\'\'\''));
|
final strContent = CodeExpression(Code('r\'\'\'$body\'\'\''));
|
||||||
dataExp = declareVar('body', type: refer('String')).assign(strContent);
|
dataExp = declareVar('body', type: refer('String')).assign(strContent);
|
||||||
|
|
||||||
|
final hasContentTypeHeader = composeHeaders.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||||
|
if (!hasContentTypeHeader) {
|
||||||
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader,
|
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader,
|
||||||
() => kContentTypeMap[contentType] ?? '');
|
() => kContentTypeMap[contentType] ?? '');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Expression? queryParamExp;
|
Expression? queryParamExp;
|
||||||
List<Expression>? uriReassignExps;
|
List<Expression>? uriReassignExps;
|
||||||
|
@ -60,7 +60,7 @@ axios(config)
|
|||||||
}
|
}
|
||||||
var rM = requestModel.copyWith(url: url);
|
var rM = requestModel.copyWith(url: url);
|
||||||
|
|
||||||
var harJson = requestModelToHARJsonRequest(rM);
|
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
|
||||||
|
|
||||||
var templateStart = jj.Template(kTemplateStart);
|
var templateStart = jj.Template(kTemplateStart);
|
||||||
result += templateStart.render({
|
result += templateStart.render({
|
||||||
|
@ -61,7 +61,7 @@ fetch(url, options)
|
|||||||
}
|
}
|
||||||
var rM = requestModel.copyWith(url: url);
|
var rM = requestModel.copyWith(url: url);
|
||||||
|
|
||||||
var harJson = requestModelToHARJsonRequest(rM);
|
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
|
||||||
|
|
||||||
var templateStart = jj.Template(kTemplateStart);
|
var templateStart = jj.Template(kTemplateStart);
|
||||||
result += templateStart.render({
|
result += templateStart.render({
|
||||||
|
@ -77,7 +77,10 @@ import okhttp3.MediaType.Companion.toMediaType""";
|
|||||||
url = "$defaultUriScheme://$url";
|
url = "$defaultUriScheme://$url";
|
||||||
}
|
}
|
||||||
|
|
||||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
var rec = getValidRequestUri(
|
||||||
|
url,
|
||||||
|
requestModel.enabledRequestParams,
|
||||||
|
);
|
||||||
Uri? uri = rec.$1;
|
Uri? uri = rec.$1;
|
||||||
|
|
||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
@ -120,9 +123,9 @@ import okhttp3.MediaType.Companion.toMediaType""";
|
|||||||
result = stringStart + result;
|
result = stringStart + result;
|
||||||
result += kStringRequestStart;
|
result += kStringRequestStart;
|
||||||
|
|
||||||
var headersList = requestModel.requestHeaders;
|
var headersList = requestModel.enabledRequestHeaders;
|
||||||
if (headersList != null) {
|
if (headersList != null) {
|
||||||
var headers = requestModel.headersMap;
|
var headers = requestModel.enabledHeadersMap;
|
||||||
if (headers.isNotEmpty) {
|
if (headers.isNotEmpty) {
|
||||||
hasHeaders = true;
|
hasHeaders = true;
|
||||||
result += getHeaders(headers);
|
result += getHeaders(headers);
|
||||||
|
@ -28,7 +28,7 @@ class cURLCodeGen {
|
|||||||
}
|
}
|
||||||
var rM = requestModel.copyWith(url: url);
|
var rM = requestModel.copyWith(url: url);
|
||||||
|
|
||||||
var harJson = requestModelToHARJsonRequest(rM);
|
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
|
||||||
|
|
||||||
var templateStart = jj.Template(kTemplateStart);
|
var templateStart = jj.Template(kTemplateStart);
|
||||||
result += templateStart.render({
|
result += templateStart.render({
|
||||||
|
@ -10,7 +10,9 @@ class HARCodeGen {
|
|||||||
try {
|
try {
|
||||||
var harString = kEncoder.convert(requestModelToHARJsonRequest(
|
var harString = kEncoder.convert(requestModelToHARJsonRequest(
|
||||||
requestModel,
|
requestModel,
|
||||||
defaultUriScheme: defaultUriScheme));
|
defaultUriScheme: defaultUriScheme,
|
||||||
|
useEnabled: true,
|
||||||
|
));
|
||||||
return harString;
|
return harString;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -71,7 +71,10 @@ print(data.decode("utf-8"))
|
|||||||
}
|
}
|
||||||
|
|
||||||
result += kTemplateStart;
|
result += kTemplateStart;
|
||||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
var rec = getValidRequestUri(
|
||||||
|
url,
|
||||||
|
requestModel.enabledRequestParams,
|
||||||
|
);
|
||||||
Uri? uri = rec.$1;
|
Uri? uri = rec.$1;
|
||||||
|
|
||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
@ -97,12 +100,14 @@ print(data.decode("utf-8"))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var headersList = requestModel.requestHeaders;
|
var headersList = requestModel.enabledRequestHeaders;
|
||||||
if (headersList != null || hasBody) {
|
if (headersList != null || hasBody) {
|
||||||
var headers = requestModel.headersMap;
|
var headers = requestModel.enabledHeadersMap;
|
||||||
if (headers.isNotEmpty || hasBody) {
|
if (headers.isNotEmpty || hasBody) {
|
||||||
hasHeaders = true;
|
hasHeaders = true;
|
||||||
if (hasBody) {
|
bool hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||||
|
|
||||||
|
if (hasBody && !hasContentTypeHeader) {
|
||||||
headers[HttpHeaders.contentTypeHeader] =
|
headers[HttpHeaders.contentTypeHeader] =
|
||||||
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,10 @@ print('Response Body:', response.text)
|
|||||||
url = "$defaultUriScheme://$url";
|
url = "$defaultUriScheme://$url";
|
||||||
}
|
}
|
||||||
|
|
||||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
var rec = getValidRequestUri(
|
||||||
|
url,
|
||||||
|
requestModel.enabledRequestParams,
|
||||||
|
);
|
||||||
Uri? uri = rec.$1;
|
Uri? uri = rec.$1;
|
||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
var templateStartUrl = jj.Template(kTemplateStart);
|
var templateStartUrl = jj.Template(kTemplateStart);
|
||||||
@ -109,9 +112,9 @@ print('Response Body:', response.text)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var headersList = requestModel.requestHeaders;
|
var headersList = requestModel.enabledRequestHeaders;
|
||||||
if (headersList != null || hasBody) {
|
if (headersList != null || hasBody) {
|
||||||
var headers = requestModel.headersMap;
|
var headers = requestModel.enabledHeadersMap;
|
||||||
if (headers.isNotEmpty || hasBody) {
|
if (headers.isNotEmpty || hasBody) {
|
||||||
hasHeaders = true;
|
hasHeaders = true;
|
||||||
if (hasBody) {
|
if (hasBody) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
import 'package:apidash/utils/utils.dart' show mapToRows, rowsToMap;
|
import 'package:apidash/utils/utils.dart'
|
||||||
|
show mapToRows, rowsToMap, getEnabledRows;
|
||||||
import 'name_value_model.dart';
|
import 'name_value_model.dart';
|
||||||
import 'response_model.dart';
|
import 'response_model.dart';
|
||||||
|
|
||||||
@ -15,6 +16,8 @@ class RequestModel {
|
|||||||
this.requestTabIndex = 0,
|
this.requestTabIndex = 0,
|
||||||
this.requestHeaders,
|
this.requestHeaders,
|
||||||
this.requestParams,
|
this.requestParams,
|
||||||
|
this.isHeaderEnabledList,
|
||||||
|
this.isParamEnabledList,
|
||||||
this.requestBodyContentType = ContentType.json,
|
this.requestBodyContentType = ContentType.json,
|
||||||
this.requestBody,
|
this.requestBody,
|
||||||
this.responseStatus,
|
this.responseStatus,
|
||||||
@ -30,12 +33,23 @@ class RequestModel {
|
|||||||
final int requestTabIndex;
|
final int requestTabIndex;
|
||||||
final List<NameValueModel>? requestHeaders;
|
final List<NameValueModel>? requestHeaders;
|
||||||
final List<NameValueModel>? requestParams;
|
final List<NameValueModel>? requestParams;
|
||||||
|
final List<bool>? isHeaderEnabledList;
|
||||||
|
final List<bool>? isParamEnabledList;
|
||||||
final ContentType requestBodyContentType;
|
final ContentType requestBodyContentType;
|
||||||
final String? requestBody;
|
final String? requestBody;
|
||||||
final int? responseStatus;
|
final int? responseStatus;
|
||||||
final String? message;
|
final String? message;
|
||||||
final ResponseModel? responseModel;
|
final ResponseModel? responseModel;
|
||||||
|
|
||||||
|
List<NameValueModel>? get enabledRequestHeaders =>
|
||||||
|
getEnabledRows(requestHeaders, isHeaderEnabledList);
|
||||||
|
List<NameValueModel>? get enabledRequestParams =>
|
||||||
|
getEnabledRows(requestParams, isParamEnabledList);
|
||||||
|
|
||||||
|
Map<String, String> get enabledHeadersMap =>
|
||||||
|
rowsToMap(enabledRequestHeaders) ?? {};
|
||||||
|
Map<String, String> get enabledParamsMap =>
|
||||||
|
rowsToMap(enabledRequestParams) ?? {};
|
||||||
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
|
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
|
||||||
Map<String, String> get paramsMap => rowsToMap(requestParams) ?? {};
|
Map<String, String> get paramsMap => rowsToMap(requestParams) ?? {};
|
||||||
|
|
||||||
@ -50,6 +64,10 @@ class RequestModel {
|
|||||||
description: description,
|
description: description,
|
||||||
requestHeaders: requestHeaders != null ? [...requestHeaders!] : null,
|
requestHeaders: requestHeaders != null ? [...requestHeaders!] : null,
|
||||||
requestParams: requestParams != null ? [...requestParams!] : null,
|
requestParams: requestParams != null ? [...requestParams!] : null,
|
||||||
|
isHeaderEnabledList:
|
||||||
|
isHeaderEnabledList != null ? [...isHeaderEnabledList!] : null,
|
||||||
|
isParamEnabledList:
|
||||||
|
isParamEnabledList != null ? [...isParamEnabledList!] : null,
|
||||||
requestBodyContentType: requestBodyContentType,
|
requestBodyContentType: requestBodyContentType,
|
||||||
requestBody: requestBody,
|
requestBody: requestBody,
|
||||||
);
|
);
|
||||||
@ -64,6 +82,8 @@ class RequestModel {
|
|||||||
int? requestTabIndex,
|
int? requestTabIndex,
|
||||||
List<NameValueModel>? requestHeaders,
|
List<NameValueModel>? requestHeaders,
|
||||||
List<NameValueModel>? requestParams,
|
List<NameValueModel>? requestParams,
|
||||||
|
List<bool>? isHeaderEnabledList,
|
||||||
|
List<bool>? isParamEnabledList,
|
||||||
ContentType? requestBodyContentType,
|
ContentType? requestBodyContentType,
|
||||||
String? requestBody,
|
String? requestBody,
|
||||||
int? responseStatus,
|
int? responseStatus,
|
||||||
@ -72,6 +92,8 @@ class RequestModel {
|
|||||||
}) {
|
}) {
|
||||||
var headers = requestHeaders ?? this.requestHeaders;
|
var headers = requestHeaders ?? this.requestHeaders;
|
||||||
var params = requestParams ?? this.requestParams;
|
var params = requestParams ?? this.requestParams;
|
||||||
|
var enabledHeaders = isHeaderEnabledList ?? this.isHeaderEnabledList;
|
||||||
|
var enabledParams = isParamEnabledList ?? this.isParamEnabledList;
|
||||||
return RequestModel(
|
return RequestModel(
|
||||||
id: id ?? this.id,
|
id: id ?? this.id,
|
||||||
method: method ?? this.method,
|
method: method ?? this.method,
|
||||||
@ -81,6 +103,8 @@ class RequestModel {
|
|||||||
requestTabIndex: requestTabIndex ?? this.requestTabIndex,
|
requestTabIndex: requestTabIndex ?? this.requestTabIndex,
|
||||||
requestHeaders: headers != null ? [...headers] : null,
|
requestHeaders: headers != null ? [...headers] : null,
|
||||||
requestParams: params != null ? [...params] : null,
|
requestParams: params != null ? [...params] : null,
|
||||||
|
isHeaderEnabledList: enabledHeaders != null ? [...enabledHeaders] : null,
|
||||||
|
isParamEnabledList: enabledParams != null ? [...enabledParams] : null,
|
||||||
requestBodyContentType:
|
requestBodyContentType:
|
||||||
requestBodyContentType ?? this.requestBodyContentType,
|
requestBodyContentType ?? this.requestBodyContentType,
|
||||||
requestBody: requestBody ?? this.requestBody,
|
requestBody: requestBody ?? this.requestBody,
|
||||||
@ -106,6 +130,8 @@ class RequestModel {
|
|||||||
final description = data["description"] as String?;
|
final description = data["description"] as String?;
|
||||||
final requestHeaders = data["requestHeaders"];
|
final requestHeaders = data["requestHeaders"];
|
||||||
final requestParams = data["requestParams"];
|
final requestParams = data["requestParams"];
|
||||||
|
final isHeaderEnabledList = data["isHeaderEnabledList"] as List<bool>?;
|
||||||
|
final isParamEnabledList = data["isParamEnabledList"] as List<bool>?;
|
||||||
try {
|
try {
|
||||||
requestBodyContentType =
|
requestBodyContentType =
|
||||||
ContentType.values.byName(data["requestBodyContentType"] as String);
|
ContentType.values.byName(data["requestBodyContentType"] as String);
|
||||||
@ -136,6 +162,8 @@ class RequestModel {
|
|||||||
requestParams: requestParams != null
|
requestParams: requestParams != null
|
||||||
? mapToRows(Map<String, String>.from(requestParams))
|
? mapToRows(Map<String, String>.from(requestParams))
|
||||||
: null,
|
: null,
|
||||||
|
isHeaderEnabledList: isHeaderEnabledList,
|
||||||
|
isParamEnabledList: isParamEnabledList,
|
||||||
requestBodyContentType: requestBodyContentType,
|
requestBodyContentType: requestBodyContentType,
|
||||||
requestBody: requestBody,
|
requestBody: requestBody,
|
||||||
responseStatus: responseStatus,
|
responseStatus: responseStatus,
|
||||||
@ -153,6 +181,8 @@ class RequestModel {
|
|||||||
"description": description,
|
"description": description,
|
||||||
"requestHeaders": rowsToMap(requestHeaders),
|
"requestHeaders": rowsToMap(requestHeaders),
|
||||||
"requestParams": rowsToMap(requestParams),
|
"requestParams": rowsToMap(requestParams),
|
||||||
|
"isHeaderEnabledList": isHeaderEnabledList,
|
||||||
|
"isParamEnabledList": isParamEnabledList,
|
||||||
"requestBodyContentType": requestBodyContentType.name,
|
"requestBodyContentType": requestBodyContentType.name,
|
||||||
"requestBody": requestBody,
|
"requestBody": requestBody,
|
||||||
"responseStatus": includeResponse ? responseStatus : null,
|
"responseStatus": includeResponse ? responseStatus : null,
|
||||||
@ -171,7 +201,9 @@ class RequestModel {
|
|||||||
"Request Description: $description",
|
"Request Description: $description",
|
||||||
"Request Tab Index: ${requestTabIndex.toString()}",
|
"Request Tab Index: ${requestTabIndex.toString()}",
|
||||||
"Request Headers: ${requestHeaders.toString()}",
|
"Request Headers: ${requestHeaders.toString()}",
|
||||||
|
"Enabled Headers: ${isHeaderEnabledList.toString()}",
|
||||||
"Request Params: ${requestParams.toString()}",
|
"Request Params: ${requestParams.toString()}",
|
||||||
|
"Enabled Params: ${isParamEnabledList.toString()}",
|
||||||
"Request Body Content Type: ${requestBodyContentType.toString()}",
|
"Request Body Content Type: ${requestBodyContentType.toString()}",
|
||||||
"Request Body: ${requestBody.toString()}",
|
"Request Body: ${requestBody.toString()}",
|
||||||
"Response Status: $responseStatus",
|
"Response Status: $responseStatus",
|
||||||
@ -192,6 +224,8 @@ class RequestModel {
|
|||||||
other.requestTabIndex == requestTabIndex &&
|
other.requestTabIndex == requestTabIndex &&
|
||||||
listEquals(other.requestHeaders, requestHeaders) &&
|
listEquals(other.requestHeaders, requestHeaders) &&
|
||||||
listEquals(other.requestParams, requestParams) &&
|
listEquals(other.requestParams, requestParams) &&
|
||||||
|
listEquals(other.isHeaderEnabledList, isHeaderEnabledList) &&
|
||||||
|
listEquals(other.isParamEnabledList, isParamEnabledList) &&
|
||||||
other.requestBodyContentType == requestBodyContentType &&
|
other.requestBodyContentType == requestBodyContentType &&
|
||||||
other.requestBody == requestBody &&
|
other.requestBody == requestBody &&
|
||||||
other.responseStatus == responseStatus &&
|
other.responseStatus == responseStatus &&
|
||||||
@ -211,6 +245,8 @@ class RequestModel {
|
|||||||
requestTabIndex,
|
requestTabIndex,
|
||||||
requestHeaders,
|
requestHeaders,
|
||||||
requestParams,
|
requestParams,
|
||||||
|
isHeaderEnabledList,
|
||||||
|
isParamEnabledList,
|
||||||
requestBodyContentType,
|
requestBodyContentType,
|
||||||
requestBody,
|
requestBody,
|
||||||
responseStatus,
|
responseStatus,
|
||||||
|
@ -123,6 +123,8 @@ class CollectionStateNotifier
|
|||||||
int? requestTabIndex,
|
int? requestTabIndex,
|
||||||
List<NameValueModel>? requestHeaders,
|
List<NameValueModel>? requestHeaders,
|
||||||
List<NameValueModel>? requestParams,
|
List<NameValueModel>? requestParams,
|
||||||
|
List<bool>? isHeaderEnabledList,
|
||||||
|
List<bool>? isParamEnabledList,
|
||||||
ContentType? requestBodyContentType,
|
ContentType? requestBodyContentType,
|
||||||
String? requestBody,
|
String? requestBody,
|
||||||
int? responseStatus,
|
int? responseStatus,
|
||||||
@ -137,12 +139,13 @@ class CollectionStateNotifier
|
|||||||
requestTabIndex: requestTabIndex,
|
requestTabIndex: requestTabIndex,
|
||||||
requestHeaders: requestHeaders,
|
requestHeaders: requestHeaders,
|
||||||
requestParams: requestParams,
|
requestParams: requestParams,
|
||||||
|
isHeaderEnabledList: isHeaderEnabledList,
|
||||||
|
isParamEnabledList: isParamEnabledList,
|
||||||
requestBodyContentType: requestBodyContentType,
|
requestBodyContentType: requestBodyContentType,
|
||||||
requestBody: requestBody,
|
requestBody: requestBody,
|
||||||
responseStatus: responseStatus,
|
responseStatus: responseStatus,
|
||||||
message: message,
|
message: message,
|
||||||
responseModel: responseModel);
|
responseModel: responseModel);
|
||||||
//print(newModel);
|
|
||||||
var map = {...state!};
|
var map = {...state!};
|
||||||
map[id] = newModel;
|
map[id] = newModel;
|
||||||
state = map;
|
state = map;
|
||||||
@ -175,7 +178,6 @@ class CollectionStateNotifier
|
|||||||
responseModel: responseModel,
|
responseModel: responseModel,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
//print(newRequestModel);
|
|
||||||
ref.read(sentRequestIdStateProvider.notifier).state = null;
|
ref.read(sentRequestIdStateProvider.notifier).state = null;
|
||||||
var map = {...state!};
|
var map = {...state!};
|
||||||
map[id] = newRequestModel;
|
map[id] = newRequestModel;
|
||||||
|
@ -16,6 +16,7 @@ class EditRequestHeaders extends ConsumerStatefulWidget {
|
|||||||
|
|
||||||
class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||||
late List<NameValueModel> rows;
|
late List<NameValueModel> rows;
|
||||||
|
late List<bool> isRowEnabledList;
|
||||||
final random = Random.secure();
|
final random = Random.secure();
|
||||||
late int seed;
|
late int seed;
|
||||||
|
|
||||||
@ -26,9 +27,11 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _onFieldChange(String activeId) {
|
void _onFieldChange(String activeId) {
|
||||||
ref
|
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||||
.read(collectionStateNotifierProvider.notifier)
|
activeId,
|
||||||
.update(activeId, requestHeaders: rows);
|
requestHeaders: rows,
|
||||||
|
isHeaderEnabledList: isRowEnabledList,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -42,10 +45,31 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
|||||||
kNameValueEmptyModel,
|
kNameValueEmptyModel,
|
||||||
]
|
]
|
||||||
: rH;
|
: rH;
|
||||||
|
isRowEnabledList =
|
||||||
|
ref.read(activeRequestModelProvider)?.isHeaderEnabledList ??
|
||||||
|
List.filled(rows.length, true, growable: true);
|
||||||
|
|
||||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||||
rows: rows,
|
rows: rows,
|
||||||
columns: [
|
columns: [
|
||||||
|
DaviColumn(
|
||||||
|
name: 'Checkbox',
|
||||||
|
width: 36,
|
||||||
|
cellBuilder: (_, row) {
|
||||||
|
int idx = row.index;
|
||||||
|
return CheckBox(
|
||||||
|
keyId: "$activeId-$idx-headers-c-$seed",
|
||||||
|
value: isRowEnabledList[idx],
|
||||||
|
onChanged: (value) {
|
||||||
|
setState(() {
|
||||||
|
isRowEnabledList[idx] = value!;
|
||||||
|
});
|
||||||
|
_onFieldChange(activeId!);
|
||||||
|
},
|
||||||
|
colorScheme: Theme.of(context).colorScheme,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
DaviColumn(
|
DaviColumn(
|
||||||
name: 'Header Name',
|
name: 'Header Name',
|
||||||
grow: 1,
|
grow: 1,
|
||||||
@ -106,9 +130,11 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
|||||||
rows = [
|
rows = [
|
||||||
kNameValueEmptyModel,
|
kNameValueEmptyModel,
|
||||||
];
|
];
|
||||||
|
isRowEnabledList = [true];
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
rows.removeAt(row.index);
|
rows.removeAt(row.index);
|
||||||
|
isRowEnabledList.removeAt(row.index);
|
||||||
}
|
}
|
||||||
_onFieldChange(activeId!);
|
_onFieldChange(activeId!);
|
||||||
},
|
},
|
||||||
@ -143,6 +169,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
|||||||
child: ElevatedButton.icon(
|
child: ElevatedButton.icon(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
rows.add(kNameValueEmptyModel);
|
rows.add(kNameValueEmptyModel);
|
||||||
|
isRowEnabledList.add(true);
|
||||||
_onFieldChange(activeId!);
|
_onFieldChange(activeId!);
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
|
@ -17,6 +17,7 @@ class EditRequestURLParams extends ConsumerStatefulWidget {
|
|||||||
|
|
||||||
class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||||
late List<NameValueModel> rows;
|
late List<NameValueModel> rows;
|
||||||
|
late List<bool> isRowEnabledList;
|
||||||
final random = Random.secure();
|
final random = Random.secure();
|
||||||
late int seed;
|
late int seed;
|
||||||
|
|
||||||
@ -27,9 +28,11 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _onFieldChange(String activeId) {
|
void _onFieldChange(String activeId) {
|
||||||
ref
|
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||||
.read(collectionStateNotifierProvider.notifier)
|
activeId,
|
||||||
.update(activeId, requestParams: rows);
|
requestParams: rows,
|
||||||
|
isParamEnabledList: isRowEnabledList,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -43,10 +46,32 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
|||||||
kNameValueEmptyModel,
|
kNameValueEmptyModel,
|
||||||
]
|
]
|
||||||
: rP;
|
: rP;
|
||||||
|
isRowEnabledList =
|
||||||
|
ref.read(activeRequestModelProvider)?.isParamEnabledList ??
|
||||||
|
List.filled(rows.length, true, growable: true);
|
||||||
|
|
||||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||||
rows: rows,
|
rows: rows,
|
||||||
columns: [
|
columns: [
|
||||||
|
DaviColumn(
|
||||||
|
name: 'Checkbox',
|
||||||
|
width: 36,
|
||||||
|
cellBuilder: (_, row) {
|
||||||
|
int idx = row.index;
|
||||||
|
|
||||||
|
return CheckBox(
|
||||||
|
keyId: "$activeId-$idx-params-c-$seed",
|
||||||
|
value: isRowEnabledList[idx],
|
||||||
|
onChanged: (value) {
|
||||||
|
setState(() {
|
||||||
|
isRowEnabledList[idx] = value!;
|
||||||
|
});
|
||||||
|
_onFieldChange(activeId!);
|
||||||
|
},
|
||||||
|
colorScheme: Theme.of(context).colorScheme,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
DaviColumn(
|
DaviColumn(
|
||||||
name: 'URL Parameter',
|
name: 'URL Parameter',
|
||||||
grow: 1,
|
grow: 1,
|
||||||
@ -107,9 +132,11 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
|||||||
rows = [
|
rows = [
|
||||||
kNameValueEmptyModel,
|
kNameValueEmptyModel,
|
||||||
];
|
];
|
||||||
|
isRowEnabledList = [true];
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
rows.removeAt(row.index);
|
rows.removeAt(row.index);
|
||||||
|
isRowEnabledList.removeAt(row.index);
|
||||||
}
|
}
|
||||||
_onFieldChange(activeId!);
|
_onFieldChange(activeId!);
|
||||||
},
|
},
|
||||||
@ -144,6 +171,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
|||||||
child: ElevatedButton.icon(
|
child: ElevatedButton.icon(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
rows.add(kNameValueEmptyModel);
|
rows.add(kNameValueEmptyModel);
|
||||||
|
isRowEnabledList.add(true);
|
||||||
_onFieldChange(activeId!);
|
_onFieldChange(activeId!);
|
||||||
},
|
},
|
||||||
icon: const Icon(Icons.add),
|
icon: const Icon(Icons.add),
|
||||||
|
@ -12,12 +12,12 @@ Future<(http.Response?, Duration?, String?)> request(
|
|||||||
}) async {
|
}) async {
|
||||||
(Uri?, String?) uriRec = getValidRequestUri(
|
(Uri?, String?) uriRec = getValidRequestUri(
|
||||||
requestModel.url,
|
requestModel.url,
|
||||||
requestModel.requestParams,
|
requestModel.enabledRequestParams,
|
||||||
defaultUriScheme: defaultUriScheme,
|
defaultUriScheme: defaultUriScheme,
|
||||||
);
|
);
|
||||||
if (uriRec.$1 != null) {
|
if (uriRec.$1 != null) {
|
||||||
Uri requestUrl = uriRec.$1!;
|
Uri requestUrl = uriRec.$1!;
|
||||||
Map<String, String> headers = requestModel.headersMap;
|
Map<String, String> headers = requestModel.enabledHeadersMap;
|
||||||
http.Response response;
|
http.Response response;
|
||||||
String? body;
|
String? body;
|
||||||
try {
|
try {
|
||||||
@ -28,10 +28,13 @@ Future<(http.Response?, Duration?, String?)> request(
|
|||||||
if (contentLength > 0) {
|
if (contentLength > 0) {
|
||||||
body = requestBody;
|
body = requestBody;
|
||||||
headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
|
headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
|
||||||
|
final hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||||
|
if (!hasContentTypeHeader) {
|
||||||
headers[HttpHeaders.contentTypeHeader] =
|
headers[HttpHeaders.contentTypeHeader] =
|
||||||
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Stopwatch stopwatch = Stopwatch()..start();
|
Stopwatch stopwatch = Stopwatch()..start();
|
||||||
switch (requestModel.method) {
|
switch (requestModel.method) {
|
||||||
case HTTPVerb.get:
|
case HTTPVerb.get:
|
||||||
|
@ -109,3 +109,13 @@ Uint8List jsonMapToBytes(Map<String, dynamic>? map) {
|
|||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<NameValueModel>? getEnabledRows(
|
||||||
|
List<NameValueModel>? rows, List<bool>? isRowEnabledList) {
|
||||||
|
if (rows == null || isRowEnabledList == null) {
|
||||||
|
return rows;
|
||||||
|
}
|
||||||
|
List<NameValueModel> finalRows =
|
||||||
|
rows.where((element) => isRowEnabledList[rows.indexOf(element)]).toList();
|
||||||
|
return finalRows == [] ? null : finalRows;
|
||||||
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
import 'package:apidash/utils/utils.dart' show getValidRequestUri;
|
import 'package:apidash/utils/utils.dart' show getValidRequestUri;
|
||||||
import 'package:apidash/models/models.dart' show RequestModel;
|
import 'package:apidash/models/models.dart' show RequestModel;
|
||||||
@ -74,13 +75,14 @@ Map<String, dynamic> requestModelToHARJsonRequest(
|
|||||||
RequestModel requestModel, {
|
RequestModel requestModel, {
|
||||||
defaultUriScheme = kDefaultUriScheme,
|
defaultUriScheme = kDefaultUriScheme,
|
||||||
bool exportMode = false,
|
bool exportMode = false,
|
||||||
|
bool useEnabled = false,
|
||||||
}) {
|
}) {
|
||||||
Map<String, dynamic> json = {};
|
Map<String, dynamic> json = {};
|
||||||
bool hasBody = false;
|
bool hasBody = false;
|
||||||
|
|
||||||
var rec = getValidRequestUri(
|
var rec = getValidRequestUri(
|
||||||
requestModel.url,
|
requestModel.url,
|
||||||
requestModel.requestParams,
|
requestModel.enabledRequestParams,
|
||||||
defaultUriScheme: defaultUriScheme,
|
defaultUriScheme: defaultUriScheme,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -125,11 +127,16 @@ Map<String, dynamic> requestModelToHARJsonRequest(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var headersList = requestModel.requestHeaders;
|
var headersList = useEnabled
|
||||||
|
? requestModel.enabledRequestHeaders
|
||||||
|
: requestModel.requestHeaders;
|
||||||
if (headersList != null || hasBody) {
|
if (headersList != null || hasBody) {
|
||||||
var headers = requestModel.headersMap;
|
var headers =
|
||||||
|
useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap;
|
||||||
if (headers.isNotEmpty || hasBody) {
|
if (headers.isNotEmpty || hasBody) {
|
||||||
if (hasBody) {
|
bool hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||||
|
|
||||||
|
if (hasBody && !hasContentTypeHeader) {
|
||||||
var m = {
|
var m = {
|
||||||
"name": "Content-Type",
|
"name": "Content-Type",
|
||||||
"value": kContentTypeMap[requestModel.requestBodyContentType] ?? ""
|
"value": kContentTypeMap[requestModel.requestBodyContentType] ?? ""
|
||||||
|
@ -32,7 +32,7 @@ Map<String, String> headers = {
|
|||||||
"Content-Security-Policy":
|
"Content-Security-Policy":
|
||||||
"Controls the sources from which content can be loaded on a web page to mitigate various types of attacks.",
|
"Controls the sources from which content can be loaded on a web page to mitigate various types of attacks.",
|
||||||
"Content-Type":
|
"Content-Type":
|
||||||
"Indicates the original media type of the resource before any content-encoding applied for sending.",
|
"Indicates the original media type of the resource (prior to any content encoding applied for sending)",
|
||||||
"Cookie": "Used to send previously stored cookies back to the server.",
|
"Cookie": "Used to send previously stored cookies back to the server.",
|
||||||
"Cross-Origin-Embedder-Policy":
|
"Cross-Origin-Embedder-Policy":
|
||||||
"Controls whether a document is allowed to be embedded in another document.",
|
"Controls whether a document is allowed to be embedded in another document.",
|
||||||
|
41
lib/widgets/checkbox.dart
Normal file
41
lib/widgets/checkbox.dart
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class CheckBox extends StatelessWidget {
|
||||||
|
final String keyId;
|
||||||
|
final bool value;
|
||||||
|
final ValueChanged<bool?> onChanged;
|
||||||
|
final ColorScheme? colorScheme;
|
||||||
|
const CheckBox({
|
||||||
|
super.key,
|
||||||
|
required this.keyId,
|
||||||
|
required this.value,
|
||||||
|
required this.onChanged,
|
||||||
|
this.colorScheme,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
var colorScheme = this.colorScheme ?? Theme.of(context).colorScheme;
|
||||||
|
return Checkbox(
|
||||||
|
key: Key(keyId),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(3),
|
||||||
|
),
|
||||||
|
side: BorderSide(
|
||||||
|
color: colorScheme.surfaceVariant,
|
||||||
|
width: 1.5,
|
||||||
|
),
|
||||||
|
splashRadius: 0,
|
||||||
|
value: value,
|
||||||
|
onChanged: onChanged,
|
||||||
|
checkColor: colorScheme.onPrimary,
|
||||||
|
fillColor: MaterialStateProperty.resolveWith<Color?>(
|
||||||
|
(Set<MaterialState> states) {
|
||||||
|
if (states.contains(MaterialState.selected)) {
|
||||||
|
return colorScheme.primary;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
export 'buttons.dart';
|
export 'buttons.dart';
|
||||||
export 'cards.dart';
|
export 'cards.dart';
|
||||||
|
export 'checkbox.dart';
|
||||||
export 'code_previewer.dart';
|
export 'code_previewer.dart';
|
||||||
export 'codegen_previewer.dart';
|
export 'codegen_previewer.dart';
|
||||||
export 'dropdowns.dart';
|
export 'dropdowns.dart';
|
||||||
|
@ -54,6 +54,37 @@ void main() {
|
|||||||
--header 'User-Agent: Test Agent'""";
|
--header 'User-Agent: Test Agent'""";
|
||||||
expect(curlCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(curlCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&add_space=true'""";
|
||||||
|
expect(curlCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""curl --url 'https://api.foss42.com/humanize/social' \
|
||||||
|
--header 'User-Agent: Test Agent'""";
|
||||||
|
expect(
|
||||||
|
curlCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&digits=3' \
|
||||||
|
--header 'User-Agent: Test Agent'""";
|
||||||
|
expect(curlCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""curl --url 'https://api.foss42.com/humanize/social'""";
|
||||||
|
expect(curlCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -100,6 +131,7 @@ void main() {
|
|||||||
expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""curl --request PUT \
|
const expectedCode = r"""curl --request PUT \
|
||||||
|
@ -208,6 +208,115 @@ void main() async {
|
|||||||
""";
|
""";
|
||||||
expect(dartDioCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(dartDioCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
try {
|
||||||
|
final queryParams = {
|
||||||
|
'num': '8700000',
|
||||||
|
'add_space': 'true',
|
||||||
|
};
|
||||||
|
final response = await dio.Dio.get(
|
||||||
|
'https://api.foss42.com/humanize/social',
|
||||||
|
queryParameters: queryParams,
|
||||||
|
);
|
||||||
|
print(response.statusCode);
|
||||||
|
print(response.data);
|
||||||
|
} on DioException catch (e, s) {
|
||||||
|
print(e.response?.statusCode);
|
||||||
|
print(e.response?.data);
|
||||||
|
print(s);
|
||||||
|
} catch (e, s) {
|
||||||
|
print(e);
|
||||||
|
print(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartDioCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
try {
|
||||||
|
final headers = {'User-Agent': 'Test Agent'};
|
||||||
|
final response = await dio.Dio.get(
|
||||||
|
'https://api.foss42.com/humanize/social',
|
||||||
|
options: Options(headers: headers),
|
||||||
|
);
|
||||||
|
print(response.statusCode);
|
||||||
|
print(response.data);
|
||||||
|
} on DioException catch (e, s) {
|
||||||
|
print(e.response?.statusCode);
|
||||||
|
print(e.response?.data);
|
||||||
|
print(s);
|
||||||
|
} catch (e, s) {
|
||||||
|
print(e);
|
||||||
|
print(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
dartDioCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
try {
|
||||||
|
final queryParams = {
|
||||||
|
'num': '8700000',
|
||||||
|
'digits': '3',
|
||||||
|
};
|
||||||
|
final headers = {'User-Agent': 'Test Agent'};
|
||||||
|
final response = await dio.Dio.get(
|
||||||
|
'https://api.foss42.com/humanize/social',
|
||||||
|
queryParameters: queryParams,
|
||||||
|
options: Options(headers: headers),
|
||||||
|
);
|
||||||
|
print(response.statusCode);
|
||||||
|
print(response.data);
|
||||||
|
} on DioException catch (e, s) {
|
||||||
|
print(e.response?.statusCode);
|
||||||
|
print(e.response?.data);
|
||||||
|
print(s);
|
||||||
|
} catch (e, s) {
|
||||||
|
print(e);
|
||||||
|
print(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartDioCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
try {
|
||||||
|
final response = await dio.Dio.get('https://api.foss42.com/humanize/social');
|
||||||
|
print(response.statusCode);
|
||||||
|
print(response.data);
|
||||||
|
} on DioException catch (e, s) {
|
||||||
|
print(e.response?.statusCode);
|
||||||
|
print(e.response?.data);
|
||||||
|
print(s);
|
||||||
|
} catch (e, s) {
|
||||||
|
print(e);
|
||||||
|
print(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartDioCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -340,6 +449,7 @@ void main() async {
|
|||||||
expect(dartDioCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(dartDioCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
|
||||||
|
@ -213,6 +213,117 @@ void main() async {
|
|||||||
""";
|
""";
|
||||||
expect(dartHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(dartHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
var uri = Uri.parse('https://api.foss42.com/humanize/social');
|
||||||
|
|
||||||
|
var queryParams = {
|
||||||
|
'num': '8700000',
|
||||||
|
'add_space': 'true',
|
||||||
|
};
|
||||||
|
uri = uri.replace(queryParameters: queryParams);
|
||||||
|
|
||||||
|
final response = await http.get(uri);
|
||||||
|
|
||||||
|
int statusCode = response.statusCode;
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
print('Status Code: $statusCode');
|
||||||
|
print('Response Body: ${response.body}');
|
||||||
|
} else {
|
||||||
|
print('Error Status Code: $statusCode');
|
||||||
|
print('Error Response Body: ${response.body}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartHttpCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
var uri = Uri.parse('https://api.foss42.com/humanize/social');
|
||||||
|
|
||||||
|
var headers = {'User-Agent': 'Test Agent'};
|
||||||
|
|
||||||
|
final response = await http.get(
|
||||||
|
uri,
|
||||||
|
headers: headers,
|
||||||
|
);
|
||||||
|
|
||||||
|
int statusCode = response.statusCode;
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
print('Status Code: $statusCode');
|
||||||
|
print('Response Body: ${response.body}');
|
||||||
|
} else {
|
||||||
|
print('Error Status Code: $statusCode');
|
||||||
|
print('Error Response Body: ${response.body}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
dartHttpCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
var uri = Uri.parse('https://api.foss42.com/humanize/social');
|
||||||
|
|
||||||
|
var queryParams = {
|
||||||
|
'num': '8700000',
|
||||||
|
'digits': '3',
|
||||||
|
};
|
||||||
|
uri = uri.replace(queryParameters: queryParams);
|
||||||
|
|
||||||
|
var headers = {'User-Agent': 'Test Agent'};
|
||||||
|
|
||||||
|
final response = await http.get(
|
||||||
|
uri,
|
||||||
|
headers: headers,
|
||||||
|
);
|
||||||
|
|
||||||
|
int statusCode = response.statusCode;
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
print('Status Code: $statusCode');
|
||||||
|
print('Response Body: ${response.body}');
|
||||||
|
} else {
|
||||||
|
print('Error Status Code: $statusCode');
|
||||||
|
print('Error Response Body: ${response.body}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartHttpCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
|
void main() async {
|
||||||
|
var uri = Uri.parse('https://api.foss42.com/humanize/social');
|
||||||
|
|
||||||
|
final response = await http.get(uri);
|
||||||
|
|
||||||
|
int statusCode = response.statusCode;
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
print('Status Code: $statusCode');
|
||||||
|
print('Response Body: ${response.body}');
|
||||||
|
} else {
|
||||||
|
print('Error Status Code: $statusCode');
|
||||||
|
print('Error Response Body: ${response.body}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(dartHttpCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -356,6 +467,7 @@ void main() async {
|
|||||||
expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import 'package:http/http.dart' as http;
|
const expectedCode = r"""import 'package:http/http.dart' as http;
|
||||||
|
@ -149,6 +149,83 @@ void main() {
|
|||||||
}""";
|
}""";
|
||||||
expect(harCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(harCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""{
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://api.foss42.com/humanize/social?num=8700000&add_space=true",
|
||||||
|
"httpVersion": "HTTP/1.1",
|
||||||
|
"queryString": [
|
||||||
|
{
|
||||||
|
"name": "num",
|
||||||
|
"value": "8700000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "add_space",
|
||||||
|
"value": "true"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"headers": []
|
||||||
|
}""";
|
||||||
|
expect(harCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""{
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://api.foss42.com/humanize/social",
|
||||||
|
"httpVersion": "HTTP/1.1",
|
||||||
|
"queryString": [],
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"name": "User-Agent",
|
||||||
|
"value": "Test Agent"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}""";
|
||||||
|
expect(
|
||||||
|
harCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""{
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://api.foss42.com/humanize/social?num=8700000&digits=3",
|
||||||
|
"httpVersion": "HTTP/1.1",
|
||||||
|
"queryString": [
|
||||||
|
{
|
||||||
|
"name": "num",
|
||||||
|
"value": "8700000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "digits",
|
||||||
|
"value": "3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"name": "User-Agent",
|
||||||
|
"value": "Test Agent"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}""";
|
||||||
|
expect(harCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""{
|
||||||
|
"method": "GET",
|
||||||
|
"url": "https://api.foss42.com/humanize/social",
|
||||||
|
"httpVersion": "HTTP/1.1",
|
||||||
|
"queryString": [],
|
||||||
|
"headers": []
|
||||||
|
}""";
|
||||||
|
expect(harCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -240,6 +317,7 @@ void main() {
|
|||||||
expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""{
|
const expectedCode = r"""{
|
||||||
|
@ -201,6 +201,109 @@ axios(config)
|
|||||||
""";
|
""";
|
||||||
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
"num": "8700000",
|
||||||
|
"add_space": "true"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
axiosCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
"num": "8700000",
|
||||||
|
"digits": "3"
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get'
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -324,6 +427,7 @@ axios(config)
|
|||||||
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""let config = {
|
const expectedCode = r"""let config = {
|
||||||
|
@ -220,6 +220,121 @@ fetch(url, options)
|
|||||||
""";
|
""";
|
||||||
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""let url = 'https://api.foss42.com/humanize/social?num=8700000&add_space=true';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET'
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""let url = 'https://api.foss42.com/humanize/social';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
fetchCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""let url = 'https://api.foss42.com/humanize/social?num=8700000&digits=3';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode =
|
||||||
|
r"""let url = 'https://api.foss42.com/humanize/social';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET'
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -366,6 +481,7 @@ fetch(url, options)
|
|||||||
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""let url = 'https://reqres.in/api/users/2';
|
const expectedCode = r"""let url = 'https://reqres.in/api/users/2';
|
||||||
|
@ -219,6 +219,116 @@ fun main() {
|
|||||||
expect(
|
expect(
|
||||||
kotlinOkHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
kotlinOkHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val client = OkHttpClient()
|
||||||
|
|
||||||
|
val url = "https://api.foss42.com/humanize/social".toHttpUrl().newBuilder()
|
||||||
|
.addQueryParameter("num", "8700000")
|
||||||
|
.addQueryParameter("add_space", "true")
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val request = Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.get()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val response = client.newCall(request).execute()
|
||||||
|
|
||||||
|
println(response.code)
|
||||||
|
println(response.body?.string())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
kotlinOkHttpCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val client = OkHttpClient()
|
||||||
|
|
||||||
|
val url = "https://api.foss42.com/humanize/social"
|
||||||
|
|
||||||
|
val request = Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.addHeader("User-Agent", "Test Agent")
|
||||||
|
.get()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val response = client.newCall(request).execute()
|
||||||
|
|
||||||
|
println(response.code)
|
||||||
|
println(response.body?.string())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
kotlinOkHttpCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val client = OkHttpClient()
|
||||||
|
|
||||||
|
val url = "https://api.foss42.com/humanize/social".toHttpUrl().newBuilder()
|
||||||
|
.addQueryParameter("num", "8700000")
|
||||||
|
.addQueryParameter("digits", "3")
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val request = Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.addHeader("User-Agent", "Test Agent")
|
||||||
|
.get()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val response = client.newCall(request).execute()
|
||||||
|
|
||||||
|
println(response.code)
|
||||||
|
println(response.body?.string())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(kotlinOkHttpCodeGen.getCode(requestModelGet11, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val client = OkHttpClient()
|
||||||
|
|
||||||
|
val url = "https://api.foss42.com/humanize/social"
|
||||||
|
|
||||||
|
val request = Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.get()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val response = client.newCall(request).execute()
|
||||||
|
|
||||||
|
println(response.code)
|
||||||
|
println(response.body?.string())
|
||||||
|
}
|
||||||
|
""";
|
||||||
|
expect(kotlinOkHttpCodeGen.getCode(requestModelGet12, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -369,6 +479,7 @@ fun main() {
|
|||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r'''import okhttp3.OkHttpClient
|
const expectedCode = r'''import okhttp3.OkHttpClient
|
||||||
|
@ -217,6 +217,117 @@ axios(config)
|
|||||||
""";
|
""";
|
||||||
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import axios from 'axios';
|
||||||
|
|
||||||
|
let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
"num": "8700000",
|
||||||
|
"add_space": "true"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import axios from 'axios';
|
||||||
|
|
||||||
|
let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
axiosCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import axios from 'axios';
|
||||||
|
|
||||||
|
let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
"num": "8700000",
|
||||||
|
"digits": "3"
|
||||||
|
},
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import axios from 'axios';
|
||||||
|
|
||||||
|
let config = {
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: 'get'
|
||||||
|
};
|
||||||
|
|
||||||
|
axios(config)
|
||||||
|
.then(function (response) {
|
||||||
|
// handle success
|
||||||
|
console.log(response.status);
|
||||||
|
console.log(response.data);
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
// handle error
|
||||||
|
console.log(error.response.status);
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(axiosCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -350,6 +461,7 @@ axios(config)
|
|||||||
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import axios from 'axios';
|
const expectedCode = r"""import axios from 'axios';
|
||||||
|
@ -230,6 +230,125 @@ fetch(url, options)
|
|||||||
""";
|
""";
|
||||||
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import fetch from 'node-fetch';
|
||||||
|
|
||||||
|
let url = 'https://api.foss42.com/humanize/social?num=8700000&add_space=true';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET'
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import fetch from 'node-fetch';
|
||||||
|
|
||||||
|
let url = 'https://api.foss42.com/humanize/social';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
fetchCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import fetch from 'node-fetch';
|
||||||
|
|
||||||
|
let url = 'https://api.foss42.com/humanize/social?num=8700000&digits=3';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import fetch from 'node-fetch';
|
||||||
|
|
||||||
|
let url = 'https://api.foss42.com/humanize/social';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
method: 'GET'
|
||||||
|
};
|
||||||
|
|
||||||
|
let status;
|
||||||
|
fetch(url, options)
|
||||||
|
.then(res => {
|
||||||
|
status = res.status;
|
||||||
|
return res.json()
|
||||||
|
})
|
||||||
|
.then(body => {
|
||||||
|
console.log(status);
|
||||||
|
console.log(body);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.log(status);
|
||||||
|
console.error('error:' + err);
|
||||||
|
});
|
||||||
|
""";
|
||||||
|
expect(fetchCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -386,6 +505,7 @@ fetch(url, options)
|
|||||||
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import fetch from 'node-fetch';
|
const expectedCode = r"""import fetch from 'node-fetch';
|
||||||
|
@ -174,6 +174,94 @@ print(data.decode("utf-8"))
|
|||||||
expect(pythonHttpClientCodeGen.getCode(requestModelGet8, "https"),
|
expect(pythonHttpClientCodeGen.getCode(requestModelGet8, "https"),
|
||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import http.client
|
||||||
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
|
queryParams = {
|
||||||
|
"num": "8700000",
|
||||||
|
"add_space": "true"
|
||||||
|
}
|
||||||
|
queryParamsStr = '?' + urlencode(queryParams)
|
||||||
|
|
||||||
|
conn = http.client.HTTPSConnection("api.foss42.com")
|
||||||
|
conn.request("GET", "/humanize/social" + queryParamsStr)
|
||||||
|
|
||||||
|
res = conn.getresponse()
|
||||||
|
data = res.read()
|
||||||
|
|
||||||
|
print(data.decode("utf-8"))
|
||||||
|
""";
|
||||||
|
expect(pythonHttpClientCodeGen.getCode(requestModelGet9, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import http.client
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
|
||||||
|
conn = http.client.HTTPSConnection("api.foss42.com")
|
||||||
|
conn.request("GET", "/humanize/social",
|
||||||
|
headers= headers)
|
||||||
|
|
||||||
|
res = conn.getresponse()
|
||||||
|
data = res.read()
|
||||||
|
|
||||||
|
print(data.decode("utf-8"))
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
pythonHttpClientCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import http.client
|
||||||
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
|
queryParams = {
|
||||||
|
"num": "8700000",
|
||||||
|
"digits": "3"
|
||||||
|
}
|
||||||
|
queryParamsStr = '?' + urlencode(queryParams)
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
|
||||||
|
conn = http.client.HTTPSConnection("api.foss42.com")
|
||||||
|
conn.request("GET", "/humanize/social" + queryParamsStr,
|
||||||
|
headers= headers)
|
||||||
|
|
||||||
|
res = conn.getresponse()
|
||||||
|
data = res.read()
|
||||||
|
|
||||||
|
print(data.decode("utf-8"))
|
||||||
|
""";
|
||||||
|
expect(pythonHttpClientCodeGen.getCode(requestModelGet11, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import http.client
|
||||||
|
|
||||||
|
conn = http.client.HTTPSConnection("api.foss42.com")
|
||||||
|
conn.request("GET", "/humanize/social")
|
||||||
|
|
||||||
|
res = conn.getresponse()
|
||||||
|
data = res.read()
|
||||||
|
|
||||||
|
print(data.decode("utf-8"))
|
||||||
|
""";
|
||||||
|
expect(pythonHttpClientCodeGen.getCode(requestModelGet12, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -285,6 +373,7 @@ print(data.decode("utf-8"))
|
|||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import http.client
|
const expectedCode = r"""import http.client
|
||||||
|
@ -153,6 +153,84 @@ print('Response Body:', response.text)
|
|||||||
expect(pythonRequestsCodeGen.getCode(requestModelGet8, "https"),
|
expect(pythonRequestsCodeGen.getCode(requestModelGet8, "https"),
|
||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('GET 9', () {
|
||||||
|
const expectedCode = r"""import requests
|
||||||
|
|
||||||
|
url = 'https://api.foss42.com/humanize/social'
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"num": "8700000",
|
||||||
|
"add_space": "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
response = requests.get(url, params=params)
|
||||||
|
|
||||||
|
print('Status Code:', response.status_code)
|
||||||
|
print('Response Body:', response.text)
|
||||||
|
""";
|
||||||
|
expect(pythonRequestsCodeGen.getCode(requestModelGet9, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 10', () {
|
||||||
|
const expectedCode = r"""import requests
|
||||||
|
|
||||||
|
url = 'https://api.foss42.com/humanize/social'
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
|
||||||
|
response = requests.get(url, headers=headers)
|
||||||
|
|
||||||
|
print('Status Code:', response.status_code)
|
||||||
|
print('Response Body:', response.text)
|
||||||
|
""";
|
||||||
|
expect(
|
||||||
|
pythonRequestsCodeGen.getCode(
|
||||||
|
requestModelGet10,
|
||||||
|
"https",
|
||||||
|
),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 11', () {
|
||||||
|
const expectedCode = r"""import requests
|
||||||
|
|
||||||
|
url = 'https://api.foss42.com/humanize/social'
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"num": "8700000",
|
||||||
|
"digits": "3"
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"User-Agent": "Test Agent"
|
||||||
|
}
|
||||||
|
|
||||||
|
response = requests.get(url, params=params, headers=headers)
|
||||||
|
|
||||||
|
print('Status Code:', response.status_code)
|
||||||
|
print('Response Body:', response.text)
|
||||||
|
""";
|
||||||
|
expect(pythonRequestsCodeGen.getCode(requestModelGet11, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('GET 12', () {
|
||||||
|
const expectedCode = r"""import requests
|
||||||
|
|
||||||
|
url = 'https://api.foss42.com/humanize/social'
|
||||||
|
|
||||||
|
response = requests.get(url)
|
||||||
|
|
||||||
|
print('Status Code:', response.status_code)
|
||||||
|
print('Response Body:', response.text)
|
||||||
|
""";
|
||||||
|
expect(pythonRequestsCodeGen.getCode(requestModelGet12, "https"),
|
||||||
|
expectedCode);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('HEAD Request', () {
|
group('HEAD Request', () {
|
||||||
@ -248,6 +326,7 @@ print('Response Body:', response.text)
|
|||||||
expectedCode);
|
expectedCode);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r"""import requests
|
const expectedCode = r"""import requests
|
||||||
|
@ -106,7 +106,9 @@ void main() {
|
|||||||
'content-length': '18',
|
'content-length': '18',
|
||||||
'content-type': 'application/json; charset=utf-8'
|
'content-type': 'application/json; charset=utf-8'
|
||||||
},
|
},
|
||||||
|
'isHeaderEnabledList': null,
|
||||||
'requestParams': null,
|
'requestParams': null,
|
||||||
|
'isParamEnabledList': null,
|
||||||
"requestBodyContentType": 'json',
|
"requestBodyContentType": 'json',
|
||||||
"requestBody": '''{
|
"requestBody": '''{
|
||||||
"text":"WORLD"
|
"text":"WORLD"
|
||||||
@ -140,7 +142,9 @@ void main() {
|
|||||||
"Request Description: ",
|
"Request Description: ",
|
||||||
"Request Tab Index: 0",
|
"Request Tab Index: 0",
|
||||||
"Request Headers: [NameValueModel(name: content-length, value: 18), NameValueModel(name: content-type, value: application/json; charset=utf-8)]",
|
"Request Headers: [NameValueModel(name: content-length, value: 18), NameValueModel(name: content-type, value: application/json; charset=utf-8)]",
|
||||||
|
"Enabled Headers: null",
|
||||||
"Request Params: null",
|
"Request Params: null",
|
||||||
|
"Enabled Params: null",
|
||||||
"Request Body Content Type: ContentType.json",
|
"Request Body Content Type: ContentType.json",
|
||||||
'Request Body: {\n"text":"WORLD"\n}',
|
'Request Body: {\n"text":"WORLD"\n}',
|
||||||
"Response Status: null",
|
"Response Status: null",
|
||||||
|
@ -90,6 +90,94 @@ const requestModelGet8 = RequestModel(
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/// GET request model with some params enabled
|
||||||
|
const requestModelGet9 = RequestModel(
|
||||||
|
id: 'enabledParams',
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
requestParams: [
|
||||||
|
NameValueModel(name: 'num', value: '8700000'),
|
||||||
|
NameValueModel(name: 'digits', value: '3'),
|
||||||
|
NameValueModel(name: 'system', value: 'SS'),
|
||||||
|
NameValueModel(name: 'add_space', value: 'true'),
|
||||||
|
],
|
||||||
|
isParamEnabledList: [
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/// GET Request model with some headers enabled
|
||||||
|
const requestModelGet10 = RequestModel(
|
||||||
|
id: 'enabledParams',
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
requestHeaders: [
|
||||||
|
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
|
||||||
|
NameValueModel(name: 'Content-Type', value: 'application/json'),
|
||||||
|
],
|
||||||
|
isHeaderEnabledList: [
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/// GET Request model with some headers & URL parameters enabled
|
||||||
|
const requestModelGet11 = RequestModel(
|
||||||
|
id: 'enabledRows',
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
requestParams: [
|
||||||
|
NameValueModel(name: 'num', value: '8700000'),
|
||||||
|
NameValueModel(name: 'digits', value: '3'),
|
||||||
|
NameValueModel(name: 'system', value: 'SS'),
|
||||||
|
NameValueModel(name: 'add_space', value: 'true'),
|
||||||
|
],
|
||||||
|
requestHeaders: [
|
||||||
|
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
|
||||||
|
NameValueModel(name: 'Content-Type', value: 'application/json'),
|
||||||
|
],
|
||||||
|
isParamEnabledList: [
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
isHeaderEnabledList: [
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
|
/// Request model with all headers & URL parameters disabled
|
||||||
|
const requestModelGet12 = RequestModel(
|
||||||
|
id: 'disabledRows',
|
||||||
|
url: 'https://api.foss42.com/humanize/social',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
requestParams: [
|
||||||
|
NameValueModel(name: 'num', value: '8700000'),
|
||||||
|
NameValueModel(name: 'digits', value: '3'),
|
||||||
|
NameValueModel(name: 'system', value: 'SS'),
|
||||||
|
NameValueModel(name: 'add_space', value: 'true'),
|
||||||
|
],
|
||||||
|
requestHeaders: [
|
||||||
|
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
|
||||||
|
NameValueModel(name: 'Content-Type', value: 'application/json'),
|
||||||
|
],
|
||||||
|
isParamEnabledList: [
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
isHeaderEnabledList: [
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
|
||||||
/// Basic HEAD request model
|
/// Basic HEAD request model
|
||||||
const requestModelHead1 = RequestModel(
|
const requestModelHead1 = RequestModel(
|
||||||
id: 'head1',
|
id: 'head1',
|
||||||
|
@ -127,4 +127,39 @@ Easily manipulate and play around with request inputs like headers, query parame
|
|||||||
expect(padMultilineString(text1, 10), text1FirstLineNotPaddedExpected);
|
expect(padMultilineString(text1, 10), text1FirstLineNotPaddedExpected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
group("Test getEnabledRows", () {
|
||||||
|
test('Testing for null', () {
|
||||||
|
expect(getEnabledRows(null, null), null);
|
||||||
|
});
|
||||||
|
test('Testing for empty list', () {
|
||||||
|
expect(getEnabledRows([], []), []);
|
||||||
|
});
|
||||||
|
const kvRow1 = NameValueModel(name: "code", value: "IN");
|
||||||
|
const kvRow2 = NameValueModel(name: "lang", value: "eng");
|
||||||
|
const kvRow3 = NameValueModel(name: "version", value: 0.1);
|
||||||
|
const kvRow4 = NameValueModel(name: "month", value: 4);
|
||||||
|
test('Testing with isRowEnabledList null', () {
|
||||||
|
expect(getEnabledRows([kvRow1, kvRow2, kvRow3, kvRow4], null),
|
||||||
|
[kvRow1, kvRow2, kvRow3, kvRow4]);
|
||||||
|
});
|
||||||
|
test('Testing for list with all enabled', () {
|
||||||
|
expect(
|
||||||
|
getEnabledRows(
|
||||||
|
[kvRow1, kvRow2, kvRow3, kvRow4], [true, true, true, true]),
|
||||||
|
[kvRow1, kvRow2, kvRow3, kvRow4]);
|
||||||
|
});
|
||||||
|
test('Testing for list with all disabled', () {
|
||||||
|
expect(
|
||||||
|
getEnabledRows(
|
||||||
|
[kvRow1, kvRow2, kvRow3, kvRow4], [false, false, false, false]),
|
||||||
|
[]);
|
||||||
|
});
|
||||||
|
test('Testing for list with some disabled', () {
|
||||||
|
expect(
|
||||||
|
getEnabledRows(
|
||||||
|
[kvRow1, kvRow2, kvRow3, kvRow4], [true, false, true, false]),
|
||||||
|
[kvRow1, kvRow3]);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user