Index: tests/standalone/io/file_input_stream_test.dart |
diff --git a/tests/standalone/io/file_input_stream_test.dart b/tests/standalone/io/file_input_stream_test.dart |
index 88615a664b701258deb53f3214099709ad4817d3..25fe3658d60d20b10d055ef2a9e339b2613b5ecb 100644 |
--- a/tests/standalone/io/file_input_stream_test.dart |
+++ b/tests/standalone/io/file_input_stream_test.dart |
@@ -22,9 +22,8 @@ void testStringLineSplitter() { |
// File contains "Hello Dart\nwassup!\n" |
File file = new File(fileName); |
int linesRead = 0; |
- var lineStream = file.openRead() |
- .transform(UTF8.decoder) |
- .transform(new LineSplitter()); |
+ var lineStream = |
+ file.openRead().transform(UTF8.decoder).transform(new LineSplitter()); |
lineStream.listen((line) { |
linesRead++; |
if (linesRead == 1) { |
@@ -37,22 +36,19 @@ void testStringLineSplitter() { |
}); |
} |
- |
void testOpenStreamAsync() { |
asyncStart(); |
String fileName = getFilename("readuntil_test.dat"); |
// File contains "Hello Dart\nwassup!\n" |
var expected = "Hello Dart\nwassup!\n".codeUnits; |
var byteCount = 0; |
- (new File(fileName)).openRead().listen( |
- (d) => byteCount += d.length, |
+ (new File(fileName)).openRead().listen((d) => byteCount += d.length, |
onDone: () { |
- Expect.equals(expected.length, byteCount); |
- asyncEnd(); |
- }); |
+ Expect.equals(expected.length, byteCount); |
+ asyncEnd(); |
+ }); |
} |
- |
// Create a file that is big enough that a file stream will |
// read it in multiple chunks. |
int writeLongFileSync(File file) { |
@@ -67,7 +63,6 @@ int writeLongFileSync(File file) { |
return length; |
} |
- |
void testInputStreamTruncate() { |
asyncStart(); |
var temp = Directory.systemTemp.createTempSync('file_input_stream_test'); |
@@ -78,27 +73,24 @@ void testInputStreamTruncate() { |
// without getting all data. |
var streamedBytes = 0; |
var subscription; |
- subscription = file.openRead().listen( |
- (d) { |
- if (streamedBytes == 0) { |
- subscription.pause(); |
- // Truncate the file by opening it for writing. |
- file.open(mode: FileMode.WRITE).then((opened) { |
- opened.close().then((_) { |
- Expect.equals(0, file.lengthSync()); |
- subscription.resume(); |
- }); |
- }); |
- } |
- streamedBytes += d.length; |
- }, |
- onDone: () { |
- Expect.isTrue(streamedBytes > 0 && streamedBytes <= originalLength); |
- temp.delete(recursive: true).then((_) => asyncEnd()); |
- }, |
- onError: (e) { |
- Expect.fail("Unexpected error"); |
+ subscription = file.openRead().listen((d) { |
+ if (streamedBytes == 0) { |
+ subscription.pause(); |
+ // Truncate the file by opening it for writing. |
+ file.open(mode: FileMode.WRITE).then((opened) { |
+ opened.close().then((_) { |
+ Expect.equals(0, file.lengthSync()); |
+ subscription.resume(); |
+ }); |
}); |
+ } |
+ streamedBytes += d.length; |
+ }, onDone: () { |
+ Expect.isTrue(streamedBytes > 0 && streamedBytes <= originalLength); |
+ temp.delete(recursive: true).then((_) => asyncEnd()); |
+ }, onError: (e) { |
+ Expect.fail("Unexpected error"); |
+ }); |
} |
void testInputStreamDelete() { |
@@ -111,36 +103,30 @@ void testInputStreamDelete() { |
// without getting all data. |
var streamedBytes = 0; |
var subscription; |
- subscription = file.openRead().listen( |
- (d) { |
- if (streamedBytes == 0) { |
- subscription.pause(); |
- // Delete the underlying file by opening it for writing. |
- file.delete() |
- .then((deleted) { |
- Expect.isFalse(deleted.existsSync()); |
- subscription.resume(); |
- }) |
- .catchError((e) { |
- // On Windows, you cannot delete a file that is open |
- // somewhere else. The stream has this file open |
- // and therefore we get an error on deletion on Windows. |
- Expect.equals('windows', Platform.operatingSystem); |
- subscription.resume(); |
- }); |
- } |
- streamedBytes += d.length; |
- }, |
- onDone: () { |
- Expect.equals(originalLength, streamedBytes); |
- temp.delete(recursive: true).then((_) => asyncEnd()); |
- }, |
- onError: (e) { |
- Expect.fail("Unexpected error"); |
+ subscription = file.openRead().listen((d) { |
+ if (streamedBytes == 0) { |
+ subscription.pause(); |
+ // Delete the underlying file by opening it for writing. |
+ file.delete().then((deleted) { |
+ Expect.isFalse(deleted.existsSync()); |
+ subscription.resume(); |
+ }).catchError((e) { |
+ // On Windows, you cannot delete a file that is open |
+ // somewhere else. The stream has this file open |
+ // and therefore we get an error on deletion on Windows. |
+ Expect.equals('windows', Platform.operatingSystem); |
+ subscription.resume(); |
}); |
+ } |
+ streamedBytes += d.length; |
+ }, onDone: () { |
+ Expect.equals(originalLength, streamedBytes); |
+ temp.delete(recursive: true).then((_) => asyncEnd()); |
+ }, onError: (e) { |
+ Expect.fail("Unexpected error"); |
+ }); |
} |
- |
void testInputStreamAppend() { |
asyncStart(); |
var temp = Directory.systemTemp.createTempSync('file_input_stream_test'); |
@@ -150,30 +136,26 @@ void testInputStreamAppend() { |
// underlying file and check that the stream gets all the data. |
var streamedBytes = 0; |
var subscription; |
- subscription = file.openRead().listen( |
- (d) { |
- if (streamedBytes == 0) { |
- subscription.pause(); |
- // Double the length of the underlying file. |
- file.readAsBytes().then((bytes) { |
- file.writeAsBytes(bytes, mode: FileMode.APPEND).then((_) { |
- Expect.equals(2 * originalLength, file.lengthSync()); |
- subscription.resume(); |
- }); |
- }); |
- } |
- streamedBytes += d.length; |
- }, |
- onDone: () { |
- Expect.equals(2 * originalLength, streamedBytes); |
- temp.delete(recursive: true).then((_) => asyncEnd()); |
- }, |
- onError: (e) { |
- Expect.fail("Unexpected error"); |
+ subscription = file.openRead().listen((d) { |
+ if (streamedBytes == 0) { |
+ subscription.pause(); |
+ // Double the length of the underlying file. |
+ file.readAsBytes().then((bytes) { |
+ file.writeAsBytes(bytes, mode: FileMode.APPEND).then((_) { |
+ Expect.equals(2 * originalLength, file.lengthSync()); |
+ subscription.resume(); |
+ }); |
}); |
+ } |
+ streamedBytes += d.length; |
+ }, onDone: () { |
+ Expect.equals(2 * originalLength, streamedBytes); |
+ temp.delete(recursive: true).then((_) => asyncEnd()); |
+ }, onError: (e) { |
+ Expect.fail("Unexpected error"); |
+ }); |
} |
- |
void testInputStreamOffset() { |
void test(int start, int end, int expectedBytes) { |
asyncStart(); |
@@ -182,18 +164,16 @@ void testInputStreamOffset() { |
var originalLength = writeLongFileSync(file); |
var streamedBytes = 0; |
if (expectedBytes < 0) expectedBytes = originalLength + expectedBytes; |
- file.openRead(start, end).listen( |
- (d) { |
- streamedBytes += d.length; |
- }, |
- onDone: () { |
- Expect.equals(expectedBytes, streamedBytes); |
- temp.delete(recursive: true).then((_) => asyncEnd()); |
- }, |
- onError: (e) { |
- Expect.fail("Unexpected error"); |
- }); |
+ file.openRead(start, end).listen((d) { |
+ streamedBytes += d.length; |
+ }, onDone: () { |
+ Expect.equals(expectedBytes, streamedBytes); |
+ temp.delete(recursive: true).then((_) => asyncEnd()); |
+ }, onError: (e) { |
+ Expect.fail("Unexpected error"); |
+ }); |
} |
+ |
test(10, 20, 10); |
test(10, 11, 1); |
test(10, 10, 0); |
@@ -204,7 +184,6 @@ void testInputStreamOffset() { |
test(20, null, -20); |
} |
- |
void testInputStreamBadOffset() { |
void test(int start, int end) { |
asyncStart(); |
@@ -213,48 +192,41 @@ void testInputStreamBadOffset() { |
var originalLength = writeLongFileSync(file); |
var streamedBytes = 0; |
bool error = false; |
- file.openRead(start, end).listen( |
- (d) { |
- streamedBytes += d.length; |
- }, |
- onDone: () { |
- Expect.isTrue(error); |
- temp.deleteSync(recursive: true); |
- asyncEnd(); |
- }, |
- onError: (e) { |
- error = true; |
- }); |
+ file.openRead(start, end).listen((d) { |
+ streamedBytes += d.length; |
+ }, onDone: () { |
+ Expect.isTrue(error); |
+ temp.deleteSync(recursive: true); |
+ asyncEnd(); |
+ }, onError: (e) { |
+ error = true; |
+ }); |
} |
+ |
test(-1, null); |
test(100, 99); |
test(null, -1); |
} |
- |
void testStringLineSplitterEnding(String name, int length) { |
String fileName = getFilename(name); |
// File contains 10 lines. |
File file = new File(fileName); |
Expect.equals(length, file.lengthSync()); |
- var lineStream = file.openRead() |
- .transform(UTF8.decoder) |
- .transform(new LineSplitter()); |
+ var lineStream = |
+ file.openRead().transform(UTF8.decoder).transform(new LineSplitter()); |
int lineCount = 0; |
- lineStream.listen( |
- (line) { |
- lineCount++; |
- Expect.isTrue(lineCount <= 10); |
- if (line[0] != "#") { |
- Expect.equals("Line $lineCount", line); |
- } |
- }, |
- onDone: () { |
- Expect.equals(10, lineCount); |
- }); |
+ lineStream.listen((line) { |
+ lineCount++; |
+ Expect.isTrue(lineCount <= 10); |
+ if (line[0] != "#") { |
+ Expect.equals("Line $lineCount", line); |
+ } |
+ }, onDone: () { |
+ Expect.equals(10, lineCount); |
+ }); |
} |
- |
main() { |
testStringLineSplitter(); |
testOpenStreamAsync(); |