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

Unified Diff: tests/standalone/io/zlib_test.dart

Issue 12451004: Introduce ZLibInflater and ZLibDeflater to dart:io. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 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 side-by-side diff with in-line comments
Download patch
« runtime/bin/filter.cc ('K') | « sdk/lib/io/iolib_sources.gypi ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/zlib_test.dart
diff --git a/tests/standalone/io/zlib_test.dart b/tests/standalone/io/zlib_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..80c5c47ff7e9035dfe64742dc15d8f026e991c4f
--- /dev/null
+++ b/tests/standalone/io/zlib_test.dart
@@ -0,0 +1,121 @@
+// 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:io';
+import 'dart:isolate';
+
+void testZLibDeflate() {
+ test(int level, List<int> expected) {
+ var port = new ReceivePort();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController();
+ controller.stream.transform(new ZLibDeflater(gzip: false, level: level))
+ .reduce([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((data) {
+ Expect.listEquals(expected, data);
+ port.close();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ test(0, [120, 1, 0, 10, 0, 245, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0,
+ 255, 255]);
+ test(1, [120, 1, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(2, [120, 94, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(3, [120, 94, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(4, [120, 94, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(5, [120, 94, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(6, [120, 156, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(-1, [120, 156, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(7, [120, 218, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(8, [120, 218, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+ test(9, [120, 218, 98, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 0,
+ 255, 255]);
+}
+
+
+void testZLibDeflateGZip() {
+ var port = new ReceivePort();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController();
+ controller.stream.transform(new ZLibDeflater())
+ .reduce([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((data) {
+ Expect.listEquals([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 98, 96, 100, 98,
+ 102, 97, 101, 99, 231, 224, 4, 0, 0, 0, 255, 255],
+ data);
+ port.close();
+ });
+ controller.add(data);
+ controller.close();
+}
+
+void testZLibDeflateInvalidLevel() {
+ test2(bool gzip, int level) {
+ var port = new ReceivePort();
+ try {
+ new ZLibDeflater(gzip: gzip, level: level);
+ } on InternalError catch (e) {
+ port.close();
+ }
+ }
+ test(int level) {
+ test2(false, level);
+ test2(true, level);
+ test2(9, level);
+ }
+ test(-2);
+ test(-20);
+ test(10);
+ test(42);
+ test(null);
+ test("9");
+}
+
+void testZLibInflate() {
+ test(int level) {
+ var port = new ReceivePort();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController();
+ controller.stream
+ .transform(new ZLibDeflater(gzip: false, level: level))
+ .transform(new ZLibInflater())
+ .reduce([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((inflated) {
+ Expect.listEquals(data, inflated);
+ port.close();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ for (int i = -1; i < 10; i++) {
+ test(i);
+ }
+}
+
+void main() {
+ testZLibDeflate();
+ testZLibDeflateGZip();
+ testZLibDeflateInvalidLevel();
+ testZLibInflate();
+}
« runtime/bin/filter.cc ('K') | « sdk/lib/io/iolib_sources.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698