mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
CheckBox and Filtering
This commit is contained in:
@ -77,7 +77,11 @@ import okhttp3.MediaType.Companion.toMediaType""";
|
||||
url = "$defaultUriScheme://$url";
|
||||
}
|
||||
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
|
||||
if (uri != null) {
|
||||
|
@ -71,7 +71,11 @@ print(data.decode("utf-8"))
|
||||
}
|
||||
|
||||
result += kTemplateStart;
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
|
||||
if (uri != null) {
|
||||
|
@ -75,7 +75,11 @@ print('Response Body:', response.text)
|
||||
url = "$defaultUriScheme://$url";
|
||||
}
|
||||
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
if (uri != null) {
|
||||
var templateStartUrl = jj.Template(kTemplateStart);
|
||||
|
@ -1,3 +1,4 @@
|
||||
import 'package:apidash/utils/convert_utils.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/utils/utils.dart' show mapToRows, rowsToMap;
|
||||
@ -15,6 +16,8 @@ class RequestModel {
|
||||
this.requestTabIndex = 0,
|
||||
this.requestHeaders,
|
||||
this.requestParams,
|
||||
this.enabledHeaders,
|
||||
this.enabledParams,
|
||||
this.requestBodyContentType = ContentType.json,
|
||||
this.requestBody,
|
||||
this.responseStatus,
|
||||
@ -30,14 +33,18 @@ class RequestModel {
|
||||
final int requestTabIndex;
|
||||
final List<NameValueModel>? requestHeaders;
|
||||
final List<NameValueModel>? requestParams;
|
||||
final List<bool>? enabledHeaders;
|
||||
final List<bool>? enabledParams;
|
||||
final ContentType requestBodyContentType;
|
||||
final String? requestBody;
|
||||
final int? responseStatus;
|
||||
final String? message;
|
||||
final ResponseModel? responseModel;
|
||||
|
||||
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
|
||||
Map<String, String> get paramsMap => rowsToMap(requestParams) ?? {};
|
||||
Map<String, String> get headersMap =>
|
||||
rowsToMap(getEnabledRows(requestHeaders, enabledHeaders)) ?? {};
|
||||
Map<String, String> get paramsMap =>
|
||||
rowsToMap(getEnabledRows(requestParams, enabledParams)) ?? {};
|
||||
|
||||
RequestModel duplicate({
|
||||
required String id,
|
||||
@ -50,6 +57,8 @@ class RequestModel {
|
||||
description: description,
|
||||
requestHeaders: requestHeaders != null ? [...requestHeaders!] : null,
|
||||
requestParams: requestParams != null ? [...requestParams!] : null,
|
||||
enabledHeaders: enabledHeaders != null ? [...enabledHeaders!] : null,
|
||||
enabledParams: enabledParams != null ? [...enabledParams!] : null,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
);
|
||||
@ -64,6 +73,8 @@ class RequestModel {
|
||||
int? requestTabIndex,
|
||||
List<NameValueModel>? requestHeaders,
|
||||
List<NameValueModel>? requestParams,
|
||||
List<bool>? enabledHeaders,
|
||||
List<bool>? enabledParams,
|
||||
ContentType? requestBodyContentType,
|
||||
String? requestBody,
|
||||
int? responseStatus,
|
||||
@ -72,6 +83,8 @@ class RequestModel {
|
||||
}) {
|
||||
var headers = requestHeaders ?? this.requestHeaders;
|
||||
var params = requestParams ?? this.requestParams;
|
||||
var eHeaders = enabledHeaders ?? this.enabledHeaders;
|
||||
var eParams = enabledParams ?? this.enabledParams;
|
||||
return RequestModel(
|
||||
id: id ?? this.id,
|
||||
method: method ?? this.method,
|
||||
@ -81,6 +94,8 @@ class RequestModel {
|
||||
requestTabIndex: requestTabIndex ?? this.requestTabIndex,
|
||||
requestHeaders: headers != null ? [...headers] : null,
|
||||
requestParams: params != null ? [...params] : null,
|
||||
enabledHeaders: eHeaders != null ? [...eHeaders] : null,
|
||||
enabledParams: eParams != null ? [...eParams] : null,
|
||||
requestBodyContentType:
|
||||
requestBodyContentType ?? this.requestBodyContentType,
|
||||
requestBody: requestBody ?? this.requestBody,
|
||||
@ -106,6 +121,8 @@ class RequestModel {
|
||||
final description = data["description"] as String?;
|
||||
final requestHeaders = data["requestHeaders"];
|
||||
final requestParams = data["requestParams"];
|
||||
final enabledHeaders = data["enabledHeaders"] as List<bool>?;
|
||||
final enabledParams = data["enabledParams"] as List<bool>?;
|
||||
try {
|
||||
requestBodyContentType =
|
||||
ContentType.values.byName(data["requestBodyContentType"] as String);
|
||||
@ -136,6 +153,8 @@ class RequestModel {
|
||||
requestParams: requestParams != null
|
||||
? mapToRows(Map<String, String>.from(requestParams))
|
||||
: null,
|
||||
enabledHeaders: enabledHeaders,
|
||||
enabledParams: enabledParams,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
responseStatus: responseStatus,
|
||||
@ -153,6 +172,8 @@ class RequestModel {
|
||||
"description": description,
|
||||
"requestHeaders": rowsToMap(requestHeaders),
|
||||
"requestParams": rowsToMap(requestParams),
|
||||
"enabledHeaders": enabledHeaders,
|
||||
"enabledParams": enabledParams,
|
||||
"requestBodyContentType": requestBodyContentType.name,
|
||||
"requestBody": requestBody,
|
||||
"responseStatus": includeResponse ? responseStatus : null,
|
||||
@ -171,7 +192,9 @@ class RequestModel {
|
||||
"Request Description: $description",
|
||||
"Request Tab Index: ${requestTabIndex.toString()}",
|
||||
"Request Headers: ${requestHeaders.toString()}",
|
||||
"Enabled Headers: ${enabledHeaders.toString()}",
|
||||
"Request Params: ${requestParams.toString()}",
|
||||
"Enabled Params: ${enabledParams.toString()}",
|
||||
"Request Body Content Type: ${requestBodyContentType.toString()}",
|
||||
"Request Body: ${requestBody.toString()}",
|
||||
"Response Status: $responseStatus",
|
||||
@ -192,6 +215,8 @@ class RequestModel {
|
||||
other.requestTabIndex == requestTabIndex &&
|
||||
listEquals(other.requestHeaders, requestHeaders) &&
|
||||
listEquals(other.requestParams, requestParams) &&
|
||||
listEquals(other.enabledHeaders, enabledHeaders) &&
|
||||
listEquals(other.enabledParams, enabledParams) &&
|
||||
other.requestBodyContentType == requestBodyContentType &&
|
||||
other.requestBody == requestBody &&
|
||||
other.responseStatus == responseStatus &&
|
||||
@ -211,6 +236,8 @@ class RequestModel {
|
||||
requestTabIndex,
|
||||
requestHeaders,
|
||||
requestParams,
|
||||
enabledHeaders,
|
||||
enabledParams,
|
||||
requestBodyContentType,
|
||||
requestBody,
|
||||
responseStatus,
|
||||
|
@ -123,6 +123,8 @@ class CollectionStateNotifier
|
||||
int? requestTabIndex,
|
||||
List<NameValueModel>? requestHeaders,
|
||||
List<NameValueModel>? requestParams,
|
||||
List<bool>? enabledHeaders,
|
||||
List<bool>? enabledParams,
|
||||
ContentType? requestBodyContentType,
|
||||
String? requestBody,
|
||||
int? responseStatus,
|
||||
@ -137,12 +139,13 @@ class CollectionStateNotifier
|
||||
requestTabIndex: requestTabIndex,
|
||||
requestHeaders: requestHeaders,
|
||||
requestParams: requestParams,
|
||||
enabledHeaders: enabledHeaders,
|
||||
enabledParams: enabledParams,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
responseStatus: responseStatus,
|
||||
message: message,
|
||||
responseModel: responseModel);
|
||||
//print(newModel);
|
||||
var map = {...state!};
|
||||
map[id] = newModel;
|
||||
state = map;
|
||||
@ -175,7 +178,6 @@ class CollectionStateNotifier
|
||||
responseModel: responseModel,
|
||||
);
|
||||
}
|
||||
//print(newRequestModel);
|
||||
ref.read(sentRequestIdStateProvider.notifier).state = null;
|
||||
var map = {...state!};
|
||||
map[id] = newRequestModel;
|
||||
|
@ -16,6 +16,7 @@ class EditRequestHeaders extends ConsumerStatefulWidget {
|
||||
|
||||
class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
late List<NameValueModel> rows;
|
||||
late List<bool> enabledRows;
|
||||
final random = Random.secure();
|
||||
late int seed;
|
||||
|
||||
@ -26,9 +27,11 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
}
|
||||
|
||||
void _onFieldChange(String activeId) {
|
||||
ref
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.update(activeId, requestHeaders: rows);
|
||||
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||
activeId,
|
||||
requestHeaders: rows,
|
||||
enabledHeaders: enabledRows,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -42,10 +45,30 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rH;
|
||||
enabledRows = ref.read(activeRequestModelProvider)?.enabledHeaders ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
columns: [
|
||||
DaviColumn(
|
||||
name: 'Checkbox',
|
||||
width: 36,
|
||||
cellBuilder: (_, row) {
|
||||
int idx = row.index;
|
||||
return CheckBox(
|
||||
keyId: "$activeId-$idx-headers-c-$seed",
|
||||
value: enabledRows[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
enabledRows[idx] = value!;
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
),
|
||||
DaviColumn(
|
||||
name: 'Header Name',
|
||||
grow: 1,
|
||||
@ -106,9 +129,13 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
enabledRows = [true];
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
enabledRows.removeAt(row.index);
|
||||
rows.removeAt(row.index);
|
||||
});
|
||||
}
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
@ -142,7 +169,10 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
padding: const EdgeInsets.only(bottom: 30),
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
enabledRows.add(true);
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
icon: const Icon(Icons.add),
|
||||
|
@ -17,6 +17,7 @@ class EditRequestURLParams extends ConsumerStatefulWidget {
|
||||
|
||||
class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
late List<NameValueModel> rows;
|
||||
late List<bool> enabledRows;
|
||||
final random = Random.secure();
|
||||
late int seed;
|
||||
|
||||
@ -27,9 +28,11 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
}
|
||||
|
||||
void _onFieldChange(String activeId) {
|
||||
ref
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.update(activeId, requestParams: rows);
|
||||
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||
activeId,
|
||||
requestParams: rows,
|
||||
enabledParams: enabledRows,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -43,10 +46,31 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rP;
|
||||
enabledRows = ref.read(activeRequestModelProvider)?.enabledParams ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
columns: [
|
||||
DaviColumn(
|
||||
name: 'Checkbox',
|
||||
width: 36,
|
||||
cellBuilder: (_, row) {
|
||||
int idx = row.index;
|
||||
|
||||
return CheckBox(
|
||||
keyId: "$activeId-$idx-params-c-$seed",
|
||||
value: enabledRows[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
enabledRows[idx] = value!;
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
),
|
||||
DaviColumn(
|
||||
name: 'URL Parameter',
|
||||
grow: 1,
|
||||
@ -107,9 +131,13 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
enabledRows = [true];
|
||||
});
|
||||
} else {
|
||||
setState(() {
|
||||
enabledRows.removeAt(row.index);
|
||||
rows.removeAt(row.index);
|
||||
});
|
||||
}
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
@ -143,7 +171,10 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
padding: const EdgeInsets.only(bottom: 30),
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
enabledRows.add(true);
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
icon: const Icon(Icons.add),
|
||||
|
@ -13,6 +13,7 @@ Future<(http.Response?, Duration?, String?)> request(
|
||||
(Uri?, String?) uriRec = getValidRequestUri(
|
||||
requestModel.url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledParams,
|
||||
defaultUriScheme: defaultUriScheme,
|
||||
);
|
||||
if (uriRec.$1 != null) {
|
||||
|
@ -109,3 +109,11 @@ Uint8List jsonMapToBytes(Map<String, dynamic>? map) {
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
|
||||
List<NameValueModel> getEnabledRows(
|
||||
List<NameValueModel>? rows, List<bool>? enabledList) {
|
||||
if (rows == null || enabledList == null) {
|
||||
return rows ?? [];
|
||||
}
|
||||
return rows.where((element) => enabledList[rows.indexOf(element)]).toList();
|
||||
}
|
||||
|
@ -81,6 +81,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
|
||||
var rec = getValidRequestUri(
|
||||
requestModel.url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledParams,
|
||||
defaultUriScheme: defaultUriScheme,
|
||||
);
|
||||
|
||||
|
@ -4,7 +4,7 @@ import 'package:collection/collection.dart' show mergeMaps;
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
import 'package:xml/xml.dart';
|
||||
import '../models/models.dart';
|
||||
import 'convert_utils.dart' show rowsToMap;
|
||||
import 'convert_utils.dart' show getEnabledRows, rowsToMap;
|
||||
import '../consts.dart';
|
||||
|
||||
String getRequestTitleFromUrl(String? url) {
|
||||
@ -63,7 +63,7 @@ String stripUrlParams(String url) {
|
||||
}
|
||||
|
||||
(Uri?, String?) getValidRequestUri(
|
||||
String? url, List<NameValueModel>? requestParams,
|
||||
String? url, List<NameValueModel>? requestParams, List<bool>? enabledParams,
|
||||
{String defaultUriScheme = kDefaultUriScheme}) {
|
||||
url = url?.trim();
|
||||
if (url == null || url == "") {
|
||||
@ -88,7 +88,8 @@ String stripUrlParams(String url) {
|
||||
uri = uri.removeFragment();
|
||||
}
|
||||
|
||||
Map<String, String>? queryParams = rowsToMap(requestParams);
|
||||
Map<String, String>? queryParams =
|
||||
rowsToMap(getEnabledRows(requestParams, enabledParams));
|
||||
if (queryParams != null) {
|
||||
if (uri.hasQuery) {
|
||||
Map<String, String> urlQueryParams = uri.queryParameters;
|
||||
|
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;
|
||||
},
|
||||
));
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ export 'error_message.dart';
|
||||
export 'dropdowns.dart';
|
||||
export 'splitviews.dart';
|
||||
export 'texts.dart';
|
||||
export 'checkbox.dart';
|
||||
export 'textfields.dart';
|
||||
export 'headerfield.dart';
|
||||
export 'menus.dart';
|
||||
|
34
pubspec.lock
34
pubspec.lock
@ -189,10 +189,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: collection
|
||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.18.0"
|
||||
version: "1.17.2"
|
||||
convert:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -629,10 +629,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
|
||||
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "1.9.1"
|
||||
mime:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -986,10 +986,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.1"
|
||||
version: "1.11.0"
|
||||
state_notifier:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1002,10 +1002,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.1"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1034,26 +1034,26 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: test
|
||||
sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f
|
||||
sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.24.9"
|
||||
version: "1.24.3"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.6.0"
|
||||
test_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_core
|
||||
sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a
|
||||
sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.9"
|
||||
version: "0.5.3"
|
||||
textwrap:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1178,10 +1178,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
||||
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
version: "0.1.4-beta"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1248,5 +1248,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=3.2.0-194.0.dev <4.0.0"
|
||||
dart: ">=3.1.0 <4.0.0"
|
||||
flutter: ">=3.13.0"
|
||||
|
@ -182,15 +182,16 @@ void main() {
|
||||
host: 'api.foss42.com',
|
||||
path: 'country/data',
|
||||
queryParameters: {'code': 'US'});
|
||||
expect(getValidRequestUri(url1, [kvRow1]), (uri1Expected, null));
|
||||
expect(getValidRequestUri(url1, [kvRow1], null), (uri1Expected, null));
|
||||
});
|
||||
test('Testing getValidRequestUri for null url value', () {
|
||||
const kvRow2 = NameValueModel(name: "code", value: "US");
|
||||
expect(getValidRequestUri(null, [kvRow2]), (null, "URL is missing!"));
|
||||
expect(
|
||||
getValidRequestUri(null, [kvRow2], null), (null, "URL is missing!"));
|
||||
});
|
||||
test('Testing getValidRequestUri for empty url value', () {
|
||||
const kvRow3 = NameValueModel(name: "", value: "");
|
||||
expect(getValidRequestUri("", [kvRow3]), (null, "URL is missing!"));
|
||||
expect(getValidRequestUri("", [kvRow3], null), (null, "URL is missing!"));
|
||||
});
|
||||
test('Testing getValidRequestUri when https is not provided in url', () {
|
||||
String url4 = "api.foss42.com/country/data";
|
||||
@ -200,7 +201,7 @@ void main() {
|
||||
host: 'api.foss42.com',
|
||||
path: 'country/data',
|
||||
queryParameters: {'code': 'US'});
|
||||
expect(getValidRequestUri(url4, [kvRow4]), (uri4Expected, null));
|
||||
expect(getValidRequestUri(url4, [kvRow4], null), (uri4Expected, null));
|
||||
});
|
||||
test('Testing getValidRequestUri when url has fragment', () {
|
||||
String url5 = "https://dart.dev/guides/libraries/library-tour#numbers";
|
||||
@ -208,11 +209,11 @@ void main() {
|
||||
scheme: 'https',
|
||||
host: 'dart.dev',
|
||||
path: '/guides/libraries/library-tour');
|
||||
expect(getValidRequestUri(url5, null), (uri5Expected, null));
|
||||
expect(getValidRequestUri(url5, null, null), (uri5Expected, null));
|
||||
});
|
||||
test('Testing getValidRequestUri when uri scheme is not supported', () {
|
||||
String url5 = "mailto:someone@example.com";
|
||||
expect(getValidRequestUri(url5, null),
|
||||
expect(getValidRequestUri(url5, null, null),
|
||||
(null, "Unsupported URL Scheme (mailto)"));
|
||||
});
|
||||
test('Testing getValidRequestUri when query params in both url and kvrow',
|
||||
@ -224,7 +225,7 @@ void main() {
|
||||
host: 'api.foss42.com',
|
||||
path: 'country/data',
|
||||
queryParameters: {'code': 'US'});
|
||||
expect(getValidRequestUri(url6, [kvRow6]), (uri6Expected, null));
|
||||
expect(getValidRequestUri(url6, [kvRow6], null), (uri6Expected, null));
|
||||
});
|
||||
test('Testing getValidRequestUri when kvrow is null', () {
|
||||
String url7 = "api.foss42.com/country/data?code=US";
|
||||
@ -233,7 +234,7 @@ void main() {
|
||||
host: 'api.foss42.com',
|
||||
path: 'country/data',
|
||||
queryParameters: {'code': 'US'});
|
||||
expect(getValidRequestUri(url7, null), (uri7Expected, null));
|
||||
expect(getValidRequestUri(url7, null, null), (uri7Expected, null));
|
||||
});
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user