[http_client_conformance_tests] Updates to support wasm compilation (#1064)
With wasm, the hybrid logic decodes JSON numbers as double
This fix adds in a helper to make sure we get `int` when desired
See https://github.com/dart-lang/http/issues/1066
diff --git a/pkgs/http_client_conformance_tests/bin/generate_server_wrappers.dart b/pkgs/http_client_conformance_tests/bin/generate_server_wrappers.dart
index 74f9d00..6e86737 100644
--- a/pkgs/http_client_conformance_tests/bin/generate_server_wrappers.dart
+++ b/pkgs/http_client_conformance_tests/bin/generate_server_wrappers.dart
@@ -10,12 +10,17 @@
import 'package:dart_style/dart_style.dart';
-const vm = '''// Generated by generate_server_wrappers.dart. Do not edit.
+const _export = '''export 'server_queue_helpers.dart'
+ show StreamQueueOfNullableObjectExtension;''';
+
+const _vm = '''// Generated by generate_server_wrappers.dart. Do not edit.
import 'package:stream_channel/stream_channel.dart';
import '<server_file_placeholder>';
+$_export
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
@@ -24,11 +29,13 @@
}
''';
-const web = '''// Generated by generate_server_wrappers.dart. Do not edit.
+const _web = '''// Generated by generate_server_wrappers.dart. Do not edit.
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+$_export
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
@@ -41,11 +48,11 @@
files.where((file) => file.path.endsWith('_server.dart')).forEach((file) {
final vmPath = file.path.replaceAll('_server.dart', '_server_vm.dart');
- File(vmPath).writeAsStringSync(formatter.format(vm.replaceAll(
+ File(vmPath).writeAsStringSync(formatter.format(_vm.replaceAll(
'<server_file_placeholder>', file.uri.pathSegments.last)));
final webPath = file.path.replaceAll('_server.dart', '_server_web.dart');
- File(webPath).writeAsStringSync(formatter.format(web.replaceAll(
+ File(webPath).writeAsStringSync(formatter.format(_web.replaceAll(
'<server_file_placeholder>', file.uri.pathSegments.last)));
});
}
diff --git a/pkgs/http_client_conformance_tests/lib/src/close_tests.dart b/pkgs/http_client_conformance_tests/lib/src/close_tests.dart
index 8194130..39324ad 100644
--- a/pkgs/http_client_conformance_tests/lib/src/close_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/close_tests.dart
@@ -20,7 +20,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_vm.dart
index 2bb2c16..a5ae1e0 100644
--- a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_vm.dart
@@ -4,6 +4,8 @@
import 'compressed_response_body_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_web.dart
index f880799..7b1d1a6 100644
--- a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_tests.dart b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_tests.dart
index 2395aaf..538b3ba 100644
--- a/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/compressed_response_body_tests.dart
@@ -32,7 +32,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/isolate_test.dart b/pkgs/http_client_conformance_tests/lib/src/isolate_test.dart
index 6b296a2..1723ab5 100644
--- a/pkgs/http_client_conformance_tests/lib/src/isolate_test.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/isolate_test.dart
@@ -31,7 +31,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_vm.dart
index c689212..f00f4ba 100644
--- a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_vm.dart
@@ -4,6 +4,8 @@
import 'multiple_clients_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_web.dart
index 91cfc76..3f71aa7 100644
--- a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_tests.dart b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_tests.dart
index 8f8dc81..ad40d4a 100644
--- a/pkgs/http_client_conformance_tests/lib/src/multiple_clients_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/multiple_clients_tests.dart
@@ -21,7 +21,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/redirect_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/redirect_server_vm.dart
index 7f9cf8c..4a9450a 100644
--- a/pkgs/http_client_conformance_tests/lib/src/redirect_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/redirect_server_vm.dart
@@ -4,6 +4,8 @@
import 'redirect_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/redirect_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/redirect_server_web.dart
index 0fbe8a3..a5fb0f2 100644
--- a/pkgs/http_client_conformance_tests/lib/src/redirect_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/redirect_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/redirect_tests.dart b/pkgs/http_client_conformance_tests/lib/src/redirect_tests.dart
index 600becc..47a77a7 100644
--- a/pkgs/http_client_conformance_tests/lib/src/redirect_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/redirect_tests.dart
@@ -23,7 +23,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_server_vm.dart
index 2260766..d2e1e4a 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_server_vm.dart
@@ -4,6 +4,8 @@
import 'request_body_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_server_web.dart
index 250bd52..6b6ab00 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_vm.dart
index 9f58119..c343d68 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_vm.dart
@@ -4,6 +4,8 @@
import 'request_body_streamed_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_web.dart
index 97e8fbc..41477ee 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_tests.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_tests.dart
index 8c0c658..0f43505 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_streamed_tests.dart
@@ -29,7 +29,7 @@
setUp(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDown(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_body_tests.dart b/pkgs/http_client_conformance_tests/lib/src/request_body_tests.dart
index 2f13fa7..fe12dd4 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_body_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_body_tests.dart
@@ -47,7 +47,7 @@
setUp(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDown(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_headers_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/request_headers_server_vm.dart
index 44e6565..dc930dc 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_headers_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_headers_server_vm.dart
@@ -4,6 +4,8 @@
import 'request_headers_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_headers_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/request_headers_server_web.dart
index 62e8d9e..a15b69b 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_headers_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_headers_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_headers_tests.dart b/pkgs/http_client_conformance_tests/lib/src/request_headers_tests.dart
index a694387..24d94d8 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_headers_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_headers_tests.dart
@@ -20,7 +20,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_methods_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/request_methods_server_vm.dart
index 6ce6627..fa25735 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_methods_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_methods_server_vm.dart
@@ -4,6 +4,8 @@
import 'request_methods_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_methods_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/request_methods_server_web.dart
index 8cddf5a..f9c924e 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_methods_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_methods_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/request_methods_tests.dart b/pkgs/http_client_conformance_tests/lib/src/request_methods_tests.dart
index ec11387..802f57e 100644
--- a/pkgs/http_client_conformance_tests/lib/src/request_methods_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/request_methods_tests.dart
@@ -8,7 +8,7 @@
import 'package:test/test.dart';
import 'request_methods_server_vm.dart'
- if (dart.library.html) 'request_methods_server_web.dart';
+ if (dart.library.js_interop) 'request_methods_server_web.dart';
/// Tests that the [Client] correctly sends HTTP request methods
/// (e.g. GET, HEAD).
@@ -25,7 +25,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_server_vm.dart
index f88e065..a12b6fb 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_server_vm.dart
@@ -4,6 +4,8 @@
import 'response_body_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_server_web.dart
index 94bdaa9..4d23a48 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_vm.dart
index 01d84a1..4e4eaff 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_vm.dart
@@ -4,6 +4,8 @@
import 'response_body_streamed_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_web.dart
index a9ce00b..e04ebd6 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_test.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_test.dart
index b8afa3d..f355d6c 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_test.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_streamed_test.dart
@@ -28,7 +28,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_body_tests.dart b/pkgs/http_client_conformance_tests/lib/src/response_body_tests.dart
index ba833f4..34c29f6 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_body_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_body_tests.dart
@@ -26,7 +26,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_headers_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/response_headers_server_vm.dart
index b7d4a01..c99a021 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_headers_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_headers_server_vm.dart
@@ -4,6 +4,8 @@
import 'response_headers_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_headers_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/response_headers_server_web.dart
index 8ee938a..0e6dabd 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_headers_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_headers_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_headers_tests.dart b/pkgs/http_client_conformance_tests/lib/src/response_headers_tests.dart
index 6a3647b..84f0fb6 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_headers_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_headers_tests.dart
@@ -20,7 +20,7 @@
setUp(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
test('single header', () async {
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_vm.dart
index ff2ea84..053bd11 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_vm.dart
@@ -4,6 +4,8 @@
import 'response_status_line_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_web.dart
index f1ebbcb..d70a325 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_status_line_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/response_status_line_tests.dart b/pkgs/http_client_conformance_tests/lib/src/response_status_line_tests.dart
index 12fb29c..6eb70c5 100644
--- a/pkgs/http_client_conformance_tests/lib/src/response_status_line_tests.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/response_status_line_tests.dart
@@ -23,7 +23,7 @@
setUp(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
test('complete', () async {
diff --git a/pkgs/http_client_conformance_tests/lib/src/server_errors_server_vm.dart b/pkgs/http_client_conformance_tests/lib/src/server_errors_server_vm.dart
index 257adcf..e5aa09f 100644
--- a/pkgs/http_client_conformance_tests/lib/src/server_errors_server_vm.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/server_errors_server_vm.dart
@@ -4,6 +4,8 @@
import 'server_errors_server.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server in the same process.
Future<StreamChannel<Object?>> startServer() async {
final controller = StreamChannelController<Object?>(sync: true);
diff --git a/pkgs/http_client_conformance_tests/lib/src/server_errors_server_web.dart b/pkgs/http_client_conformance_tests/lib/src/server_errors_server_web.dart
index cc763e3..9614f36 100644
--- a/pkgs/http_client_conformance_tests/lib/src/server_errors_server_web.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/server_errors_server_web.dart
@@ -3,6 +3,8 @@
import 'package:stream_channel/stream_channel.dart';
import 'package:test/test.dart';
+export 'server_queue_helpers.dart' show StreamQueueOfNullableObjectExtension;
+
/// Starts the redirect test HTTP server out-of-process.
Future<StreamChannel<Object?>> startServer() async => spawnHybridUri(Uri(
scheme: 'package',
diff --git a/pkgs/http_client_conformance_tests/lib/src/server_errors_test.dart b/pkgs/http_client_conformance_tests/lib/src/server_errors_test.dart
index 0e45bc5..1a83696 100644
--- a/pkgs/http_client_conformance_tests/lib/src/server_errors_test.dart
+++ b/pkgs/http_client_conformance_tests/lib/src/server_errors_test.dart
@@ -20,7 +20,7 @@
setUpAll(() async {
httpServerChannel = await startServer();
httpServerQueue = StreamQueue(httpServerChannel.stream);
- host = 'localhost:${await httpServerQueue.next}';
+ host = 'localhost:${await httpServerQueue.nextAsInt}';
});
tearDownAll(() => httpServerChannel.sink.add(null));
diff --git a/pkgs/http_client_conformance_tests/lib/src/server_queue_helpers.dart b/pkgs/http_client_conformance_tests/lib/src/server_queue_helpers.dart
new file mode 100644
index 0000000..df87ddd
--- /dev/null
+++ b/pkgs/http_client_conformance_tests/lib/src/server_queue_helpers.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:async/async.dart';
+
+extension StreamQueueOfNullableObjectExtension on StreamQueue<Object?> {
+ /// When run under dart2wasm, JSON numbers are always returned as [double].
+ Future<int> get nextAsInt async => ((await next) as num).toInt();
+}