[gardening] Fix standalone_2/io/http_compression_test.
Rewrite the test to use async/await and fix Dart 2 typing issues in it.
Change-Id: If071ffbf05443d66220897d30835d9499e248d3c
Reviewed-on: https://dart-review.googlesource.com/c/86927
Auto-Submit: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
diff --git a/tests/standalone_2/io/http_compression_test.dart b/tests/standalone_2/io/http_compression_test.dart
index 35afe5a..2e0b45f 100644
--- a/tests/standalone_2/io/http_compression_test.dart
+++ b/tests/standalone_2/io/http_compression_test.dart
@@ -11,112 +11,94 @@
import 'dart:io';
import 'dart:typed_data';
-void testServerCompress({bool clientAutoUncompress: true}) {
- void test(List<int> data) {
- HttpServer.bind("127.0.0.1", 0).then((server) {
- server.autoCompress = true;
- server.listen((request) {
- request.response.add(data);
- request.response.close();
- });
- var client = new HttpClient();
- client.autoUncompress = clientAutoUncompress;
- client.get("127.0.0.1", server.port, "/").then((request) {
- request.headers.set(HttpHeaders.acceptEncodingHeader, "gzip,deflate");
- return request.close();
- }).then((response) {
- Expect.equals(
- "gzip", response.headers.value(HttpHeaders.contentEncodingHeader));
- response.fold([], (list, b) {
- list.addAll(b);
- return list;
- }).then((list) {
- if (clientAutoUncompress) {
- Expect.listEquals(data, list);
- } else {
- Expect.listEquals(data, gzip.decode(list));
- }
- server.close();
- client.close();
- });
- });
+void testServerCompress({bool clientAutoUncompress: true}) async {
+ void test(List<int> data) async {
+ final server = await HttpServer.bind("127.0.0.1", 0);
+ server.autoCompress = true;
+ server.listen((request) {
+ request.response.add(data);
+ request.response.close();
});
+ var client = new HttpClient();
+ client.autoUncompress = clientAutoUncompress;
+ final request = await client.get("127.0.0.1", server.port, "/");
+ request.headers.set(HttpHeaders.acceptEncodingHeader, "gzip,deflate");
+ final response = await request.close();
+ Expect.equals(
+ "gzip", response.headers.value(HttpHeaders.contentEncodingHeader));
+ final list = await response.fold(<int>[], (list, b) => list..addAll(b));
+ if (clientAutoUncompress) {
+ Expect.listEquals(data, list);
+ } else {
+ Expect.listEquals(data, gzip.decode(list));
+ }
+ server.close();
+ client.close();
}
- test("My raw server provided data".codeUnits);
+ await test("My raw server provided data".codeUnits);
var longBuffer = new Uint8List(1024 * 1024);
for (int i = 0; i < longBuffer.length; i++) {
longBuffer[i] = i & 0xFF;
}
- test(longBuffer);
+ await test(longBuffer);
}
-void testAcceptEncodingHeader() {
- void test(String encoding, bool valid) {
- HttpServer.bind("127.0.0.1", 0).then((server) {
- server.autoCompress = true;
- server.listen((request) {
- request.response.write("data");
- request.response.close();
- });
- var client = new HttpClient();
- client.get("127.0.0.1", server.port, "/").then((request) {
- request.headers.set(HttpHeaders.acceptEncodingHeader, encoding);
- return request.close();
- }).then((response) {
- Expect.equals(
- valid,
- ("gzip" ==
- response.headers.value(HttpHeaders.contentEncodingHeader)));
- response.listen((_) {}, onDone: () {
- server.close();
- client.close();
- });
- });
- });
- }
-
- test('gzip', true);
- test('deflate', false);
- test('gzip, deflate', true);
- test('gzip ,deflate', true);
- test('gzip , deflate', true);
- test('deflate,gzip', true);
- test('deflate, gzip', true);
- test('deflate ,gzip', true);
- test('deflate , gzip', true);
- test('abc,deflate , gzip,def,,,ghi ,jkl', true);
- test('xgzip', false);
- test('gzipx;', false);
-}
-
-void testDisableCompressTest() {
- HttpServer.bind("127.0.0.1", 0).then((server) {
- Expect.equals(false, server.autoCompress);
+void testAcceptEncodingHeader() async {
+ void test(String encoding, bool valid) async {
+ final server = await HttpServer.bind("127.0.0.1", 0);
+ server.autoCompress = true;
server.listen((request) {
- Expect.equals(
- 'gzip', request.headers.value(HttpHeaders.acceptEncodingHeader));
request.response.write("data");
request.response.close();
});
var client = new HttpClient();
- client
- .get("127.0.0.1", server.port, "/")
- .then((request) => request.close())
- .then((response) {
- Expect.equals(
- null, response.headers.value(HttpHeaders.contentEncodingHeader));
- response.listen((_) {}, onDone: () {
- server.close();
- client.close();
- });
- });
- });
+ final request = await client.get("127.0.0.1", server.port, "/");
+ request.headers.set(HttpHeaders.acceptEncodingHeader, encoding);
+ final response = await request.close();
+ Expect.equals(valid,
+ ("gzip" == response.headers.value(HttpHeaders.contentEncodingHeader)));
+ await response.listen((_) {}).asFuture();
+ server.close();
+ client.close();
+ }
+
+ await test('gzip', true);
+ await test('deflate', false);
+ await test('gzip, deflate', true);
+ await test('gzip ,deflate', true);
+ await test('gzip , deflate', true);
+ await test('deflate,gzip', true);
+ await test('deflate, gzip', true);
+ await test('deflate ,gzip', true);
+ await test('deflate , gzip', true);
+ await test('abc,deflate , gzip,def,,,ghi ,jkl', true);
+ await test('xgzip', false);
+ await test('gzipx;', false);
}
-void main() {
- testServerCompress();
- testServerCompress(clientAutoUncompress: false);
- testAcceptEncodingHeader();
- testDisableCompressTest();
+void testDisableCompressTest() async {
+ final server = await HttpServer.bind("127.0.0.1", 0);
+ Expect.equals(false, server.autoCompress);
+ server.listen((request) {
+ Expect.equals(
+ 'gzip', request.headers.value(HttpHeaders.acceptEncodingHeader));
+ request.response.write("data");
+ request.response.close();
+ });
+ final client = new HttpClient();
+ final request = await client.get("127.0.0.1", server.port, "/");
+ final response = await request.close();
+ Expect.equals(
+ null, response.headers.value(HttpHeaders.contentEncodingHeader));
+ await response.listen((_) {}).asFuture();
+ server.close();
+ client.close();
+}
+
+void main() async {
+ await testServerCompress();
+ await testServerCompress(clientAutoUncompress: false);
+ await testAcceptEncodingHeader();
+ await testDisableCompressTest();
}
diff --git a/tests/standalone_2/standalone_2_kernel.status b/tests/standalone_2/standalone_2_kernel.status
index 081a84f..dbdce5e 100644
--- a/tests/standalone_2/standalone_2_kernel.status
+++ b/tests/standalone_2/standalone_2_kernel.status
@@ -19,7 +19,6 @@
io/file_test: RuntimeError
io/http_auth_digest_test: RuntimeError
io/http_auth_test: RuntimeError
-io/http_compression_test: RuntimeError
io/http_cookie_date_test: CompileTimeError
io/http_headers_test: CompileTimeError
io/http_parser_test: CompileTimeError
@@ -102,7 +101,6 @@
io/file_fuzz_test: RuntimeError, Pass
io/http_client_connect_test: Skip # Flaky.
io/http_close_test: Crash
-io/http_compression_test: RuntimeError
io/http_content_length_test: Skip # Flaky.
io/http_cookie_test: Skip # Flaky
io/http_proxy_advanced_test: Skip # Flaky
@@ -154,7 +152,6 @@
[ $runtime == vm && $strong && ($compiler == dartk || $compiler == dartkb) ]
io/http_client_request_test: Pass, Timeout
-io/http_compression_test: RuntimeError
io/platform_resolved_executable_test/03: Pass, RuntimeError
io/platform_resolved_executable_test/04: Pass, RuntimeError
io/secure_builtin_roots_test: Pass, Timeout