Pass a Uri to package:http APIs (#158)
Prepare for https://github.com/dart-lang/http/issues/375
diff --git a/test/io_server_test.dart b/test/io_server_test.dart
index 5594c58..d0abcdc 100644
--- a/test/io_server_test.dart
+++ b/test/io_server_test.dart
@@ -32,8 +32,8 @@
test('Handles malformed requests gracefully.', () async {
server.mount(syncHandler);
- final rs =
- await http.get('${server.url}/%D0%C2%BD%A8%CE%C4%BC%FE%BC%D0.zip');
+ final rs = await http
+ .get(Uri.parse('${server.url}/%D0%C2%BD%A8%CE%C4%BC%FE%BC%D0.zip'));
expect(rs.statusCode, 400);
expect(rs.body, 'Bad Request');
});
diff --git a/test/shelf_io_test.dart b/test/shelf_io_test.dart
index 937edac..b7e3cb7 100644
--- a/test/shelf_io_test.dart
+++ b/test/shelf_io_test.dart
@@ -63,14 +63,13 @@
});
test('Request is populated correctly', () async {
- var path = '/foo/bar?qs=value';
+ late Uri uri;
await _scheduleServer((request) {
expect(request.contentLength, 0);
expect(request.method, 'GET');
- var expectedUrl = 'http://localhost:$_serverPort$path';
- expect(request.requestedUri, Uri.parse(expectedUrl));
+ expect(request.requestedUri, uri);
expect(request.url.path, 'foo/bar');
expect(request.url.pathSegments, ['foo', 'bar']);
@@ -81,7 +80,9 @@
return syncHandler(request);
});
- var response = await http.get('http://localhost:$_serverPort$path');
+ uri = Uri.http('localhost:$_serverPort', '/foo/bar', {'qs': 'value'});
+ var response = await http.get(uri);
+
expect(response.statusCode, HttpStatus.ok);
expect(response.body, 'Hello from /foo/bar');
});
@@ -108,8 +109,8 @@
return Response.ok(null);
}));
- var request = http.StreamedRequest(
- 'POST', Uri.parse('http://localhost:$_serverPort'));
+ var request =
+ http.StreamedRequest('POST', Uri.http('localhost:$_serverPort', ''));
request.sink.add([1, 2, 3, 4]);
request.sink.close();
@@ -256,7 +257,7 @@
return syncHandler(request);
}, 'localhost', 0);
- var response = await http.get('http://localhost:${server.port}');
+ var response = await http.get(Uri.http('localhost:${server.port}', '/'));
expect(response.statusCode, HttpStatus.ok);
expect(response.body, 'Hello from /');
await server.close();
@@ -273,7 +274,7 @@
}, 'localhost', 0);
try {
- return await http.get('http://localhost:${server.port}');
+ return await http.get(Uri.http('localhost:${server.port}', '/'));
} finally {
await server.close();
}
@@ -472,8 +473,7 @@
context: {'shelf.io.buffer_output': false});
});
- var request =
- http.Request('GET', Uri.parse('http://localhost:$_serverPort/'));
+ var request = http.Request('GET', Uri.http('localhost:$_serverPort', ''));
var response = await request.send();
var stream = StreamQueue(utf8.decoder.bind(response.stream));
@@ -516,7 +516,7 @@
var sslClient = HttpClient(context: securityContext);
Future<HttpClientRequest> _scheduleSecureGet() =>
- sslClient.getUrl(Uri.parse('https://localhost:${_server!.port}/'));
+ sslClient.getUrl(Uri.https('localhost:${_server!.port}', ''));
test('secure sync handler returns a value to the client', () async {
await _scheduleServer(syncHandler, securityContext: securityContext);
@@ -565,8 +565,7 @@
// TODO: use http.Client once it supports sending and receiving multiple headers.
final client = HttpClient();
try {
- final rq =
- await client.getUrl(Uri.parse('http://localhost:$_serverPort/$path'));
+ final rq = await client.getUrl(Uri.http('localhost:$_serverPort', path));
headers?.forEach((key, value) {
rq.headers.add(key, value);
});
@@ -587,8 +586,7 @@
Future<http.StreamedResponse> _post(
{Map<String, String>? headers, String? body}) {
- var request =
- http.Request('POST', Uri.parse('http://localhost:$_serverPort/'));
+ var request = http.Request('POST', Uri.http('localhost:$_serverPort', ''));
if (headers != null) request.headers.addAll(headers);
if (body != null) request.body = body;