| OLD | NEW |
| 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 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'dart:isolate'; | 8 import 'dart:isolate'; |
| 9 | 9 |
| 10 testWriteAsBytesSync(dir) { | 10 testWriteAsBytesSync(dir) { |
| 11 var f = new File('${dir.path}/bytes_sync.txt'); | 11 var f = new File('${dir.path}/bytes_sync.txt'); |
| 12 var data = [50,50,50]; | 12 var data = [50, 50, 50]; |
| 13 f.writeAsBytesSync(data); | 13 f.writeAsBytesSync(data); |
| 14 Expect.listEquals(data, f.readAsBytesSync()); | 14 Expect.listEquals(data, f.readAsBytesSync()); |
| 15 f.writeAsBytesSync(data, mode: FileMode.APPEND); | 15 f.writeAsBytesSync(data, mode: FileMode.APPEND, flush: true); |
| 16 var expected = [50, 50, 50, 50, 50, 50]; | 16 var expected = [50, 50, 50, 50, 50, 50]; |
| 17 Expect.listEquals(expected, f.readAsBytesSync()); | 17 Expect.listEquals(expected, f.readAsBytesSync()); |
| 18 } | 18 } |
| 19 | 19 |
| 20 testWriteAsStringSync(dir) { | 20 testWriteAsStringSync(dir) { |
| 21 var f = new File('${dir.path}/string_sync.txt'); | 21 var f = new File('${dir.path}/string_sync.txt'); |
| 22 var data = 'asdf'; | 22 var data = 'asdf'; |
| 23 f.writeAsStringSync(data); | 23 f.writeAsStringSync(data); |
| 24 Expect.equals(data, f.readAsStringSync()); | 24 Expect.equals(data, f.readAsStringSync()); |
| 25 f.writeAsStringSync(data, mode: FileMode.APPEND); | 25 f.writeAsStringSync(data, mode: FileMode.APPEND, flush: true); |
| 26 Expect.equals('$data$data', f.readAsStringSync()); | 26 Expect.equals('$data$data', f.readAsStringSync()); |
| 27 } | 27 } |
| 28 | 28 |
| 29 Future testWriteAsBytes(dir) { | 29 Future testWriteAsBytes(dir) { |
| 30 var completer = new Completer(); | 30 var completer = new Completer(); |
| 31 var f = new File('${dir.path}/bytes.txt'); | 31 var f = new File('${dir.path}/bytes.txt'); |
| 32 var data = [50,50,50]; | 32 var data = [50, 50, 50]; |
| 33 f.writeAsBytes(data).then((file){ | 33 f.writeAsBytes(data).then((file){ |
| 34 Expect.equals(f, file); | 34 Expect.equals(f, file); |
| 35 f.readAsBytes().then((bytes) { | 35 f.readAsBytes().then((bytes) { |
| 36 Expect.listEquals(data, bytes); | 36 Expect.listEquals(data, bytes); |
| 37 f.writeAsBytes(data, mode: FileMode.APPEND).then((file) { | 37 f.writeAsBytes(data, mode: FileMode.APPEND, flush: true).then((file) { |
| 38 Expect.equals(f, file); | 38 Expect.equals(f, file); |
| 39 f.readAsBytes().then((bytes) { | 39 f.readAsBytes().then((bytes) { |
| 40 var expected = [50, 50, 50, 50, 50, 50]; | 40 var expected = [50, 50, 50, 50, 50, 50]; |
| 41 Expect.listEquals(expected, bytes); | 41 Expect.listEquals(expected, bytes); |
| 42 completer.complete(true); | 42 completer.complete(true); |
| 43 }); | 43 }); |
| 44 }); | 44 }); |
| 45 }); | 45 }); |
| 46 }); | 46 }); |
| 47 return completer.future; | 47 return completer.future; |
| 48 } | 48 } |
| 49 | 49 |
| 50 Future testWriteAsString(dir) { | 50 Future testWriteAsString(dir) { |
| 51 var completer = new Completer(); | 51 var completer = new Completer(); |
| 52 var f = new File('${dir.path}/strings.txt'); | 52 var f = new File('${dir.path}/strings.txt'); |
| 53 var data = 'asdf'; | 53 var data = 'asdf'; |
| 54 f.writeAsString(data).then((file){ | 54 f.writeAsString(data).then((file){ |
| 55 Expect.equals(f, file); | 55 Expect.equals(f, file); |
| 56 f.readAsString().then((str) { | 56 f.readAsString().then((str) { |
| 57 Expect.equals(data, str); | 57 Expect.equals(data, str); |
| 58 f.writeAsString(data, mode: FileMode.APPEND).then((file) { | 58 f.writeAsString(data, mode: FileMode.APPEND, flush: true).then((file) { |
| 59 Expect.equals(f, file); | 59 Expect.equals(f, file); |
| 60 f.readAsString().then((str) { | 60 f.readAsString().then((str) { |
| 61 Expect.equals('$data$data', str); | 61 Expect.equals('$data$data', str); |
| 62 completer.complete(true); | 62 completer.complete(true); |
| 63 }); | 63 }); |
| 64 }); | 64 }); |
| 65 }); | 65 }); |
| 66 }); | 66 }); |
| 67 return completer.future; | 67 return completer.future; |
| 68 } | 68 } |
| 69 | 69 |
| 70 main() { | 70 main() { |
| 71 var port = new ReceivePort(); | 71 var port = new ReceivePort(); |
| 72 var tempDir = new Directory('').createTempSync(); | 72 var tempDir = new Directory('').createTempSync(); |
| 73 testWriteAsBytesSync(tempDir); | 73 testWriteAsBytesSync(tempDir); |
| 74 testWriteAsStringSync(tempDir); | 74 testWriteAsStringSync(tempDir); |
| 75 testWriteAsBytes(tempDir).then((_) { | 75 testWriteAsBytes(tempDir).then((_) { |
| 76 return testWriteAsString(tempDir); | 76 return testWriteAsString(tempDir); |
| 77 }).then((_) { | 77 }).then((_) { |
| 78 tempDir.deleteSync(recursive: true); | 78 tempDir.deleteSync(recursive: true); |
| 79 port.close(); | 79 port.close(); |
| 80 }); | 80 }); |
| 81 } | 81 } |
| OLD | NEW |