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

Unified Diff: tests/standalone/src/io/FileTest.dart

Issue 10252020: test rename overhaul: step 12 - standalone (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/standalone/src/io/FileOutputStreamTest.dart ('k') | tests/standalone/src/io/HttpClientTest.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/src/io/FileTest.dart
diff --git a/tests/standalone/src/io/FileTest.dart b/tests/standalone/src/io/FileTest.dart
deleted file mode 100644
index 30c0396928c0fa68130576bb270569a15ccf787e..0000000000000000000000000000000000000000
--- a/tests/standalone/src/io/FileTest.dart
+++ /dev/null
@@ -1,1092 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-//
-// Dart test program for testing file I/O.
-
-#import("dart:io");
-#import("dart:isolate");
-
-class MyListOfOneElement implements List {
- int _value;
- MyListOfOneElement(this._value);
- int get length() => 1;
- operator [](int index) => _value;
-}
-
-class FileTest {
- static Directory tempDirectory;
- static int numLiveAsyncTests = 0;
-
- static void asyncTestStarted() { ++numLiveAsyncTests; }
- static void asyncTestDone(String name) {
- --numLiveAsyncTests;
- if (numLiveAsyncTests == 0) {
- deleteTempDirectory();
- }
- }
-
- static void createTempDirectory(Function doNext) {
- tempDirectory = new Directory('');
- tempDirectory.onError = (e) {
- Expect.fail("Failed creating temporary directory");
- };
- tempDirectory.createTemp(doNext);
- }
-
- static void deleteTempDirectory() {
- tempDirectory.deleteRecursivelySync();
- }
-
- // Test for file read functionality.
- static void testReadStream() {
- // Read a file and check part of it's contents.
- String filename = getFilename("bin/file_test.cc");
- File file = new File(filename);
- InputStream input = file.openInputStream();
- input.onData = () {
- List<int> buffer = new List<int>(42);
- int bytesRead = input.readInto(buffer, 0, 12);
- Expect.equals(12, bytesRead);
- bytesRead = input.readInto(buffer, 12, 30);
- input.close();
- Expect.equals(30, bytesRead);
- Expect.equals(47, buffer[0]); // represents '/' in the file.
- Expect.equals(47, buffer[1]); // represents '/' in the file.
- Expect.equals(32, buffer[2]); // represents ' ' in the file.
- Expect.equals(67, buffer[3]); // represents 'C' in the file.
- Expect.equals(111, buffer[4]); // represents 'o' in the file.
- Expect.equals(112, buffer[5]); // represents 'p' in the file.
- Expect.equals(121, buffer[6]); // represents 'y' in the file.
- Expect.equals(114, buffer[7]); // represents 'r' in the file.
- Expect.equals(105, buffer[8]); // represents 'i' in the file.
- Expect.equals(103, buffer[9]); // represents 'g' in the file.
- Expect.equals(104, buffer[10]); // represents 'h' in the file.
- Expect.equals(116, buffer[11]); // represents 't' in the file.
- };
- }
-
- // Test for file read and write functionality.
- static void testReadWriteStream() {
- asyncTestStarted();
-
- // Read a file.
- String inFilename = getFilename("tests/vm/data/fixed_length_file");
- File file;
- InputStream input;
- int bytesRead;
-
- // Test reading all using readInto.
- file = new File(inFilename);
- input = file.openInputStream();
- input.onData = () {
- List<int> buffer1 = new List<int>(42);
- bytesRead = input.readInto(buffer1, 0, 42);
- Expect.equals(42, bytesRead);
- Expect.isTrue(input.closed);
-
- // Test reading all using readInto and read.
- file = new File(inFilename);
- input = file.openInputStream();
- input.onData = () {
- bytesRead = input.readInto(buffer1, 0, 21);
- Expect.equals(21, bytesRead);
- buffer1 = input.read();
- Expect.equals(21, buffer1.length);
- Expect.isTrue(input.closed);
-
- // Test reading all using read and readInto.
- file = new File(inFilename);
- input = file.openInputStream();
- input.onData = () {
- buffer1 = input.read(21);
- Expect.equals(21, buffer1.length);
- bytesRead = input.readInto(buffer1, 0, 21);
- Expect.equals(21, bytesRead);
- Expect.isTrue(input.closed);
-
- // Test reading all using read.
- file = new File(inFilename);
- input = file.openInputStream();
- input.onData = () {
- buffer1 = input.read();
- Expect.equals(42, buffer1.length);
- Expect.isTrue(input.closed);
-
- // Write the contents of the file just read into another file.
- String outFilename = tempDirectory.path + "/out_read_write_stream";
- file = new File(outFilename);
- OutputStream output = file.openOutputStream();
- bool writeDone = output.writeFrom(buffer1, 0, 42);
- Expect.equals(false, writeDone);
- output.onNoPendingWrites = () {
- output.close();
- output.onClosed = () {
- // Now read the contents of the file just written.
- List<int> buffer2 = new List<int>(42);
- file = new File(outFilename);
- input = file.openInputStream();
- input.onData = () {
- bytesRead = input.readInto(buffer2, 0, 42);
- Expect.equals(42, bytesRead);
- // Now compare the two buffers to check if they are identical.
- for (int i = 0; i < buffer1.length; i++) {
- Expect.equals(buffer1[i], buffer2[i]);
- }
- };
- input.onClosed = () {
- // Delete the output file.
- file.deleteSync();
- Expect.isFalse(file.existsSync());
- asyncTestDone("testReadWriteStream");
- };
- };
- };
- };
- };
- };
- };
- }
-
- static void testRead() {
- // Read a file and check part of it's contents.
- String filename = getFilename("bin/file_test.cc");
- File file = new File(filename);
- file.onError = (e) {
- Expect.fail("No errors expected : $e");
- };
- file.open(FileMode.READ, (RandomAccessFile file) {
- List<int> buffer = new List<int>(10);
- file.readList(buffer, 0, 5, (bytes_read) {
- Expect.equals(5, bytes_read);
- file.readList(buffer, 5, 5, (bytes_read) {
- Expect.equals(5, bytes_read);
- Expect.equals(47, buffer[0]); // represents '/' in the file.
- Expect.equals(47, buffer[1]); // represents '/' in the file.
- Expect.equals(32, buffer[2]); // represents ' ' in the file.
- Expect.equals(67, buffer[3]); // represents 'C' in the file.
- Expect.equals(111, buffer[4]); // represents 'o' in the file.
- Expect.equals(112, buffer[5]); // represents 'p' in the file.
- Expect.equals(121, buffer[6]); // represents 'y' in the file.
- Expect.equals(114, buffer[7]); // represents 'r' in the file.
- Expect.equals(105, buffer[8]); // represents 'i' in the file.
- Expect.equals(103, buffer[9]); // represents 'g' in the file.
- file.close(() => null);
- });
- });
- });
- }
-
- static void testReadSync() {
- // Read a file and check part of it's contents.
- String filename = getFilename("bin/file_test.cc");
- RandomAccessFile file = (new File(filename)).openSync();
- List<int> buffer = new List<int>(42);
- int bytes_read = 0;
- bytes_read = file.readListSync(buffer, 0, 12);
- Expect.equals(12, bytes_read);
- bytes_read = file.readListSync(buffer, 12, 30);
- Expect.equals(30, bytes_read);
- Expect.equals(47, buffer[0]); // represents '/' in the file.
- Expect.equals(47, buffer[1]); // represents '/' in the file.
- Expect.equals(32, buffer[2]); // represents ' ' in the file.
- Expect.equals(67, buffer[3]); // represents 'C' in the file.
- Expect.equals(111, buffer[4]); // represents 'o' in the file.
- Expect.equals(112, buffer[5]); // represents 'p' in the file.
- Expect.equals(121, buffer[6]); // represents 'y' in the file.
- Expect.equals(114, buffer[7]); // represents 'r' in the file.
- Expect.equals(105, buffer[8]); // represents 'i' in the file.
- Expect.equals(103, buffer[9]); // represents 'g' in the file.
- Expect.equals(104, buffer[10]); // represents 'h' in the file.
- Expect.equals(116, buffer[11]); // represents 't' in the file.
- }
-
- // Test for file read and write functionality.
- static void testReadWrite() {
- // Read a file.
- String inFilename = getFilename("tests/vm/data/fixed_length_file");
- final File file = new File(inFilename);
- file.onError = (e) {
- Expect.fail("No errors expected : $e");
- };
- file.open(FileMode.READ, (RandomAccessFile openedFile) {
- openedFile.onError = (s) {
- Expect.fail("No errors expected : $s");
- };
- List<int> buffer1 = new List<int>(42);
- openedFile.readList(buffer1, 0, 42, (bytes_read) {
- Expect.equals(42, bytes_read);
- openedFile.close(() {
- // Write the contents of the file just read into another file.
- String outFilename = tempDirectory.path + "/out_read_write";
- final File file2 = new File(outFilename);
- file2.onError = (e) {
- Expect.fail("No errors expected : $e");
- };
- file2.create(() {
- file2.fullPath((s) {
- Expect.isTrue(new File(s).existsSync());
- if (s[0] != '/' && s[0] != '\\' && s[1] != ':') {
- Expect.fail("Not a full path");
- }
- file2.open(FileMode.WRITE, (RandomAccessFile openedFile2) {
- openedFile2.onError = (s) {
- Expect.fail("No errors expected : $s");
- };
- openedFile2.writeList(buffer1, 0, bytes_read);
- openedFile2.onNoPendingWrites = () {
- openedFile2.close(() {
- List<int> buffer2 = new List<int>(bytes_read);
- final File file3 = new File(outFilename);
- file3.onError = (e) {
- Expect.fail("No errors expected : $e");
- };
- file3.open(FileMode.READ, (RandomAccessFile openedFile3) {
- openedFile3.onError = (s) {
- Expect.fail("No errors expected : $s");
- };
- openedFile3.readList(buffer2, 0, 42, (bytes_read) {
- Expect.equals(42, bytes_read);
- openedFile3.close(() {
- // Now compare the two buffers to check if they
- // are identical.
- Expect.equals(buffer1.length, buffer2.length);
- for (int i = 0; i < buffer1.length; i++) {
- Expect.equals(buffer1[i], buffer2[i]);
- }
- // Delete the output file.
- final file4 = file3;
- file4.delete(() {
- file4.exists((exists) {
- Expect.isFalse(exists);
- asyncTestDone("testReadWrite");
- });
- });
- });
- });
- });
- });
- };
- });
- });
- });
- });
- });
- });
- asyncTestStarted();
- }
-
- static void testWriteAppend() {
- String content = "foobar";
- String filename = tempDirectory.path + "/write_append";
- File file = new File(filename);
- file.createSync();
- Expect.isTrue(new File(filename).existsSync());
- List<int> buffer = content.charCodes();
- RandomAccessFile openedFile = file.openSync(FileMode.WRITE);
- openedFile.writeListSync(buffer, 0, buffer.length);
- openedFile.closeSync();
- // Reopen the file in write mode to ensure that we overwrite the content.
- openedFile = (new File(filename)).openSync(FileMode.WRITE);
- openedFile.writeListSync(buffer, 0, buffer.length);
- Expect.equals(content.length, openedFile.lengthSync());
- openedFile.closeSync();
- // Open the file in append mode and ensure that we do not overwrite
- // the existing content.
- openedFile = (new File(filename)).openSync(FileMode.APPEND);
- openedFile.writeListSync(buffer, 0, buffer.length);
- Expect.equals(content.length * 2, openedFile.lengthSync());
- openedFile.closeSync();
- file.deleteSync();
- }
-
- static void testOutputStreamWriteAppend() {
- String content = "foobar";
- String filename = tempDirectory.path + "/outstream_write_append";
- File file = new File(filename);
- file.createSync();
- List<int> buffer = content.charCodes();
- OutputStream outStream = file.openOutputStream();
- outStream.write(buffer);
- outStream.onNoPendingWrites = () {
- outStream.close();
- outStream.onClosed = () {
- File file2 = new File(filename);
- OutputStream appendingOutput =
- file2.openOutputStream(FileMode.APPEND);
- appendingOutput.write(buffer);
- appendingOutput.onNoPendingWrites = () {
- appendingOutput.close();
- appendingOutput.onClosed = () {
- File file3 = new File(filename);
- file3.open(FileMode.READ, (RandomAccessFile openedFile) {
- openedFile.length((int length) {
- Expect.equals(content.length * 2, length);
- openedFile.close(() {
- file3.delete(() {
- asyncTestDone("testOutputStreamWriteAppend");
- });
- });
- });
- });
- };
- };
- };
- };
- asyncTestStarted();
- }
-
- // Test for file read and write functionality.
- static void testOutputStreamWriteString() {
- String content = "foobar";
- String filename = tempDirectory.path + "/outstream_write_string";
- File file = new File(filename);
- file.createSync();
- List<int> buffer = content.charCodes();
- OutputStream outStream = file.openOutputStream();
- outStream.writeString("abcdABCD");
- outStream.writeString("abcdABCD", Encoding.UTF_8);
- outStream.writeString("abcdABCD", Encoding.ISO_8859_1);
- outStream.writeString("abcdABCD", Encoding.ASCII);
- outStream.writeString("æøå", Encoding.UTF_8);
- outStream.onNoPendingWrites = () {
- outStream.close();
- outStream.onClosed = () {
- RandomAccessFile raf = file.openSync();
- Expect.equals(38, raf.lengthSync());
- };
- };
- asyncTestStarted();
- }
-
-
- static void testReadWriteSync() {
- // Read a file.
- String inFilename = getFilename("tests/vm/data/fixed_length_file");
- RandomAccessFile file = (new File(inFilename)).openSync();
- List<int> buffer1 = new List<int>(42);
- int bytes_read = 0;
- int bytes_written = 0;
- bytes_read = file.readListSync(buffer1, 0, 42);
- Expect.equals(42, bytes_read);
- file.closeSync();
- // Write the contents of the file just read into another file.
- String outFilename = tempDirectory.path + "/out_read_write_sync";
- File outFile = new File(outFilename);
- outFile.createSync();
- String path = outFile.fullPathSync();
- if (path[0] != '/' && path[0] != '\\' && path[1] != ':') {
- Expect.fail("Not a full path");
- }
- Expect.isTrue(new File(path).existsSync());
- RandomAccessFile openedFile = outFile.openSync(FileMode.WRITE);
- openedFile.writeListSync(buffer1, 0, bytes_read);
- openedFile.closeSync();
- // Now read the contents of the file just written.
- List<int> buffer2 = new List<int>(bytes_read);
- openedFile = (new File(outFilename)).openSync();
- bytes_read = openedFile.readListSync(buffer2, 0, 42);
- Expect.equals(42, bytes_read);
- openedFile.closeSync();
- // Now compare the two buffers to check if they are identical.
- Expect.equals(buffer1.length, buffer2.length);
- for (int i = 0; i < buffer1.length; i++) {
- Expect.equals(buffer1[i], buffer2[i]);
- }
- // Delete the output file.
- outFile.deleteSync();
- Expect.isFalse(outFile.existsSync());
- }
-
- static void testReadEmptyFileSync() {
- String fileName = tempDirectory.path + "/empty_file_sync";
- File file = new File(fileName);
- file.createSync();
- RandomAccessFile openedFile = file.openSync();
- Expect.equals(-1, openedFile.readByteSync());
- openedFile.closeSync();
- file.deleteSync();
- }
-
- static void testReadEmptyFile() {
- String fileName = tempDirectory.path + "/empty_file";
- File file = new File(fileName);
- file.onError = (e) {
- Expect.fail("No errors expected : $e");
- };
- asyncTestStarted();
- file.create(() {
- file.open(FileMode.READ, (RandomAccessFile openedFile) {
- openedFile.readByte((int byte) {
- Expect.equals(-1, byte);
- });
- openedFile.onError = (e) {
- Expect.isTrue(e is FileIOException);
- openedFile.close(() {
- file.delete(() {
- asyncTestDone("testReadEmptyFile");
- });
- });
- };
- });
- });
- }
-
- // Test for file write of different types of lists.
- static void testWriteVariousLists() {
- asyncTestStarted();
- final String fileName = "${tempDirectory.path}/testWriteVariousLists";
- final File file = new File(fileName);
- file.onError = (e) => Expect.fail("No errors expected : $e");
- file.create(() {
- file.open(FileMode.WRITE, (RandomAccessFile openedFile) {
- // Write bytes from 0 to 7.
- openedFile.writeList([0], 0, 1);
- openedFile.writeList(const [1], 0, 1);
- openedFile.writeList(new MyListOfOneElement(2), 0, 1);
- var x = 12345678901234567890123456789012345678901234567890;
- var y = 12345678901234567890123456789012345678901234567893;
- openedFile.writeList([y - x], 0, 1);
- openedFile.writeList([260], 0, 1); // 260 = 256 + 4 = 0x104.
- openedFile.writeList(const [261], 0, 1);
- openedFile.writeList(new MyListOfOneElement(262), 0, 1);
- x = 12345678901234567890123456789012345678901234567890;
- y = 12345678901234567890123456789012345678901234568153;
- openedFile.writeList([y - x], 0, 1);
-
- openedFile.onError = (e) => Expect.fail("No errors expected : $e");
- openedFile.onNoPendingWrites = () {
- openedFile.close(() {
- // Check the written bytes.
- final File file2 = new File(fileName);
- var openedFile2 = file2.openSync();
- var length = openedFile2.lengthSync();
- Expect.equals(8, length);
- List data = new List(length);
- openedFile2.readListSync(data, 0, length);
- for (var i = 0; i < data.length; i++) {
- Expect.equals(i, data[i]);
- }
- openedFile2.closeSync();
- file2.deleteSync();
- asyncTestDone("testWriteVariousLists");
- });
- };
- });
- });
- }
-
- static void testDirectory() {
- asyncTestStarted();
-
- // Port to verify that the test completes.
- var port = new ReceivePort();
- port.receive((message, replyTo) {
- port.close();
- Expect.equals(1, message);
- asyncTestDone("testDirectory");
- });
-
- var tempDir = tempDirectory.path;
- var file = new File("${tempDir}/testDirectory");
- var errors = 0;
- file.directory((d) => Expect.fail("non-existing file"));
- file.onError = (e) {
- file.onError = (e) => Expect.fail("no error expected");
- file.create(() {
- file.directory((Directory d) {
- d.onError = (s) => Expect.fail("no error expected");
- d.exists((exists) {
- Expect.isTrue(exists);
- Expect.isTrue(d.path.endsWith(tempDir));
- file.delete(() {
- var file_dir = new File(".");
- file_dir.directory((d) => Expect.fail("non-existing file"));
- file_dir.onError = (e) {
- var file_dir = new File(tempDir);
- file_dir.directory((d) => Expect.fail("non-existing file"));
- file_dir.onError = (e) => port.toSendPort().send(1);
- };
- });
- });
- });
- });
- };
- }
-
- static void testDirectorySync() {
- var tempDir = tempDirectory.path;
- var file = new File("${tempDir}/testDirectorySync");
- // Non-existing file should throw exception.
- Expect.throws(file.directorySync, (e) { return e is FileIOException; });
- file.createSync();
- // Check that the path of the returned directory is the temp directory.
- Directory d = file.directorySync();
- Expect.isTrue(d.existsSync());
- Expect.isTrue(d.path.endsWith(tempDir));
- file.deleteSync();
- // Directories should throw exception.
- var file_dir = new File(".");
- Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; });
- file_dir = new File(tempDir);
- Expect.throws(file_dir.directorySync, (e) { return e is FileIOException; });
- }
-
- // Test for file length functionality.
- static void testLength() {
- String filename = getFilename("tests/vm/data/fixed_length_file");
- File file = new File(filename);
- RandomAccessFile openedFile = file.openSync();
- openedFile.onError = (e) => Expect.fail("No errors expected");
- file.onError = (e) => Expect.fail("No errors expected");
- openedFile.length((length) {
- Expect.equals(42, length);
- openedFile.close(() => null);
- });
- file.length((length) {
- Expect.equals(42, length);
- });
- }
-
- static void testLengthSync() {
- String filename = getFilename("tests/vm/data/fixed_length_file");
- File file = new File(filename);
- RandomAccessFile openedFile = file.openSync();
- Expect.equals(42, file.lengthSync());
- Expect.equals(42, openedFile.lengthSync());
- openedFile.closeSync();
- }
-
- // Test for file position functionality.
- static void testPosition() {
- String filename = getFilename("tests/vm/data/fixed_length_file");
- RandomAccessFile input = (new File(filename)).openSync();
- input.onError = (e) => Expect.fail("No errors expected");
- input.position((position) {
- Expect.equals(0, position);
- List<int> buffer = new List<int>(100);
- input.readList(buffer, 0, 12, (bytes_read) {
- input.position((position) {
- Expect.equals(12, position);
- input.readList(buffer, 12, 6, (bytes_read) {
- input.position((position) {
- Expect.equals(18, position);
- input.setPosition(8, () {
- input.position((position) {
- Expect.equals(8, position);
- input.close(() => null);
- });
- });
- });
- });
- });
- });
- });
- }
-
- static void testPositionSync() {
- String filename = getFilename("tests/vm/data/fixed_length_file");
- RandomAccessFile input = (new File(filename)).openSync();
- Expect.equals(0, input.positionSync());
- List<int> buffer = new List<int>(100);
- input.readListSync(buffer, 0, 12);
- Expect.equals(12, input.positionSync());
- input.readListSync(buffer, 12, 6);
- Expect.equals(18, input.positionSync());
- input.setPositionSync(8);
- Expect.equals(8, input.positionSync());
- input.closeSync();
- }
-
- static void testTruncate() {
- File file = new File(tempDirectory.path + "/out_truncate");
- List buffer = const [65, 65, 65, 65, 65, 65, 65, 65, 65, 65];
- file.onError = (e) => Expect.fail("No errors expected: $e");
- file.open(FileMode.WRITE, (RandomAccessFile openedFile) {
- openedFile.writeList(buffer, 0, 10);
- openedFile.onNoPendingWrites = () {
- openedFile.length((length) {
- Expect.equals(10, length);
- openedFile.truncate(5, () {
- openedFile.length((length) {
- Expect.equals(5, length);
- openedFile.close(() {
- file.delete(() {
- file.exists((exists) {
- Expect.isFalse(exists);
- asyncTestDone("testTruncate");
- });
- });
- });
- });
- });
- });
- };
- });
- asyncTestStarted();
- }
-
- static void testTruncateSync() {
- File file = new File(tempDirectory.path + "/out_truncate_sync");
- List buffer = const [65, 65, 65, 65, 65, 65, 65, 65, 65, 65];
- RandomAccessFile openedFile = file.openSync(FileMode.WRITE);
- openedFile.writeListSync(buffer, 0, 10);
- Expect.equals(10, openedFile.lengthSync());
- openedFile.truncateSync(5);
- Expect.equals(5, openedFile.lengthSync());
- openedFile.closeSync();
- file.deleteSync();
- Expect.isFalse(file.existsSync());
- }
-
- // Tests exception handling after file was closed.
- static void testCloseException() {
- bool exceptionCaught = false;
- bool wrongExceptionCaught = false;
- File input = new File(tempDirectory.path + "/out_close_exception");
- RandomAccessFile openedFile = input.openSync(FileMode.WRITE);
- openedFile.closeSync();
- try {
- openedFile.readByteSync();
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- openedFile.writeByteSync(1);
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- openedFile.writeStringSync("Test");
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(100);
- openedFile.readListSync(buffer, 0, 10);
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(100);
- openedFile.writeListSync(buffer, 0, 10);
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- openedFile.positionSync();
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- openedFile.lengthSync();
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- openedFile.flushSync();
- } catch (FileIOException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- input.deleteSync();
- }
-
- // Tests stream exception handling after file was closed.
- static void testCloseExceptionStream() {
- asyncTestStarted();
- List<int> buffer = new List<int>(42);
- File file = new File(tempDirectory.path + "/out_close_exception_stream");
- file.createSync();
- InputStream input = file.openInputStream();
- input.onClosed = () {
- Expect.isTrue(input.closed);
- Expect.isNull(input.readInto(buffer, 0, 12));
- OutputStream output = file.openOutputStream();
- output.close();
- Expect.throws(() => output.writeFrom(buffer, 0, 12));
- output.onClosed = () {
- file.deleteSync();
- asyncTestDone("testCloseExceptionStream");
- };
- };
- }
-
- // Tests buffer out of bounds exception.
- static void testBufferOutOfBoundsException() {
- bool exceptionCaught = false;
- bool wrongExceptionCaught = false;
- File file = new File(tempDirectory.path + "/out_buffer_out_of_bounds");
- RandomAccessFile openedFile = file.openSync(FileMode.WRITE);
- try {
- List<int> buffer = new List<int>(10);
- openedFile.readListSync(buffer, 0, 12);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.readListSync(buffer, 6, 6);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.readListSync(buffer, -1, 1);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.readListSync(buffer, 0, -1);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.writeListSync(buffer, 0, 12);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.writeListSync(buffer, 6, 6);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.writeListSync(buffer, -1, 1);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- exceptionCaught = false;
- try {
- List<int> buffer = new List<int>(10);
- openedFile.writeListSync(buffer, 0, -1);
- } catch (IndexOutOfRangeException ex) {
- exceptionCaught = true;
- } catch (Exception ex) {
- wrongExceptionCaught = true;
- }
- Expect.equals(true, exceptionCaught);
- Expect.equals(true, !wrongExceptionCaught);
- openedFile.closeSync();
- file.deleteSync();
- }
-
- static void testOpenDirectoryAsFile() {
- var f = new File('.');
- f.open(FileMode.READ, (r) => Expect.fail('Directory opened as file'));
- f.onError = (e) => null;
- }
-
- static void testOpenDirectoryAsFileSync() {
- var f = new File('.');
- try {
- f.openSync();
- Expect.fail("Expected exception opening directory as file");
- } catch (var e) {
- Expect.isTrue(e is FileIOException);
- }
- }
-
- static void testReadAsBytes() {
- var port = new ReceivePort();
- port.receive((result, replyTo) {
- port.close();
- Expect.equals(42, result);
- });
- var name = getFilename("tests/vm/data/fixed_length_file");
- var f = new File(name);
- f.readAsBytes((bytes) {
- Expect.isTrue(new String.fromCharCodes(bytes).endsWith("42 bytes."));
- port.toSendPort().send(bytes.length);
- });
- f.onError = (e) => Expect.fail("No errors expected: $e");
- }
-
- static void testReadAsBytesSync() {
- var name = getFilename("tests/vm/data/fixed_length_file");
- var bytes = new File(name).readAsBytesSync();
- Expect.isTrue(new String.fromCharCodes(bytes).endsWith("42 bytes."));
- Expect.equals(bytes.length, 42);
- }
-
- static void testReadAsText() {
- var port = new ReceivePort();
- port.receive((result, replyTo) {
- port.close();
- Expect.equals(1, result);
- });
- var name = getFilename("tests/vm/data/fixed_length_file");
- var f = new File(name);
- f.readAsText(Encoding.UTF_8, (text) {
- Expect.isTrue(text.endsWith("42 bytes."));
- Expect.equals(42, text.length);
- var name = getDataFilename("tests/standalone/src/io/read_as_text.dat");
- var f = new File(name);
- f.onError = (e) => Expect.fail("No errors expected: $e");
- f.readAsText(Encoding.UTF_8, (text) {
- Expect.equals(6, text.length);
- var expected = [955, 120, 46, 32, 120, 10];
- Expect.listEquals(expected, text.charCodes());
- f.readAsText(Encoding.ISO_8859_1, (text) {
- Expect.equals(7, text.length);
- var expected = [206, 187, 120, 46, 32, 120, 10];
- Expect.listEquals(expected, text.charCodes());
- f.onError = (e) {
- port.toSendPort().send(1);
- };
- f.readAsText(Encoding.ASCII, (text) {
- Expect.fail("Non-ascii char should cause error");
- });
- });
- });
- });
- f.onError = (e) {
- Expect.fail("No errors expected: $e");
- };
- }
-
- static void testReadAsTextSync() {
- var name = getFilename("tests/vm/data/fixed_length_file");
- var text = new File(name).readAsTextSync();
- Expect.isTrue(text.endsWith("42 bytes."));
- Expect.equals(42, text.length);
- name = getDataFilename("tests/standalone/src/io/read_as_text.dat");
- text = new File(name).readAsTextSync();
- Expect.equals(6, text.length);
- var expected = [955, 120, 46, 32, 120, 10];
- Expect.listEquals(expected, text.charCodes());
- Expect.throws(() { new File(name).readAsTextSync(Encoding.ASCII); });
- text = new File(name).readAsTextSync(Encoding.ISO_8859_1);
- expected = [206, 187, 120, 46, 32, 120, 10];
- Expect.equals(7, text.length);
- Expect.listEquals(expected, text.charCodes());
- }
-
- static void testReadAsLines() {
- var port = new ReceivePort();
- port.receive((result, replyTo) {
- port.close();
- Expect.equals(42, result);
- });
- var name = getFilename("tests/vm/data/fixed_length_file");
- var f = new File(name);
- f.readAsLines(Encoding.UTF_8, (lines) {
- Expect.equals(1, lines.length);
- var line = lines[0];
- Expect.isTrue(line.endsWith("42 bytes."));
- port.toSendPort().send(line.length);
- });
- f.onError = (e) => Expect.fail("No errors expected: $e");
- }
-
- static void testReadAsLinesSync() {
- var name = getFilename("tests/vm/data/fixed_length_file");
- var lines = new File(name).readAsLinesSync();
- Expect.equals(1, lines.length);
- var line = lines[0];
- Expect.isTrue(line.endsWith("42 bytes."));
- Expect.equals(42, line.length);
- name = getDataFilename("tests/standalone/src/io/readline_test1.dat");
- lines = new File(name).readAsLinesSync();
- Expect.equals(10, lines.length);
- }
-
-
- static void testReadAsErrors() {
- var port = new ReceivePort();
- port.receive((message, _) {
- port.close();
- Expect.equals(1, message);
- });
- var f = new File('.');
- Expect.throws(f.readAsBytesSync, (e) => e is FileIOException);
- Expect.throws(f.readAsTextSync, (e) => e is FileIOException);
- Expect.throws(f.readAsLinesSync, (e) => e is FileIOException);
- f.readAsBytes((bytes) => Expect.fail("no bytes expected"));
- f.onError = (e) {
- f.readAsText(Encoding.UTF_8, (text) => Expect.fail("no text expected"));
- f.onError = (e) {
- f.readAsLines(Encoding.UTF_8,
- (lines) => Expect.fail("no lines expected"));
- f.onError = (e) => port.toSendPort().send(1);
- };
- };
- }
-
- // Test that opens the same file for writing then for appending to test
- // that the file is not truncated when opened for appending.
- static void testAppend() {
- var file = new File('${tempDirectory.path}/out_append');
- file.open(FileMode.WRITE, (openedFile) {
- openedFile.writeString("asdf");
- openedFile.onNoPendingWrites = () {
- openedFile.close(() {
- file.open(FileMode.APPEND, (openedFile) {
- openedFile.length((length) {
- Expect.equals(4, length);
- openedFile.writeString("asdf");
- openedFile.onNoPendingWrites = () {
- openedFile.length((length) {
- Expect.equals(8, length);
- openedFile.close(() {
- file.delete(() {
- file.exists((exists) {
- Expect.isFalse(exists);
- asyncTestDone("testAppend");
- });
- });
- });
- });
- };
- });
- });
- });
- };
- });
- asyncTestStarted();
- }
-
- static void testAppendSync() {
- var file = new File('${tempDirectory.path}/out_append_sync');
- var openedFile = file.openSync(FileMode.WRITE);
- openedFile.writeStringSync("asdf");
- Expect.equals(4, openedFile.lengthSync());
- openedFile.closeSync();
- openedFile = file.openSync(FileMode.WRITE);
- openedFile.setPositionSync(4);
- openedFile.writeStringSync("asdf");
- Expect.equals(8, openedFile.lengthSync());
- openedFile.closeSync();
- file.deleteSync();
- Expect.isFalse(file.existsSync());
- }
-
- // Helper method to be able to run the test from the runtime
- // directory, or the top directory.
- static String getFilename(String path) =>
- new File(path).existsSync() ? path : 'runtime/' + path;
-
- static String getDataFilename(String path) =>
- new File(path).existsSync() ? path : '../' + path;
-
- // Main test entrypoint.
- static testMain() {
- testRead();
- testReadSync();
- testReadStream();
- testLength();
- testLengthSync();
- testPosition();
- testPositionSync();
- testOpenDirectoryAsFile();
- testOpenDirectoryAsFileSync();
- testReadAsBytes();
- testReadAsBytesSync();
- testReadAsText();
- testReadAsTextSync();
- testReadAsLines();
- testReadAsLinesSync();
- testReadAsErrors();
-
- createTempDirectory(() {
- testReadWrite();
- testReadWriteSync();
- testReadWriteStream();
- testReadEmptyFileSync();
- testReadEmptyFile();
- testTruncate();
- testTruncateSync();
- testCloseException();
- testCloseExceptionStream();
- testBufferOutOfBoundsException();
- testAppend();
- testAppendSync();
- testWriteAppend();
- testOutputStreamWriteAppend();
- testOutputStreamWriteString();
- testWriteVariousLists();
- testDirectory();
- testDirectorySync();
- });
- }
-}
-
-main() {
- FileTest.testMain();
-}
« no previous file with comments | « tests/standalone/src/io/FileOutputStreamTest.dart ('k') | tests/standalone/src/io/HttpClientTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698