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

Side by Side Diff: tests/html/fileapi_test.dart

Issue 12380046: Future-ify all the html methods and add named parameters (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/xhr_cross_origin_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 library fileapi; 1 library fileapi;
2 import '../../pkg/unittest/lib/unittest.dart'; 2 import '../../pkg/unittest/lib/unittest.dart';
3 import '../../pkg/unittest/lib/html_individual_config.dart'; 3 import '../../pkg/unittest/lib/html_individual_config.dart';
4 import 'dart:html'; 4 import 'dart:html';
5 import 'dart:async';
5 6
6 void fail(message) { 7 class FileAndDir {
7 guardAsync(() { 8 FileEntry file;
8 expect(false, isTrue, reason: message); 9 DirectoryEntry dir;
9 }); 10 FileAndDir(this.file, this.dir);
10 } 11 }
11 12
12 FileSystem fs; 13 FileSystem fs;
13 14
14 main() { 15 main() {
15 useHtmlIndividualConfiguration(); 16 useHtmlIndividualConfiguration();
16 17
17 group('supported', () { 18 group('supported', () {
18 test('supported', () { 19 test('supported', () {
19 expect(FileSystem.supported, true); 20 expect(FileSystem.supported, true);
20 }); 21 });
21 }); 22 });
22 23
23 getFileSystem() { 24 getFileSystem() {
24 window.requestFileSystem(Window.TEMPORARY, 100, 25 return window.requestFileSystem(Window.TEMPORARY, 100)
25 expectAsync1((FileSystem fileSystem) { 26 .then((FileSystem fileSystem) {
26 fs = fileSystem; 27 fs = fileSystem;
27 }), 28 });
28 (e) {
29 fail('Got file error: ${e.code}');
30 });
31 } 29 }
32 30
33 group('unsupported_throws', () { 31 group('unsupported_throws', () {
34 test('requestFileSystem', () { 32 test('requestFileSystem', () {
35 var expectation = FileSystem.supported ? returnsNormally : throws; 33 var expectation = FileSystem.supported ? returnsNormally : throws;
36 expect(() { 34 expect(() {
37 window.requestFileSystem(Window.TEMPORARY, 100, (_) {}, (_) {}); 35 window.requestFileSystem(Window.TEMPORARY, 100);
38 }, expectation); 36 }, expectation);
39 }); 37 });
40 }); 38 });
41 39
42 group('getDirectory', () { 40 group('getDirectory', () {
43 if (FileSystem.supported) { 41 if (FileSystem.supported) {
44 test('getFileSystem', getFileSystem); 42 test('getFileSystem', getFileSystem);
45 43
46 test('directoryDoesntExist', () { 44 test('directoryDoesntExist', () {
47 fs.root.getDirectory( 45 return fs.root.getDirectory(
48 'directory2', 46 'directory2',
49 options: {}, 47 options: {})
50 successCallback: (e) { 48 .catchError((e) {
51 fail('Should not be reached'); 49 expect(e.error.code, equals(FileError.NOT_FOUND_ERR));
52 }, 50 }, test: (e) => e is FileError);
53 errorCallback: expectAsync1((FileError e) {
54 expect(e.code, equals(FileError.NOT_FOUND_ERR));
55 }));
56 }); 51 });
57 52
58 test('directoryCreate', () { 53 test('directoryCreate', () {
59 fs.root.getDirectory( 54 return fs.root.getDirectory(
60 'directory3', 55 'directory3',
61 options: {'create': true}, 56 options: {'create': true})
62 successCallback: expectAsync1((DirectoryEntry e) { 57 .then((DirectoryEntry e) {
63 expect(e.name, equals('directory3')); 58 expect(e.name, equals('directory3'));
64 }), 59 });
65 errorCallback: (e) {
66 fail('Got file error: ${e.code}');
67 });
68 }); 60 });
69 } 61 }
70 }); 62 });
71 63
72 group('getFile', () { 64 group('getFile', () {
73 if (FileSystem.supported) { 65 if (FileSystem.supported) {
74 test('getFileSystem', getFileSystem); 66 test('getFileSystem', getFileSystem);
75 67
76 test('fileDoesntExist', () { 68 test('fileDoesntExist', () {
77 fs.root.getFile( 69 return fs.root.getFile(
78 'file2', 70 'file2',
79 options: {}, 71 options: {})
80 successCallback: (e) { 72 .catchError((e) {
81 fail('Should not be reached'); 73 expect(e.error.code, equals(FileError.NOT_FOUND_ERR));
82 }, 74 }, test: (e) => e is FileError);
83 errorCallback: expectAsync1((FileError e) {
84 expect(e.code, equals(FileError.NOT_FOUND_ERR));
85 }));
86 }); 75 });
87 76
88 test('fileCreate', () { 77 test('fileCreate', () {
89 fs.root.getFile( 78 return fs.root.getFile(
90 'file4', 79 'file4',
91 options: {'create': true}, 80 options: {'create': true})
92 successCallback: expectAsync1((FileEntry e) { 81 .then((FileEntry e) {
93 expect(e.name, equals('file4')); 82 expect(e.name, equals('file4'));
94 expect(e.isFile, isTrue); 83 expect(e.isFile, isTrue);
95 84 return e.getMetadata();
96 e.getMetadata(expectAsync1((Metadata metadata) { 85 }).then((Metadata metadata) {
97 var changeTime = metadata.modificationTime; 86 var changeTime = metadata.modificationTime;
98 expect(new DateTime.now().difference(changeTime).inSeconds, 87 expect(new DateTime.now().difference(changeTime).inSeconds,
99 lessThan(60)); 88 lessThan(60));
100 })); 89 expect(metadata.size, equals(0));
101 }), 90 });
102 errorCallback: (e) {
103 fail('Got file error: ${e.code}');
104 });
105 }); 91 });
106 } 92 }
107 }); 93 });
94
95 // Do the boilerplate to get several files and directories created to then
96 // test the functions that use those items.
97 Future doDirSetup() {
98 return fs.root.getFile(
99 'file4',
100 options: {'create': true})
101 .then((FileEntry file) {
102 return fs.root.getDirectory(
103 'directory3',
104 options: {'create': true})
105 .then((DirectoryEntry dir) {
106 return new Future.immediate(new FileAndDir(file, dir));
107 });
108 });
109 }
110
111 group('directoryReader', () {
112 if (FileSystem.supported) {
113 test('getFileSystem', getFileSystem);
114
115 test('readEntries', () {
116 return doDirSetup()
117 .then((fileAndDir) {
118 var reader = fileAndDir.dir.createReader();
119 return reader.readEntries();
120 }).then((entries) {
121 expect(entries is List, true);
122 });
123 });
124 }
125 });
126
127 group('entry', () {
128 if (FileSystem.supported) {
129 test('getFileSystem', getFileSystem);
130
131 test('copyTo', () {
132 return doDirSetup()
133 .then((fileAndDir) {
134 return fileAndDir.file.copyTo(fileAndDir.dir, name: 'copiedFile');
135 }).then((entry) {
136 expect(entry.isFile, true);
137 expect(entry.name, 'copiedFile');
138 });
139 });
140
141 test('getParent', () {
142 return doDirSetup()
143 .then((fileAndDir) {
144 return fileAndDir.file.getParent();
145 }).then((entry) {
146 expect(entry.name, '');
147 expect(entry.isFile, false);
148 });
149 });
150
151 test('moveTo', () {
152 return doDirSetup()
153 .then((fileAndDir) {
154 return fileAndDir.file.moveTo(fileAndDir.dir, name: 'movedFile');
155 }).then((entry) {
156 expect(entry.name, 'movedFile');
157 expect(entry.fullPath, '/directory3/movedFile');
158 return fs.root.getFile('file4', options: {'create': false});
159 }).catchError((e) {
160 expect(e.error.code, equals(FileError.NOT_FOUND_ERR));
161 }, test: (e) => e is FileError);
162 });
163
164 test('remove', () {
165 return doDirSetup()
166 .then((fileAndDir) {
167 return fileAndDir.file.remove().then((_) {});
168 });
169 });
170 }
171 });
172
173 group('fileEntry', () {
174 if (FileSystem.supported) {
175 test('getFileSystem', getFileSystem);
176
177 test('createWriter', () {
178 return doDirSetup()
179 .then((fileAndDir) {
180 return fileAndDir.file.createWriter();
181 }).then((writer) {
182 expect(writer.position, 0);
183 expect(writer.readyState, FileWriter.INIT);
184 expect(writer.length, 0);
185 });
186 });
187
188 test('file', () {
189 return doDirSetup()
190 .then((fileAndDir) {
191 return fileAndDir.file.file()
192 .then((fileObj) {
193 expect(fileObj.name, fileAndDir.file.name);
194 expect(fileObj.relativePath, '');
195 expect(new DateTime.now().difference(
196 fileObj.lastModifiedDate).inSeconds, lessThan(60));
197 });
198 });
199 });
200 }
201 });
108 } 202 }
OLDNEW
« no previous file with comments | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/xhr_cross_origin_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698