OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 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 | 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 // Dart test program for testing file I/O. | 5 // Dart test program for testing file I/O. |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:io'; | 8 import 'dart:io'; |
9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
10 | 10 |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 }); | 301 }); |
302 asyncTestStarted(); | 302 asyncTestStarted(); |
303 } | 303 } |
304 | 304 |
305 static void testWriteAppend() { | 305 static void testWriteAppend() { |
306 String content = "foobar"; | 306 String content = "foobar"; |
307 String filename = tempDirectory.path.concat("/write_append"); | 307 String filename = tempDirectory.path.concat("/write_append"); |
308 File file = new File(filename); | 308 File file = new File(filename); |
309 file.createSync(); | 309 file.createSync(); |
310 Expect.isTrue(new File(filename).existsSync()); | 310 Expect.isTrue(new File(filename).existsSync()); |
311 List<int> buffer = content.charCodes; | 311 List<int> buffer = content.codeUnits; |
312 RandomAccessFile openedFile = file.openSync(FileMode.WRITE); | 312 RandomAccessFile openedFile = file.openSync(FileMode.WRITE); |
313 openedFile.writeListSync(buffer, 0, buffer.length); | 313 openedFile.writeListSync(buffer, 0, buffer.length); |
314 openedFile.closeSync(); | 314 openedFile.closeSync(); |
315 // Reopen the file in write mode to ensure that we overwrite the content. | 315 // Reopen the file in write mode to ensure that we overwrite the content. |
316 openedFile = (new File(filename)).openSync(FileMode.WRITE); | 316 openedFile = (new File(filename)).openSync(FileMode.WRITE); |
317 openedFile.writeListSync(buffer, 0, buffer.length); | 317 openedFile.writeListSync(buffer, 0, buffer.length); |
318 Expect.equals(content.length, openedFile.lengthSync()); | 318 Expect.equals(content.length, openedFile.lengthSync()); |
319 openedFile.closeSync(); | 319 openedFile.closeSync(); |
320 // Open the file in append mode and ensure that we do not overwrite | 320 // Open the file in append mode and ensure that we do not overwrite |
321 // the existing content. | 321 // the existing content. |
322 openedFile = (new File(filename)).openSync(FileMode.APPEND); | 322 openedFile = (new File(filename)).openSync(FileMode.APPEND); |
323 openedFile.writeListSync(buffer, 0, buffer.length); | 323 openedFile.writeListSync(buffer, 0, buffer.length); |
324 Expect.equals(content.length * 2, openedFile.lengthSync()); | 324 Expect.equals(content.length * 2, openedFile.lengthSync()); |
325 openedFile.closeSync(); | 325 openedFile.closeSync(); |
326 file.deleteSync(); | 326 file.deleteSync(); |
327 } | 327 } |
328 | 328 |
329 static void testOutputStreamWriteAppend() { | 329 static void testOutputStreamWriteAppend() { |
330 String content = "foobar"; | 330 String content = "foobar"; |
331 String filename = tempDirectory.path.concat("/outstream_write_append"); | 331 String filename = tempDirectory.path.concat("/outstream_write_append"); |
332 File file = new File(filename); | 332 File file = new File(filename); |
333 file.createSync(); | 333 file.createSync(); |
334 List<int> buffer = content.charCodes; | 334 List<int> buffer = content.codeUnits; |
335 var output = file.openWrite(); | 335 var output = file.openWrite(); |
336 output.add(buffer); | 336 output.add(buffer); |
337 output.close(); | 337 output.close(); |
338 output.done.then((_) { | 338 output.done.then((_) { |
339 File file2 = new File(filename); | 339 File file2 = new File(filename); |
340 var appendingOutput = file2.openWrite(FileMode.APPEND); | 340 var appendingOutput = file2.openWrite(FileMode.APPEND); |
341 appendingOutput.add(buffer); | 341 appendingOutput.add(buffer); |
342 appendingOutput.close(); | 342 appendingOutput.close(); |
343 appendingOutput.done.then((_) { | 343 appendingOutput.done.then((_) { |
344 File file3 = new File(filename); | 344 File file3 = new File(filename); |
(...skipping 11 matching lines...) Expand all Loading... |
356 }); | 356 }); |
357 asyncTestStarted(); | 357 asyncTestStarted(); |
358 } | 358 } |
359 | 359 |
360 // Test for file read and write functionality. | 360 // Test for file read and write functionality. |
361 static void testOutputStreamWriteString() { | 361 static void testOutputStreamWriteString() { |
362 String content = "foobar"; | 362 String content = "foobar"; |
363 String filename = tempDirectory.path.concat("/outstream_write_string"); | 363 String filename = tempDirectory.path.concat("/outstream_write_string"); |
364 File file = new File(filename); | 364 File file = new File(filename); |
365 file.createSync(); | 365 file.createSync(); |
366 List<int> buffer = content.charCodes; | 366 List<int> buffer = content.codeUnits; |
367 var output = file.openWrite(); | 367 var output = file.openWrite(); |
368 output.addString("abcdABCD"); | 368 output.addString("abcdABCD"); |
369 output.addString("abcdABCD", Encoding.UTF_8); | 369 output.addString("abcdABCD", Encoding.UTF_8); |
370 output.addString("abcdABCD", Encoding.ISO_8859_1); | 370 output.addString("abcdABCD", Encoding.ISO_8859_1); |
371 output.addString("abcdABCD", Encoding.ASCII); | 371 output.addString("abcdABCD", Encoding.ASCII); |
372 output.addString("æøå", Encoding.UTF_8); | 372 output.addString("æøå", Encoding.UTF_8); |
373 output.close(); | 373 output.close(); |
374 output.done.then((_) { | 374 output.done.then((_) { |
375 RandomAccessFile raf = file.openSync(); | 375 RandomAccessFile raf = file.openSync(); |
376 Expect.equals(38, raf.lengthSync()); | 376 Expect.equals(38, raf.lengthSync()); |
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
933 var name = getFilename("tests/vm/data/fixed_length_file"); | 933 var name = getFilename("tests/vm/data/fixed_length_file"); |
934 var f = new File(name); | 934 var f = new File(name); |
935 f.readAsString(Encoding.UTF_8).then((text) { | 935 f.readAsString(Encoding.UTF_8).then((text) { |
936 Expect.isTrue(text.endsWith("42 bytes.")); | 936 Expect.isTrue(text.endsWith("42 bytes.")); |
937 Expect.equals(42, text.length); | 937 Expect.equals(42, text.length); |
938 var name = getDataFilename("tests/standalone/io/read_as_text.dat"); | 938 var name = getDataFilename("tests/standalone/io/read_as_text.dat"); |
939 var f = new File(name); | 939 var f = new File(name); |
940 f.readAsString(Encoding.UTF_8).then((text) { | 940 f.readAsString(Encoding.UTF_8).then((text) { |
941 Expect.equals(6, text.length); | 941 Expect.equals(6, text.length); |
942 var expected = [955, 120, 46, 32, 120, 10]; | 942 var expected = [955, 120, 46, 32, 120, 10]; |
943 Expect.listEquals(expected, text.charCodes); | 943 Expect.listEquals(expected, text.codeUnits); |
944 f.readAsString(Encoding.ISO_8859_1).then((text) { | 944 f.readAsString(Encoding.ISO_8859_1).then((text) { |
945 Expect.equals(7, text.length); | 945 Expect.equals(7, text.length); |
946 var expected = [206, 187, 120, 46, 32, 120, 10]; | 946 var expected = [206, 187, 120, 46, 32, 120, 10]; |
947 Expect.listEquals(expected, text.charCodes); | 947 Expect.listEquals(expected, text.codeUnits); |
948 var readAsStringFuture = f.readAsString(Encoding.ASCII); | 948 var readAsStringFuture = f.readAsString(Encoding.ASCII); |
949 readAsStringFuture.then((text) { | 949 readAsStringFuture.then((text) { |
950 Expect.fail("Non-ascii char should cause error"); | 950 Expect.fail("Non-ascii char should cause error"); |
951 }).catchError((e) { | 951 }).catchError((e) { |
952 port.toSendPort().send(1); | 952 port.toSendPort().send(1); |
953 }); | 953 }); |
954 }); | 954 }); |
955 }); | 955 }); |
956 }); | 956 }); |
957 } | 957 } |
(...skipping 14 matching lines...) Expand all Loading... |
972 | 972 |
973 static void testReadAsTextSync() { | 973 static void testReadAsTextSync() { |
974 var name = getFilename("tests/vm/data/fixed_length_file"); | 974 var name = getFilename("tests/vm/data/fixed_length_file"); |
975 var text = new File(name).readAsStringSync(); | 975 var text = new File(name).readAsStringSync(); |
976 Expect.isTrue(text.endsWith("42 bytes.")); | 976 Expect.isTrue(text.endsWith("42 bytes.")); |
977 Expect.equals(42, text.length); | 977 Expect.equals(42, text.length); |
978 name = getDataFilename("tests/standalone/io/read_as_text.dat"); | 978 name = getDataFilename("tests/standalone/io/read_as_text.dat"); |
979 text = new File(name).readAsStringSync(); | 979 text = new File(name).readAsStringSync(); |
980 Expect.equals(6, text.length); | 980 Expect.equals(6, text.length); |
981 var expected = [955, 120, 46, 32, 120, 10]; | 981 var expected = [955, 120, 46, 32, 120, 10]; |
982 Expect.listEquals(expected, text.charCodes); | 982 Expect.listEquals(expected, text.codeUnits); |
983 text = new File(name).readAsStringSync(Encoding.ASCII); | 983 text = new File(name).readAsStringSync(Encoding.ASCII); |
984 // Default replacement character is '?', char code 63. | 984 // Default replacement character is '?', char code 63. |
985 expected = [63, 63, 120, 46, 32, 120, 10]; | 985 expected = [63, 63, 120, 46, 32, 120, 10]; |
986 Expect.listEquals(expected, text.charCodes); | 986 Expect.listEquals(expected, text.codeUnits); |
987 text = new File(name).readAsStringSync(Encoding.ISO_8859_1); | 987 text = new File(name).readAsStringSync(Encoding.ISO_8859_1); |
988 expected = [206, 187, 120, 46, 32, 120, 10]; | 988 expected = [206, 187, 120, 46, 32, 120, 10]; |
989 Expect.equals(7, text.length); | 989 Expect.equals(7, text.length); |
990 Expect.listEquals(expected, text.charCodes); | 990 Expect.listEquals(expected, text.codeUnits); |
991 } | 991 } |
992 | 992 |
993 static void testReadAsTextSyncEmptyFile() { | 993 static void testReadAsTextSyncEmptyFile() { |
994 var name = getFilename("tests/vm/data/empty_file"); | 994 var name = getFilename("tests/vm/data/empty_file"); |
995 var text = new File(name).readAsStringSync(); | 995 var text = new File(name).readAsStringSync(); |
996 Expect.equals(0, text.length); | 996 Expect.equals(0, text.length); |
997 } | 997 } |
998 | 998 |
999 static void testReadAsLines() { | 999 static void testReadAsLines() { |
1000 var port = new ReceivePort(); | 1000 var port = new ReceivePort(); |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1221 testDirectorySync(); | 1221 testDirectorySync(); |
1222 testWriteStringUtf8(); | 1222 testWriteStringUtf8(); |
1223 testWriteStringUtf8Sync(); | 1223 testWriteStringUtf8Sync(); |
1224 }); | 1224 }); |
1225 } | 1225 } |
1226 } | 1226 } |
1227 | 1227 |
1228 main() { | 1228 main() { |
1229 FileTest.testMain(); | 1229 FileTest.testMain(); |
1230 } | 1230 } |
OLD | NEW |