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

Side by Side Diff: tests/standalone/io/http_headers_test.dart

Issue 2225003002: Handle HTTP header parameters with empty values better (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Addressed review comments Created 4 years, 4 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
« no previous file with comments | « sdk/lib/io/http_headers.dart ('k') | no next file » | 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 dart.io; 5 library dart.io;
6 6
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 import "dart:async"; 8 import "dart:async";
9 import "dart:collection"; 9 import "dart:collection";
10 import "dart:convert"; 10 import "dart:convert";
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 contentType = ContentType.parse( 373 contentType = ContentType.parse(
374 " text/html ; charset = utf-8 ; xxx=yyy "); 374 " text/html ; charset = utf-8 ; xxx=yyy ");
375 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"}); 375 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"});
376 contentType = ContentType.parse( 376 contentType = ContentType.parse(
377 'text/html; charset=utf-8; xxx="yyy"'); 377 'text/html; charset=utf-8; xxx="yyy"');
378 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"}); 378 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"});
379 contentType = ContentType.parse( 379 contentType = ContentType.parse(
380 " text/html ; charset = utf-8 ; xxx=yyy "); 380 " text/html ; charset = utf-8 ; xxx=yyy ");
381 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"}); 381 check(contentType, "text", "html", {"charset": "utf-8", "xxx": "yyy"});
382 382
383 contentType = ContentType.parse("text/html; charset=;");
384 check(contentType, "text", "html", {"charset": null});
385 contentType = ContentType.parse("text/html; charset;");
386 check(contentType, "text", "html", {"charset": null});
387
383 // Test builtin content types. 388 // Test builtin content types.
384 check(ContentType.TEXT, "text", "plain", {"charset": "utf-8"}); 389 check(ContentType.TEXT, "text", "plain", {"charset": "utf-8"});
385 check(ContentType.HTML, "text", "html", {"charset": "utf-8"}); 390 check(ContentType.HTML, "text", "html", {"charset": "utf-8"});
386 check(ContentType.JSON, "application", "json", {"charset": "utf-8"}); 391 check(ContentType.JSON, "application", "json", {"charset": "utf-8"});
387 check(ContentType.BINARY, "application", "octet-stream"); 392 check(ContentType.BINARY, "application", "octet-stream");
388 } 393 }
389 394
395 void testKnownContentTypes() {
396 // Well known content types used by the VM service.
397 ContentType.parse('text/html; charset=UTF-8');
398 ContentType.parse('application/dart; charset=UTF-8');
399 ContentType.parse('application/javascript; charset=UTF-8');
400 ContentType.parse('text/css; charset=UTF-8');
401 ContentType.parse('image/gif');
402 ContentType.parse('image/png');
403 ContentType.parse('image/jpeg');
404 ContentType.parse('image/jpeg');
405 ContentType.parse('image/svg+xml');
406 ContentType.parse('text/plain');
407 }
408
390 void testContentTypeCache() { 409 void testContentTypeCache() {
391 _HttpHeaders headers = new _HttpHeaders("1.1"); 410 _HttpHeaders headers = new _HttpHeaders("1.1");
392 headers.set(HttpHeaders.CONTENT_TYPE, "text/html"); 411 headers.set(HttpHeaders.CONTENT_TYPE, "text/html");
393 Expect.equals("text", headers.contentType.primaryType); 412 Expect.equals("text", headers.contentType.primaryType);
394 Expect.equals("html", headers.contentType.subType); 413 Expect.equals("html", headers.contentType.subType);
395 Expect.equals("text/html", headers.contentType.value); 414 Expect.equals("text/html", headers.contentType.value);
396 headers.set(HttpHeaders.CONTENT_TYPE, "text/plain; charset=utf-8"); 415 headers.set(HttpHeaders.CONTENT_TYPE, "text/plain; charset=utf-8");
397 Expect.equals("text", headers.contentType.primaryType); 416 Expect.equals("text", headers.contentType.primaryType);
398 Expect.equals("plain", headers.contentType.subType); 417 Expect.equals("plain", headers.contentType.subType);
399 Expect.equals("text/plain", headers.contentType.value); 418 Expect.equals("text/plain", headers.contentType.value);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 main() { 582 main() {
564 testMultiValue(); 583 testMultiValue();
565 testDate(); 584 testDate();
566 testExpires(); 585 testExpires();
567 testIfModifiedSince(); 586 testIfModifiedSince();
568 testHost(); 587 testHost();
569 testTransferEncoding(); 588 testTransferEncoding();
570 testEnumeration(); 589 testEnumeration();
571 testHeaderValue(); 590 testHeaderValue();
572 testContentType(); 591 testContentType();
592 testKnownContentTypes();
573 testContentTypeCache(); 593 testContentTypeCache();
574 testCookie(); 594 testCookie();
575 testInvalidCookie(); 595 testInvalidCookie();
576 testHeaderLists(); 596 testHeaderLists();
577 testInvalidFieldName(); 597 testInvalidFieldName();
578 testInvalidFieldValue(); 598 testInvalidFieldValue();
579 testClear(); 599 testClear();
580 } 600 }
OLDNEW
« no previous file with comments | « sdk/lib/io/http_headers.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698