OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // | |
5 // VMOptions= | |
6 // VMOptions=--short_socket_read | |
7 // VMOptions=--short_socket_write | |
8 // VMOptions=--short_socket_read --short_socket_write | |
9 | 4 |
10 import "package:expect/expect.dart"; | 5 import "package:http_server/http_server.dart"; |
| 6 import "package:mime/mime.dart"; |
| 7 import "package:unittest/unittest.dart"; |
11 import 'dart:async'; | 8 import 'dart:async'; |
12 import 'dart:io'; | 9 import 'dart:io'; |
13 | 10 |
14 class FormField { | 11 class FormField { |
15 final String name; | 12 final String name; |
16 final value; | 13 final value; |
17 final String contentType; | 14 final String contentType; |
18 final String filename; | 15 final String filename; |
19 | 16 |
20 FormField(String this.name, | 17 FormField(String this.name, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 multipart.contentDisposition.parameters['name'], | 66 multipart.contentDisposition.parameters['name'], |
70 data, | 67 data, |
71 contentType: contentType, | 68 contentType: contentType, |
72 filename: | 69 filename: |
73 multipart.contentDisposition.parameters['filename']); | 70 multipart.contentDisposition.parameters['filename']); |
74 }); | 71 }); |
75 }) | 72 }) |
76 .fold([], (l, f) => l..add(f)) | 73 .fold([], (l, f) => l..add(f)) |
77 .then(Future.wait) | 74 .then(Future.wait) |
78 .then((fields) { | 75 .then((fields) { |
79 Expect.listEquals(expectedFields, fields); | 76 expect(fields, equals(expectedFields)); |
80 request.response.close().then((_) => server.close()); | 77 request.response.close().then((_) => server.close()); |
81 }); | 78 }); |
82 }); | 79 }); |
83 var client = new HttpClient(); | 80 var client = new HttpClient(); |
84 client.post('127.0.0.1', server.port, '/') | 81 client.post('127.0.0.1', server.port, '/') |
85 .then((request) { | 82 .then((request) { |
86 request.headers.set('content-type', | 83 request.headers.set('content-type', |
87 'multipart/form-data; boundary=$boundary'); | 84 'multipart/form-data; boundary=$boundary'); |
88 request.add(message); | 85 request.add(message); |
89 return request.close(); | 86 return request.close(); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 postDataTest(message, | 188 postDataTest(message, |
192 'multipart/form-data', | 189 'multipart/form-data', |
193 '----WebKitFormBoundaryfe0EzV1aNysD1bPh', | 190 '----WebKitFormBoundaryfe0EzV1aNysD1bPh', |
194 [new FormField('name', 'øv')]); | 191 [new FormField('name', 'øv')]); |
195 } | 192 } |
196 | 193 |
197 | 194 |
198 void main() { | 195 void main() { |
199 testPostData(); | 196 testPostData(); |
200 } | 197 } |
OLD | NEW |