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

Side by Side Diff: utils/tests/archive/reader_test.dart

Issue 226723004: Remove utils/tests/archive (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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 | « utils/tests/archive/data/test-archive.tar.gz ('k') | utils/tests/archive/utils_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
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.
4
5 library reader_test;
6
7 import 'dart:io';
8 import '../../../pkg/unittest/lib/unittest.dart'
9 import '../../archive/archive.dart';
10
11 final String dataPath = "utils/tests/archive/data";
12
13 main() {
14 test('reading a .tar.gz file', () {
15 var asyncDone = expectAsync0(() {});
16
17 var reader = new ArchiveReader();
18 reader.format.tar = true;
19 reader.filter.gzip = true;
20
21 var future = reader.openFilename("$dataPath/test-archive.tar.gz")
22 .then((input) {
23 var log = <String>[];
24 input.onEntry = (entry) => guardAsync(() {
25 log.add("Entry: ${entry.pathname}");
26 var stream = new StringInputStream(entry.openInputStream());
27 stream.onData = () => log.add("Contents: ${stream.read().trim()}");
28 stream.onClosed = () => log.add("Closed: ${entry.pathname}");
29 });
30 input.onError = registerException;
31
32 input.onClosed = () => guardAsync(() {
33 expect(log, orderedEquals([
34 "Entry: filename1",
35 "Contents: contents 1",
36 "Closed: filename1",
37
38 "Entry: filename2",
39 "Contents: contents 2",
40 "Closed: filename2",
41
42 "Entry: filename3",
43 "Contents: contents 3",
44 "Closed: filename3",
45 ]));
46 }, asyncDone);
47 });
48
49 expect(future, completes);
50 });
51
52 test('reading a .tar.gz file with readAll', () {
53 var reader = new ArchiveReader();
54 reader.format.tar = true;
55 reader.filter.gzip = true;
56
57 var future = reader.openFilename("$dataPath/test-archive.tar.gz")
58 .then((input) => input.readAll())
59 .then((entries) {
60 entries = entries
61 .map((entry) => [entry.pathname, entry.contents.trim()])
62 .toList();
63 expect(entries[0], orderedEquals(["filename1", "contents 1"]));
64 expect(entries[1], orderedEquals(["filename2", "contents 2"]));
65 expect(entries[2], orderedEquals(["filename3", "contents 3"]));
66 });
67
68 expect(future, completes);
69 });
70
71 test('reading an in-memory .tar.gz', () {
72 var asyncDone = expectAsync0(() {});
73
74 var reader = new ArchiveReader();
75 reader.format.tar = true;
76 reader.filter.gzip = true;
77
78 var future = new File("$dataPath/test-archive.tar.gz").readAsBytes()
79 .then((bytes) => reader.openData(bytes))
80 .then((input) {
81 var log = <String>[];
82 input.onEntry = (entry) => guardAsync(() {
83 log.add("Entry: ${entry.pathname}");
84 var stream = new StringInputStream(entry.openInputStream());
85 stream.onData = () => log.add("Contents: ${stream.read().trim()}");
86 stream.onClosed = () => log.add("Closed: ${entry.pathname}");
87 });
88 input.onError = registerException;
89
90 input.onClosed = () => guardAsync(() {
91 expect(log, orderedEquals([
92 "Entry: filename1",
93 "Contents: contents 1",
94 "Closed: filename1",
95
96 "Entry: filename2",
97 "Contents: contents 2",
98 "Closed: filename2",
99
100 "Entry: filename3",
101 "Contents: contents 3",
102 "Closed: filename3",
103 ]));
104 }, asyncDone);
105 });
106
107 expect(future, completes);
108 });
109
110 test("closing entries before they're read", () {
111 var asyncDone = expectAsync0(() {});
112
113 var reader = new ArchiveReader();
114 reader.format.tar = true;
115 reader.filter.gzip = true;
116
117 var future = reader.openFilename("$dataPath/test-archive.tar.gz")
118 .then((input) {
119 var log = <String>[];
120 input.onEntry = (entry) => guardAsync(() {
121 log.add("Entry: ${entry.pathname}");
122 var underlyingStream = entry.openInputStream();
123 var stream = new StringInputStream(underlyingStream);
124 stream.onData = () => log.add("Contents: ${stream.read().trim()}");
125 stream.onClosed = () => log.add("Closed: ${entry.pathname}");
126 underlyingStream.close();
127 });
128 input.onError = registerException;
129
130 input.onClosed = () => guardAsync(() {
131 expect(log, orderedEquals([
132 "Entry: filename1",
133 "Closed: filename1",
134
135 "Entry: filename2",
136 "Closed: filename2",
137
138 "Entry: filename3",
139 "Closed: filename3",
140 ]));
141 }, asyncDone);
142 });
143
144 expect(future, completes);
145 });
146
147 test("closing an archive stream before it's finished", () {
148 var asyncDone = expectAsync0(() {});
149
150 var reader = new ArchiveReader();
151 reader.format.tar = true;
152 reader.filter.gzip = true;
153
154 var future = reader.openFilename("$dataPath/test-archive.tar.gz")
155 .then((input) {
156 var count = 0;
157
158 var log = <String>[];
159 input.onEntry = (entry) => guardAsync(() {
160 count += 1;
161
162 log.add("Entry: ${entry.pathname}");
163 var underlyingStream = entry.openInputStream();
164 var stream = new StringInputStream(underlyingStream);
165 stream.onData = () => log.add("Contents: ${stream.read().trim()}");
166 stream.onClosed = () => log.add("Closed: ${entry.pathname}");
167
168 if (count == 2) {
169 input.close();
170 expect(input.closed);
171 }
172 });
173 input.onError = registerException;
174
175 input.onClosed = () {
176 expect(log, orderedEquals([
177 "Entry: filename1",
178 "Contents: contents 1",
179 "Closed: filename1",
180
181 "Entry: filename2",
182 "Closed: filename2",
183 ]));
184 asyncDone();
185 };
186 });
187
188 expect(future, completes);
189 });
190
191 test("opening a non-existent archive", () {
192 var reader = new ArchiveReader();
193 reader.format.tar = true;
194 reader.filter.gzip = true;
195
196 expect(reader.openFilename("$dataPath/non-existent.tar.gz"),
197 throwsA((e) => e is ArchiveException));
198 });
199 }
200
OLDNEW
« no previous file with comments | « utils/tests/archive/data/test-archive.tar.gz ('k') | utils/tests/archive/utils_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698