Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: pkg/http/test/multipart_test.dart

Issue 22909059: Some more removals of dart:utf. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Change ArgumentError to FormatException. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, 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 4
5 library multipart_test; 5 library multipart_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert';
8 import 'dart:io'; 9 import 'dart:io';
9 import 'dart:utf';
10 10
11 import 'package:http/http.dart' as http; 11 import 'package:http/http.dart' as http;
12 import 'package:path/path.dart' as path; 12 import 'package:path/path.dart' as path;
13 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
14 14
15 import 'utils.dart'; 15 import 'utils.dart';
16 16
17 /// A matcher that validates the body of a multipart request after finalization. 17 /// A matcher that validates the body of a multipart request after finalization.
18 /// The string "{{boundary}}" in [pattern] will be replaced by the boundary 18 /// The string "{{boundary}}" in [pattern] will be replaced by the boundary
19 /// string for the request, and LF newlines will be replaced with CRLF. 19 /// string for the request, and LF newlines will be replaced with CRLF.
20 /// Indentation will be normalized. 20 /// Indentation will be normalized.
21 Matcher bodyMatches(String pattern) => new _BodyMatches(pattern); 21 Matcher bodyMatches(String pattern) => new _BodyMatches(pattern);
22 22
23 class _BodyMatches extends Matcher { 23 class _BodyMatches extends Matcher {
24 final String _pattern; 24 final String _pattern;
25 25
26 _BodyMatches(this._pattern); 26 _BodyMatches(this._pattern);
27 27
28 bool matches(item, Map matchState) { 28 bool matches(item, Map matchState) {
29 if (item is! http.MultipartRequest) return false; 29 if (item is! http.MultipartRequest) return false;
30 30
31 var future = item.finalize().toBytes().then((bodyBytes) { 31 var future = item.finalize().toBytes().then((bodyBytes) {
32 var body = decodeUtf8(bodyBytes); 32 var body = UTF8.decode(bodyBytes);
33 var contentType = ContentType.parse(item.headers['content-type']); 33 var contentType = ContentType.parse(item.headers['content-type']);
34 var boundary = contentType.parameters['boundary']; 34 var boundary = contentType.parameters['boundary'];
35 var expected = cleanUpLiteral(_pattern) 35 var expected = cleanUpLiteral(_pattern)
36 .replaceAll("\n", "\r\n") 36 .replaceAll("\n", "\r\n")
37 .replaceAll("{{boundary}}", boundary); 37 .replaceAll("{{boundary}}", boundary);
38 38
39 expect(body, equals(expected)); 39 expect(body, equals(expected));
40 expect(item.contentLength, equals(bodyBytes.length)); 40 expect(item.contentLength, equals(bodyBytes.length));
41 }); 41 });
42 42
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 content-type: application/octet-stream 224 content-type: application/octet-stream
225 content-disposition: form-data; name="file"; filename="test-file" 225 content-disposition: form-data; name="file"; filename="test-file"
226 226
227 hello 227 hello
228 --{{boundary}}-- 228 --{{boundary}}--
229 ''')); 229 '''));
230 }), completes); 230 }), completes);
231 }); 231 });
232 }); 232 });
233 } 233 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698