Index: pkg/http/test/streamed_request_test.dart |
diff --git a/pkg/http/test/streamed_request_test.dart b/pkg/http/test/streamed_request_test.dart |
index 56c92527c33a4e2599b3e4d766fcb092c6bd8e38..761102c8aa464ed18517cfd7fb1499425b574bb0 100644 |
--- a/pkg/http/test/streamed_request_test.dart |
+++ b/pkg/http/test/streamed_request_test.dart |
@@ -4,17 +4,58 @@ |
library streamed_request_test; |
+import 'dart:convert'; |
+ |
import 'package:http/http.dart' as http; |
import 'package:unittest/unittest.dart'; |
import 'utils.dart'; |
void main() { |
- test('#finalize freezes contentLength', () { |
- var request = new http.StreamedRequest('POST', dummyUrl); |
- request.finalize(); |
+ group('contentLength', () { |
+ test('defaults to null', () { |
+ var request = new http.StreamedRequest('POST', dummyUrl); |
+ expect(request.contentLength, isNull); |
+ }); |
+ |
+ test('disallows negative values', () { |
+ var request = new http.StreamedRequest('POST', dummyUrl); |
+ expect(() => request.contentLength = -1, throwsArgumentError); |
+ }); |
+ |
+ test('controls the Content-Length header', () { |
+ return startServer().then((_) { |
+ var request = new http.StreamedRequest('POST', serverUrl); |
+ request.contentLength = 10; |
+ request.sink.add([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
+ request.sink.close(); |
+ |
+ return request.send(); |
+ }).then((response) { |
+ expect(UTF8.decodeStream(response.stream), |
+ completion(parse(containsPair('headers', |
+ containsPair('content-length', ['10']))))); |
+ }).whenComplete(stopServer); |
+ }); |
+ |
+ test('defaults to sending no Content-Length', () { |
+ return startServer().then((_) { |
+ var request = new http.StreamedRequest('POST', serverUrl); |
+ request.sink.add([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
+ request.sink.close(); |
+ |
+ return request.send(); |
+ }).then((response) { |
+ expect(UTF8.decodeStream(response.stream), |
+ completion(parse(containsPair('headers', |
+ isNot(contains('content-length')))))); |
+ }).whenComplete(stopServer); |
+ }); |
- expect(request.contentLength, equals(-1)); |
- expect(() => request.contentLength = 10, throwsStateError); |
+ test('is frozen by finalize()', () { |
+ var request = new http.StreamedRequest('POST', dummyUrl); |
+ request.finalize(); |
+ expect(() => request.contentLength = 10, throwsStateError); |
+ }); |
}); |
} |