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 |