| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'dart:async'; |
| import 'dart:convert'; |
| import 'dart:io'; |
| |
| import "package:async_helper/async_helper.dart"; |
| import "package:expect/expect.dart"; |
| |
| void testZLibInflate_regress10026() { |
| test(data, expect) { |
| asyncStart(); |
| var controller = new StreamController(sync: true); |
| controller.stream |
| .transform(ZLIB.decoder) |
| .transform(UTF8.decoder) |
| .fold(new StringBuffer(), (buffer, s) { |
| buffer.write(s); |
| return buffer; |
| }) |
| .then((out) { |
| Expect.equals(out.toString(), expect); |
| asyncEnd(); |
| }); |
| controller.add(data); |
| controller.close(); |
| } |
| // Generated by using 'gzip -c | od -v -tu1 -An -w12' and adding commas. |
| test([ |
| 31, 139, 8, 8, 238, 42, 167, 81, 0, 3, 116, 101, |
| 120, 116, 46, 116, 120, 116, 0, 125, 84, 79, 175, 147, |
| 64, 16, 63, 183, 159, 98, 196, 139, 38, 165, 244, 249, |
| 212, 52, 20, 136, 70, 77, 188, 168, 7, 189, 120, 156, |
| 178, 67, 153, 20, 118, 113, 119, 161, 109, 140, 223, 221, |
| 97, 105, 251, 170, 47, 154, 54, 41, 51, 195, 254, 254, |
| 49, 52, 123, 162, 76, 233, 79, 29, 65, 237, 219, 166, |
| 152, 103, 151, 31, 66, 85, 204, 103, 153, 103, 223, 80, |
| 241, 225, 136, 109, 215, 16, 188, 55, 45, 178, 206, 146, |
| 169, 59, 151, 121, 75, 30, 161, 172, 209, 58, 242, 121, |
| 212, 251, 42, 94, 71, 144, 20, 151, 73, 237, 125, 23, |
| 211, 143, 158, 135, 60, 122, 103, 180, 39, 237, 227, 145, |
| 45, 130, 114, 170, 242, 200, 211, 209, 39, 35, 235, 230, |
| 138, 243, 8, 70, 99, 75, 121, 52, 48, 29, 58, 99, |
| 253, 205, 225, 3, 43, 95, 231, 138, 6, 46, 41, 14, |
| 197, 2, 88, 179, 103, 108, 98, 87, 98, 67, 249, 221, |
| 25, 199, 249, 147, 24, 24, 185, 207, 148, 165, 115, 145, |
| 12, 182, 70, 157, 224, 231, 124, 54, 219, 98, 185, 223, |
| 89, 211, 107, 21, 151, 166, 49, 54, 133, 167, 213, 74, |
| 62, 47, 54, 50, 108, 209, 238, 88, 167, 176, 26, 139, |
| 14, 149, 98, 189, 59, 87, 149, 104, 137, 43, 108, 185, |
| 57, 165, 16, 125, 233, 72, 195, 87, 212, 46, 90, 64, |
| 244, 145, 154, 129, 60, 151, 8, 159, 169, 39, 233, 92, |
| 27, 11, 120, 107, 69, 227, 2, 156, 220, 26, 59, 178, |
| 92, 109, 36, 206, 95, 243, 153, 226, 33, 200, 9, 102, |
| 82, 120, 189, 90, 117, 199, 91, 5, 175, 168, 5, 236, |
| 189, 249, 67, 200, 61, 181, 155, 127, 88, 168, 170, 48, |
| 49, 86, 145, 141, 45, 42, 238, 93, 10, 119, 225, 126, |
| 97, 195, 180, 97, 189, 95, 0, 166, 3, 59, 246, 164, |
| 2, 247, 229, 240, 253, 250, 229, 122, 29, 206, 143, 137, |
| 197, 138, 74, 99, 209, 179, 17, 25, 218, 104, 154, 32, |
| 222, 180, 164, 24, 225, 89, 139, 199, 248, 86, 244, 243, |
| 41, 213, 75, 188, 255, 17, 39, 32, 87, 219, 23, 223, |
| 23, 139, 15, 201, 63, 180, 254, 50, 19, 158, 194, 67, |
| 22, 147, 183, 17, 84, 190, 89, 18, 158, 187, 44, 116, |
| 50, 109, 244, 60, 27, 21, 73, 45, 132, 227, 90, 212, |
| 119, 143, 150, 91, 90, 50, 232, 138, 111, 53, 59, 80, |
| 161, 9, 114, 69, 206, 227, 182, 97, 87, 75, 72, 222, |
| 192, 150, 160, 119, 114, 89, 25, 11, 220, 52, 189, 243, |
| 99, 52, 3, 1, 77, 112, 78, 246, 80, 78, 151, 125, |
| 43, 139, 234, 150, 240, 221, 244, 82, 74, 110, 30, 52, |
| 5, 136, 16, 180, 88, 97, 141, 158, 64, 96, 208, 237, |
| 3, 92, 71, 182, 101, 231, 36, 231, 145, 72, 88, 192, |
| 223, 74, 209, 87, 10, 121, 110, 90, 1, 251, 81, 222, |
| 8, 140, 3, 114, 35, 34, 105, 132, 17, 120, 75, 59, |
| 158, 116, 25, 189, 204, 146, 110, 242, 149, 201, 107, 105, |
| 169, 202, 163, 241, 229, 76, 147, 228, 112, 56, 44, 25, |
| 53, 46, 141, 221, 37, 19, 137, 75, 92, 71, 165, 44, |
| 104, 84, 124, 50, 150, 132, 83, 0, 219, 9, 103, 41, |
| 72, 88, 4, 180, 44, 9, 41, 102, 201, 57, 211, 100, |
| 250, 243, 248, 13, 215, 32, 235, 247, 84, 4, 0, 0 |
| ], ''' |
| <!doctype html> |
| <html> |
| <head> |
| <title>Example Domain</title> |
| |
| <meta charset="utf-8" /> |
| <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <style type="text/css"> |
| body { |
| background-color: #f0f0f2; |
| margin: 0; |
| padding: 0; |
| font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; |
| |
| } |
| div { |
| width: 600px; |
| margin: 5em auto; |
| padding: 3em; |
| background-color: #fff; |
| border-radius: 1em; |
| } |
| a:link, a:visited { |
| color: #38488f; |
| text-decoration: none; |
| } |
| @media (max-width: 600px) { |
| body { |
| background-color: #fff; |
| } |
| div { |
| width: auto; |
| margin: 0 auto; |
| border-radius: 0; |
| padding: 1em; |
| } |
| } |
| </style> |
| </head> |
| |
| <body> |
| <div> |
| <h1>Example Domain</h1> |
| <p>This domain is established to be used for illustrative examples in documents. You do not need to |
| coordinate or ask for permission to use this domain in examples, and it is not available for |
| registration.</p> |
| <p><a href="http://www.iana.org/domains/special">More information...</a></p> |
| </div> |
| </body> |
| </html> |
| '''); |
| } |
| |
| void main() { |
| testZLibInflate_regress10026(); |
| } |
| |