blob: 9dd5d3eb15fcc3fa7fd1ab208af59f60aaa6ba99 [file] [log] [blame]
// Copyright (c) 2014, 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.
@TestOn('vm')
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:test/test.dart';
import 'utils.dart';
void main() {
setUp(startServer);
tearDown(stopServer);
group('contentLength', () {
test('controls the Content-Length header', () async {
var request = http.StreamedRequest('POST', serverUrl)
..contentLength = 10
..sink.add([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
..sink.close();
var response = await request.send();
expect(
await utf8.decodeStream(response.stream),
parse(
containsPair('headers', containsPair('content-length', ['10']))));
});
test('defaults to sending no Content-Length', () async {
var request = http.StreamedRequest('POST', serverUrl);
request.sink.add([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
request.sink.close();
var response = await request.send();
expect(await utf8.decodeStream(response.stream),
parse(containsPair('headers', isNot(contains('content-length')))));
});
});
// Regression test.
test('.send() with a response with no content length', () async {
var request =
http.StreamedRequest('GET', serverUrl.resolve('/no-content-length'));
request.sink.close();
var response = await request.send();
expect(await utf8.decodeStream(response.stream), equals('body'));
});
}