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

Side by Side Diff: tests/standalone/src/FileInvalidArgumentsTest.dart

Issue 8491014: Handling of wrong types of arguments in the File API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Minor tweaks Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/lib/string.dart ('k') | tests/standalone/standalone.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
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.
4
5 class FileTest {
6 static void testOpenInvalidArgs(name, [writable = false]) {
7 var file = new File(name);
8 try {
9 file.openSync();
10 Expect.fail('exception expected');
11 } catch (var e) {
12 Expect.isTrue(e is FileIOException);
13 Expect.isTrue(e.toString().contains('open file'));
14 }
Søren Gjesse 2011/11/07 12:48:26 Add an empty line to separate the sync and aync ca
Mads Ager (google) 2011/11/07 13:11:29 Done.
15 file.errorHandler = (s) {
16 Expect.isTrue(s.contains('open file'));
17 };
18 file.openHandler = () {
19 Expect.fail('non-string name open');
20 };
21 file.open();
22 }
23
24 static void testExistsInvalidArgs(name) {
25 var file = new File(name);
26 try {
27 file.existsSync();
28 Expect.fail('exception expected');
29 } catch (var e) {
30 Expect.isTrue(e is FileIOException);
31 Expect.isTrue(e.toString().contains('is not a string'));
32 }
33 file.errorHandler = (s) {
34 Expect.isTrue(s.contains('is not a string'));
35 };
36 file.existsHandler = (bool) {
37 Expect.fail('non-string name exists');
38 };
39 file.exists();
40 }
41
42 static void testCreateInvalidArgs(name) {
43 var file = new File(name);
44 try {
45 file.createSync();
46 Expect.fail('exception expected');
47 } catch (var e) {
48 Expect.isTrue(e is FileIOException);
49 Expect.isTrue(e.toString().contains('Cannot create file'));
50 }
51 file.errorHandler = (s) {
52 Expect.isTrue(s.contains('Cannot create file'));
53 };
54 file.createHandler = (created) {
55 Expect.fail('non-string name exists');
56 };
57 file.create();
58 }
59
60 static void testCloseNonOpened() {
61 var file = new File(0);
62 try {
63 file.closeSync();
64 Expect.fail('exception expected');
65 } catch (var e) {
66 Expect.isTrue(e is FileIOException);
67 Expect.isTrue(e.toString().contains('Cannot close file'));
68 }
69 file.errorHandler = (s) {
70 Expect.isTrue(s.contains('Cannot close file'));
71 };
72 file.closeHandler = () {
73 Expect.fail('close non-opened file');
74 };
75 file.close();
76 }
77
78 static void testReadListInvalidArgs(buffer, offset, length) {
79 String filename = getFilename("tests/vm/data/fixed_length_file");
80 var file = new File(filename);
81 file.openSync();
82 try {
83 file.readListSync(buffer, offset, length);
84 Expect.fail('exception expected');
85 } catch (var e) {
86 Expect.isTrue(e is FileIOException);
87 Expect.isTrue(e.toString().contains('Invalid arguments'));
88 }
89 var errors = 0;
90 file.errorHandler = (s) {
91 errors++;
92 Expect.isTrue(s.contains('Invalid arguments'));
93 };
94 file.readListHandler = (bytes) {
95 Expect.fail('read list invalid arguments');
96 };
97 file.readList(buffer, offset, length);
98 file.closeHandler = () {
99 Expect.equals(1, errors);
100 };
101 file.close();
102 }
103
104 static void testWriteByteInvalidArgs(value) {
105 String filename = getFilename("tests/vm/data/fixed_length_file");
106 var file = new File(filename + "_out");
107 file.openSync(true);
108 try {
109 file.writeByteSync(value);
110 Expect.fail('exception expected');
111 } catch (var e) {
112 Expect.isTrue(e is FileIOException);
113 Expect.isTrue(e.toString().contains('Invalid argument'));
114 }
115 var errors = 0;
116 file.errorHandler = (s) {
117 errors++;
118 Expect.isTrue(s.contains('Invalid argument'));
119 };
120 file.noPendingWriteHandler = (bytes) {
121 Expect.fail('write list invalid argument');
122 };
123 file.writeByte(value);
124 file.closeHandler = () {
125 Expect.equals(1, errors);
126 };
127 file.close();
128 }
129
130 static void testWriteListInvalidArgs(buffer, offset, bytes) {
131 String filename = getFilename("tests/vm/data/fixed_length_file");
132 var file = new File(filename + "_out");
133 file.openSync(true);
134 try {
135 file.writeListSync(buffer, offset, bytes);
136 Expect.fail('exception expected');
137 } catch (var e) {
138 Expect.isTrue(e is FileIOException);
139 Expect.isTrue(e.toString().contains('Invalid arguments'));
140 }
141 var errors = 0;
142 file.errorHandler = (s) {
143 errors++;
144 Expect.isTrue(s.contains('Invalid arguments'));
145 };
146 file.noPendingWriteHandler = (bytes) {
147 Expect.fail('write list invalid argument');
148 };
149 file.writeList(buffer, offset, bytes);
150 file.closeHandler = () {
151 Expect.equals(1, errors);
152 };
153 file.close();
154 }
155
156 static void testWriteStringInvalidArgs(string) {
157 String filename = getFilename("tests/vm/data/fixed_length_file");
158 var file = new File(filename + "_out");
159 file.openSync(true);
160 try {
161 file.writeString(string);
162 Expect.fail('exception expected');
163 } catch (var e) {
164 Expect.isTrue(e is FileIOException);
165 Expect.isTrue(e.toString().contains('writeString failed'));
166 }
167 var errors = 0;
168 file.errorHandler = (s) {
169 errors++;
170 Expect.isTrue(s.contains('writeString failed'));
171 };
172 file.noPendingWriteHandler = (bytes) {
173 Expect.fail('write string invalid argument');
174 };
175 file.writeString(string);
176 file.closeHandler = () {
177 Expect.equals(1, errors);
178 };
179 file.close();
180 }
181
182 static void testFullPathInvalidArgs(name) {
183 var file = new File(name);
184 try {
185 file.fullPathSync();
186 Expect.fail('exception expected');
187 } catch (var e) {
188 Expect.isTrue(e is FileIOException);
189 Expect.isTrue(e.toString().contains('fullPath failed'));
190 }
191 file.errorHandler = (s) {
192 Expect.isTrue(s.contains('fullPath failed'));
193 };
194 file.fullPathHandler = (path) {
195 Expect.fail('full path invalid argument');
196 };
197 file.fullPath();
198 }
199
200 static String getFilename(String path) =>
201 new File(path).existsSync() ? path : 'runtime/' + path;
202 }
203
204 main() {
205 FileTest.testOpenInvalidArgs(0);
206 FileTest.testOpenInvalidArgs('name', 0);
207 FileTest.testExistsInvalidArgs(0);
208 FileTest.testCreateInvalidArgs(0);
209 FileTest.testCloseNonOpened();
210 FileTest.testReadListInvalidArgs(12, 0, 1);
211 FileTest.testReadListInvalidArgs(new List(10), '0', 1);
212 FileTest.testReadListInvalidArgs(new List(10), 0, '1');
213 FileTest.testWriteByteInvalidArgs('asdf');
214 FileTest.testWriteListInvalidArgs(12, 0, 1);
215 FileTest.testWriteListInvalidArgs(new List(10), '0', 1);
216 FileTest.testWriteListInvalidArgs(new List(10), 0, '1');
217 FileTest.testFullPathInvalidArgs(12);
218 }
OLDNEW
« no previous file with comments | « runtime/lib/string.dart ('k') | tests/standalone/standalone.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698