Chromium Code Reviews| Index: pkg/shelf/test/response_test.dart |
| diff --git a/pkg/shelf/test/response_test.dart b/pkg/shelf/test/response_test.dart |
| index 9ee47c5f93360f8a62b82680a7bdd597ff12be3e..0227a02cf0f8dd8f21b569aa84e15eaafbdfb14e 100644 |
| --- a/pkg/shelf/test/response_test.dart |
| +++ b/pkg/shelf/test/response_test.dart |
| @@ -7,62 +7,24 @@ library shelf.response_test; |
| import 'dart:async'; |
| import 'dart:convert'; |
| -import 'package:shelf/shelf.dart'; |
| +import 'package:shelf/shelf.dart' hide Request; |
| import 'package:unittest/unittest.dart'; |
| -void main() { |
| - group("readAsString", () { |
| - test("supports a null body", () { |
| - var response = new Response(200); |
| - expect(response.readAsString(), completion(equals(""))); |
| - }); |
| +import 'test_change.dart'; |
| +import 'test_util.dart'; |
| - test("supports a String body", () { |
| +void main() { |
| + group("supports a String body", () { |
| + test("readAsString", () { |
| var response = new Response.ok("hello, world"); |
| expect(response.readAsString(), completion(equals("hello, world"))); |
| }); |
| - test("supports a Stream<List<int>> body", () { |
| - var controller = new StreamController(); |
| - var response = new Response.ok(controller.stream); |
| - expect(response.readAsString(), completion(equals("hello, world"))); |
| - |
| - controller.add([104, 101, 108, 108, 111, 44]); |
| - return new Future(() { |
| - controller |
| - ..add([32, 119, 111, 114, 108, 100]) |
| - ..close(); |
| - }); |
| - }); |
| - }); |
| - |
| - group("read", () { |
| - test("supports a null body", () { |
| - var response = new Response(200); |
| - expect(response.read().toList(), completion(isEmpty)); |
| - }); |
| + test("read", () { |
| + var helloWorldBytes = new List.from(HELLO_BYTES)..addAll(WORLD_BYTES); |
| - test("supports a String body", () { |
| var response = new Response.ok("hello, world"); |
| - expect(response.read().toList(), completion(equals([[ |
| - 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 |
| - ]]))); |
| - }); |
| - |
| - test("supports a Stream<List<int>> body", () { |
| - var controller = new StreamController(); |
| - var response = new Response.ok(controller.stream); |
| - expect(response.read().toList(), completion(equals([ |
| - [104, 101, 108, 108, 111, 44], |
| - [32, 119, 111, 114, 108, 100] |
| - ]))); |
| - |
| - controller.add([104, 101, 108, 108, 111, 44]); |
| - return new Future(() { |
| - controller |
| - ..add([32, 119, 111, 114, 108, 100]) |
| - ..close(); |
| - }); |
| + expect(response.read().toList(), completion(equals([helloWorldBytes]))); |
| }); |
| }); |
| @@ -157,4 +119,34 @@ void main() { |
| }).lastModified, equals(DateTime.parse("1994-11-06 08:49:37z"))); |
| }); |
| }); |
| + |
| + group('change', () { |
| + test('with no arguments returns instance with equal values', () { |
|
nweiz
2014/04/29 19:48:48
Why isn't this part of [testChange]?
kevmoo
2014/04/30 14:27:52
Because I'm ensuring that all of the non-common fi
|
| + var controller = new StreamController(); |
| + |
| + var request = new Response(345, body: 'hèllo, world', encoding: LATIN1, |
| + headers: {'header1': 'header value 1'}, |
| + context: {'context1': 'context value 1'}); |
| + |
| + var copy = request.change(); |
| + |
| + expect(copy.statusCode, request.statusCode); |
| + expect(copy.readAsString(), completion('hèllo, world')); |
| + expect(copy.headers, same(request.headers)); |
| + expect(copy.encoding, request.encoding); |
| + expect(copy.context, same(request.context)); |
| + |
| + controller.add(HELLO_BYTES); |
| + return new Future(() { |
| + controller |
| + ..add(WORLD_BYTES) |
| + ..close(); |
| + }); |
| + }); |
| + |
| + testChange(({headers, context}) { |
| + return new Response.ok(null, headers: headers, |
| + context: context); |
| + }); |
| + }); |
| } |