OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import "dart:isolate"; | 5 import "dart:isolate"; |
6 import "dart:io"; | 6 import "dart:io"; |
7 | 7 |
8 void testNoBody(int totalConnections, bool explicitContentLength) { | 8 void testNoBody(int totalConnections, bool explicitContentLength) { |
9 HttpServer server = new HttpServer(); | 9 HttpServer server = new HttpServer(); |
10 server.onError = (e) => Expect.fail("Unexpected error $e"); | 10 server.onError = (e) => Expect.fail("Unexpected error $e"); |
11 server.listen("127.0.0.1", 0, backlog: totalConnections); | 11 server.listen("127.0.0.1", 0, backlog: totalConnections); |
12 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { | 12 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { |
13 Expect.isNull(request.headers.value('content-length')); | 13 Expect.equals("0", request.headers.value('content-length')); |
14 Expect.equals(0, request.contentLength); | 14 Expect.equals(0, request.contentLength); |
15 response.contentLength = 0; | 15 response.contentLength = 0; |
16 OutputStream stream = response.outputStream; | 16 OutputStream stream = response.outputStream; |
17 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); | 17 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); |
18 stream.close(); | 18 stream.close(); |
19 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); | 19 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); |
20 }; | 20 }; |
21 | 21 |
22 int count = 0; | 22 int count = 0; |
23 HttpClient client = new HttpClient(); | 23 HttpClient client = new HttpClient(); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 }; | 92 }; |
93 } | 93 } |
94 } | 94 } |
95 | 95 |
96 void testHttp10() { | 96 void testHttp10() { |
97 HttpServer server = new HttpServer(); | 97 HttpServer server = new HttpServer(); |
98 server.onError = (e) => Expect.fail("Unexpected error $e"); | 98 server.onError = (e) => Expect.fail("Unexpected error $e"); |
99 server.listen("127.0.0.1", 0, backlog: 5); | 99 server.listen("127.0.0.1", 0, backlog: 5); |
100 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { | 100 server.defaultRequestHandler = (HttpRequest request, HttpResponse response) { |
101 Expect.isNull(request.headers.value('content-length')); | 101 Expect.isNull(request.headers.value('content-length')); |
102 Expect.equals(0, request.contentLength); | 102 Expect.equals(-1, request.contentLength); |
103 response.contentLength = 0; | 103 response.contentLength = 0; |
104 OutputStream stream = response.outputStream; | 104 OutputStream stream = response.outputStream; |
105 Expect.equals("1.0", request.protocolVersion); | 105 Expect.equals("1.0", request.protocolVersion); |
106 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); | 106 Expect.throws(() => stream.writeString("x"), (e) => e is HttpException); |
107 stream.close(); | 107 stream.close(); |
108 }; | 108 }; |
109 | 109 |
110 Socket socket = new Socket("127.0.0.1", server.port); | 110 Socket socket = new Socket("127.0.0.1", server.port); |
111 socket.onConnect = () { | 111 socket.onConnect = () { |
112 List<int> buffer = new List<int>(1024); | 112 List<int> buffer = new List<int>(1024); |
113 socket.outputStream.writeString("GET / HTTP/1.0\r\n\r\n"); | 113 socket.outputStream.writeString("GET / HTTP/1.0\r\n\r\n"); |
114 socket.onData = () => socket.readList(buffer, 0, buffer.length); | 114 socket.onData = () => socket.readList(buffer, 0, buffer.length); |
115 socket.onClosed = () { | 115 socket.onClosed = () { |
116 socket.close(true); | 116 socket.close(true); |
117 server.close(); | 117 server.close(); |
118 }; | 118 }; |
119 }; | 119 }; |
120 } | 120 } |
121 | 121 |
122 void main() { | 122 void main() { |
123 testNoBody(5, false); | 123 testNoBody(5, false); |
124 testNoBody(5, true); | 124 testNoBody(5, true); |
125 testBody(5); | 125 testBody(5); |
126 testHttp10(); | 126 testHttp10(); |
127 } | 127 } |
OLD | NEW |