Chromium Code Reviews| Index: pkg/http/test/mock_client_test.dart |
| diff --git a/pkg/http/test/mock_client_test.dart b/pkg/http/test/mock_client_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4c5c32f453e985a41868091239c864633e239025 |
| --- /dev/null |
| +++ b/pkg/http/test/mock_client_test.dart |
| @@ -0,0 +1,57 @@ |
| +// Copyright (c) 2012, 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. |
| + |
| +library mock_client_test; |
| + |
| +import 'dart:io'; |
| +import 'dart:json'; |
| +import 'dart:uri'; |
| + |
| +import '../../unittest/unittest.dart'; |
|
Bob Nystrom
2012/11/05 20:36:04
Add a TODO here that this should be a 'package:' i
nweiz
2012/11/05 22:35:16
Done.
|
| +import '../lib/http.dart' as http; |
| +import '../lib/src/utils.dart'; |
| +import 'utils.dart'; |
| + |
| +void main() { |
| + test('handles a request', () { |
| + var client = new http.MockClient(); |
| + client.handler = (request) { |
| + return new Future.immediate(new http.Response( |
| + JSON.stringify(request.bodyFields), 200, |
| + headers: {'content-type': 'application/json'})); |
| + }; |
| + |
| + expect(client.post("http://example.com/foo", fields: { |
| + 'field1': 'value1', |
| + 'field2': 'value2' |
| + }).transform((response) => response.body), completion(parse(equals({ |
| + 'field1': 'value1', |
| + 'field2': 'value2' |
| + })))); |
| + }); |
| + |
| + test('handles a streamed request', () { |
| + var client = new http.MockClient(); |
| + client.streamHandler = (request, bodyStream) { |
| + return consumeInputStream(bodyStream).transform((body) { |
| + var stream = new ListInputStream(); |
| + async.then((_) { |
| + var bodyString = new String.fromCharCodes(body); |
| + stream.write('Request body was "$bodyString"'.charCodes); |
| + stream.markEndOfStream(); |
| + }); |
| + |
| + return new http.StreamedResponse(stream, 200, -1); |
| + }); |
| + }; |
| + |
| + var uri = new Uri.fromString("http://example.com/foo"); |
| + var request = new http.Request("POST", uri); |
| + request.body = "hello, world"; |
| + var future = client.send(request) |
| + .chain(http.Response.fromStream) |
| + .transform((response) => response.body); |
| + expect(future, completion(equals('Request body was "hello, world"'))); |
|
Bob Nystrom
2012/11/05 20:36:04
You've organized this differently from the expect(
nweiz
2012/11/05 22:35:16
Just aesthetics. Since the future includes a coupl
|
| + }); |
| +} |