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

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

Issue 22872012: Remove Encoding-enum from dart:io and add interface in dart:convert. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix typo. 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
« no previous file with comments | « pkg/http/lib/src/utils.dart ('k') | pkg/http/test/utils.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 request_test; 5 library request_test;
6 6
7 import 'dart:convert';
7 import 'dart:io'; 8 import 'dart:io';
8 9
9 import 'package:http/http.dart' as http; 10 import 'package:http/http.dart' as http;
10 import 'package:unittest/unittest.dart'; 11 import 'package:unittest/unittest.dart';
11 12
12 import 'utils.dart'; 13 import 'utils.dart';
13 14
14 void main() { 15 void main() {
15 test('.send', () { 16 test('.send', () {
16 expect(startServer().then((_) { 17 expect(startServer().then((_) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 56
56 test('is not directly mutable', () { 57 test('is not directly mutable', () {
57 var request = new http.Request('POST', dummyUrl); 58 var request = new http.Request('POST', dummyUrl);
58 expect(() => request.contentLength = 50, throwsUnsupportedError); 59 expect(() => request.contentLength = 50, throwsUnsupportedError);
59 }); 60 });
60 }); 61 });
61 62
62 group('#encoding', () { 63 group('#encoding', () {
63 test('defaults to utf-8', () { 64 test('defaults to utf-8', () {
64 var request = new http.Request('POST', dummyUrl); 65 var request = new http.Request('POST', dummyUrl);
65 expect(request.encoding.name, equals(Encoding.UTF_8.name)); 66 expect(request.encoding.name, equals(UTF8.name));
66 }); 67 });
67 68
68 test('can be set', () { 69 test('can be set', () {
69 var request = new http.Request('POST', dummyUrl); 70 var request = new http.Request('POST', dummyUrl);
70 request.encoding = Encoding.ISO_8859_1; 71 request.encoding = LATIN1;
71 expect(request.encoding.name, equals(Encoding.ISO_8859_1.name)); 72 expect(request.encoding.name, equals(LATIN1.name));
72 }); 73 });
73 74
74 test('is based on the content-type charset if it exists', () { 75 test('is based on the content-type charset if it exists', () {
75 var request = new http.Request('POST', dummyUrl); 76 var request = new http.Request('POST', dummyUrl);
76 request.headers[HttpHeaders.CONTENT_TYPE] = 77 request.headers[HttpHeaders.CONTENT_TYPE] =
77 'text/plain; charset=iso-8859-1'; 78 'text/plain; charset=iso-8859-1';
78 expect(request.encoding.name, equals(Encoding.ISO_8859_1.name)); 79 expect(request.encoding.name, equals(LATIN1.name));
79 }); 80 });
80 81
81 test('remains the default if the content-type charset is set and unset', 82 test('remains the default if the content-type charset is set and unset',
82 () { 83 () {
83 var request = new http.Request('POST', dummyUrl); 84 var request = new http.Request('POST', dummyUrl);
84 request.encoding = Encoding.ISO_8859_1; 85 request.encoding = LATIN1;
85 request.headers[HttpHeaders.CONTENT_TYPE] = 86 request.headers[HttpHeaders.CONTENT_TYPE] =
86 'text/plain; charset=utf-8'; 87 'text/plain; charset=utf-8';
87 expect(request.encoding.name, equals(Encoding.UTF_8.name)); 88 expect(request.encoding.name, equals(UTF8.name));
88 89
89 request.headers.remove(HttpHeaders.CONTENT_TYPE); 90 request.headers.remove(HttpHeaders.CONTENT_TYPE);
90 expect(request.encoding.name, equals(Encoding.ISO_8859_1.name)); 91 expect(request.encoding.name, equals(LATIN1.name));
91 }); 92 });
92 93
93 test('throws an error if the content-type charset is unknown', () { 94 test('throws an error if the content-type charset is unknown', () {
94 var request = new http.Request('POST', dummyUrl); 95 var request = new http.Request('POST', dummyUrl);
95 request.headers[HttpHeaders.CONTENT_TYPE] = 96 request.headers[HttpHeaders.CONTENT_TYPE] =
96 'text/plain; charset=not-a-real-charset'; 97 'text/plain; charset=not-a-real-charset';
97 expect(() => request.encoding, throwsFormatException); 98 expect(() => request.encoding, throwsFormatException);
98 }); 99 });
99 }); 100 });
100 101
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 }); 234 });
234 235
235 group('content-type header', () { 236 group('content-type header', () {
236 test('defaults to empty', () { 237 test('defaults to empty', () {
237 var request = new http.Request('POST', dummyUrl); 238 var request = new http.Request('POST', dummyUrl);
238 expect(request.headers[HttpHeaders.CONTENT_TYPE], isNull); 239 expect(request.headers[HttpHeaders.CONTENT_TYPE], isNull);
239 }); 240 });
240 241
241 test('defaults to empty if only encoding is set', () { 242 test('defaults to empty if only encoding is set', () {
242 var request = new http.Request('POST', dummyUrl); 243 var request = new http.Request('POST', dummyUrl);
243 request.encoding = Encoding.ISO_8859_1; 244 request.encoding = LATIN1;
244 expect(request.headers[HttpHeaders.CONTENT_TYPE], isNull); 245 expect(request.headers[HttpHeaders.CONTENT_TYPE], isNull);
245 }); 246 });
246 247
247 test('is set to application/x-www-form-urlencoded with charset utf-8 if ' 248 test('is set to application/x-www-form-urlencoded with charset utf-8 if '
248 'bodyFields is set', () { 249 'bodyFields is set', () {
249 var request = new http.Request('POST', dummyUrl); 250 var request = new http.Request('POST', dummyUrl);
250 request.bodyFields = {'hello': 'world'}; 251 request.bodyFields = {'hello': 'world'};
251 expect(request.headers[HttpHeaders.CONTENT_TYPE], 252 expect(request.headers[HttpHeaders.CONTENT_TYPE],
252 equals('application/x-www-form-urlencoded; charset=utf-8')); 253 equals('application/x-www-form-urlencoded; charset=utf-8'));
253 }); 254 });
254 255
255 test('is set to application/x-www-form-urlencoded with the given charset ' 256 test('is set to application/x-www-form-urlencoded with the given charset '
256 'if bodyFields and encoding are set', () { 257 'if bodyFields and encoding are set', () {
257 var request = new http.Request('POST', dummyUrl); 258 var request = new http.Request('POST', dummyUrl);
258 request.encoding = Encoding.ISO_8859_1; 259 request.encoding = LATIN1;
259 request.bodyFields = {'hello': 'world'}; 260 request.bodyFields = {'hello': 'world'};
260 expect(request.headers[HttpHeaders.CONTENT_TYPE], 261 expect(request.headers[HttpHeaders.CONTENT_TYPE],
261 equals('application/x-www-form-urlencoded; charset=iso-8859-1')); 262 equals('application/x-www-form-urlencoded; charset=iso-8859-1'));
262 }); 263 });
263 264
264 test('is set to text/plain and the given encoding if body and encoding are ' 265 test('is set to text/plain and the given encoding if body and encoding are '
265 'both set', () { 266 'both set', () {
266 var request = new http.Request('POST', dummyUrl); 267 var request = new http.Request('POST', dummyUrl);
267 request.encoding = Encoding.ISO_8859_1; 268 request.encoding = LATIN1;
268 request.body = 'hello, world'; 269 request.body = 'hello, world';
269 expect(request.headers[HttpHeaders.CONTENT_TYPE], 270 expect(request.headers[HttpHeaders.CONTENT_TYPE],
270 equals('text/plain; charset=iso-8859-1')); 271 equals('text/plain; charset=iso-8859-1'));
271 }); 272 });
272 273
273 test('is modified to include utf-8 if body is set', () { 274 test('is modified to include utf-8 if body is set', () {
274 var request = new http.Request('POST', dummyUrl); 275 var request = new http.Request('POST', dummyUrl);
275 request.headers[HttpHeaders.CONTENT_TYPE] = 'application/json'; 276 request.headers[HttpHeaders.CONTENT_TYPE] = 'application/json';
276 request.body = '{"hello": "world"}'; 277 request.body = '{"hello": "world"}';
277 expect(request.headers[HttpHeaders.CONTENT_TYPE], 278 expect(request.headers[HttpHeaders.CONTENT_TYPE],
278 equals('application/json; charset=utf-8')); 279 equals('application/json; charset=utf-8'));
279 }); 280 });
280 281
281 test('is modified to include the given encoding if encoding is set', () { 282 test('is modified to include the given encoding if encoding is set', () {
282 var request = new http.Request('POST', dummyUrl); 283 var request = new http.Request('POST', dummyUrl);
283 request.headers[HttpHeaders.CONTENT_TYPE] = 'application/json'; 284 request.headers[HttpHeaders.CONTENT_TYPE] = 'application/json';
284 request.encoding = Encoding.ISO_8859_1; 285 request.encoding = LATIN1;
285 expect(request.headers[HttpHeaders.CONTENT_TYPE], 286 expect(request.headers[HttpHeaders.CONTENT_TYPE],
286 equals('application/json; charset=iso-8859-1')); 287 equals('application/json; charset=iso-8859-1'));
287 }); 288 });
288 289
289 test('has its charset overridden by an explicit encoding', () { 290 test('has its charset overridden by an explicit encoding', () {
290 var request = new http.Request('POST', dummyUrl); 291 var request = new http.Request('POST', dummyUrl);
291 request.headers[HttpHeaders.CONTENT_TYPE] = 292 request.headers[HttpHeaders.CONTENT_TYPE] =
292 'application/json; charset=utf-8'; 293 'application/json; charset=utf-8';
293 request.encoding = Encoding.ISO_8859_1; 294 request.encoding = LATIN1;
294 expect(request.headers[HttpHeaders.CONTENT_TYPE], 295 expect(request.headers[HttpHeaders.CONTENT_TYPE],
295 equals('application/json; charset=iso-8859-1')); 296 equals('application/json; charset=iso-8859-1'));
296 }); 297 });
297 298
298 test("doen't have its charset overridden by setting bodyFields", () { 299 test("doen't have its charset overridden by setting bodyFields", () {
299 var request = new http.Request('POST', dummyUrl); 300 var request = new http.Request('POST', dummyUrl);
300 request.headers[HttpHeaders.CONTENT_TYPE] = 301 request.headers[HttpHeaders.CONTENT_TYPE] =
301 'application/x-www-form-urlencoded; charset=iso-8859-1'; 302 'application/x-www-form-urlencoded; charset=iso-8859-1';
302 request.bodyFields = {'hello': 'world'}; 303 request.bodyFields = {'hello': 'world'};
303 expect(request.headers[HttpHeaders.CONTENT_TYPE], 304 expect(request.headers[HttpHeaders.CONTENT_TYPE],
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 request.finalize(); 344 request.finalize();
344 345
345 expect(request.maxRedirects, equals(5)); 346 expect(request.maxRedirects, equals(5));
346 expect(() => request.maxRedirects = 10, throwsStateError); 347 expect(() => request.maxRedirects = 10, throwsStateError);
347 }); 348 });
348 349
349 test('freezes #encoding', () { 350 test('freezes #encoding', () {
350 var request = new http.Request('POST', dummyUrl); 351 var request = new http.Request('POST', dummyUrl);
351 request.finalize(); 352 request.finalize();
352 353
353 expect(request.encoding.name, equals(Encoding.UTF_8.name)); 354 expect(request.encoding.name, equals(UTF8.name));
354 expect(() => request.encoding = Encoding.ASCII, throwsStateError); 355 expect(() => request.encoding = ASCII, throwsStateError);
355 }); 356 });
356 357
357 test('freezes #bodyBytes', () { 358 test('freezes #bodyBytes', () {
358 var request = new http.Request('POST', dummyUrl); 359 var request = new http.Request('POST', dummyUrl);
359 request.bodyBytes = [1, 2, 3]; 360 request.bodyBytes = [1, 2, 3];
360 request.finalize(); 361 request.finalize();
361 362
362 expect(request.bodyBytes, equals([1, 2, 3])); 363 expect(request.bodyBytes, equals([1, 2, 3]));
363 expect(() => request.bodyBytes = [4, 5, 6], throwsStateError); 364 expect(() => request.bodyBytes = [4, 5, 6], throwsStateError);
364 }); 365 });
(...skipping 24 matching lines...) Expand all
389 }); 390 });
390 391
391 group('#toString()', () { 392 group('#toString()', () {
392 test('includes the method and URL', () { 393 test('includes the method and URL', () {
393 var request = new http.Request('POST', dummyUrl); 394 var request = new http.Request('POST', dummyUrl);
394 expect(request.toString(), 'POST $dummyUrl'); 395 expect(request.toString(), 'POST $dummyUrl');
395 }); 396 });
396 }); 397 });
397 } 398 }
398 399
OLDNEW
« no previous file with comments | « pkg/http/lib/src/utils.dart ('k') | pkg/http/test/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698