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

Side by Side Diff: test/codegen/lib/html/fileapi_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
(Empty)
1 library fileapi;
2 import 'package:unittest/unittest.dart';
3 import 'package:unittest/html_individual_config.dart';
4 import 'dart:html';
5 import 'dart:async';
6
7 class FileAndDir {
8 FileEntry file;
9 DirectoryEntry dir;
10 FileAndDir(this.file, this.dir);
11 }
12
13 FileSystem fs;
14
15 main() {
16 useHtmlIndividualConfiguration();
17
18 group('supported', () {
19 test('supported', () {
20 expect(FileSystem.supported, true);
21 });
22 });
23
24 getFileSystem() {
25 return window.requestFileSystem(100)
26 .then((FileSystem fileSystem) {
27 fs = fileSystem;
28 });
29 }
30
31 group('unsupported_throws', () {
32 test('requestFileSystem', () {
33 var expectation = FileSystem.supported ? returnsNormally : throws;
34 expect(() {
35 window.requestFileSystem(100);
36 }, expectation);
37 });
38 });
39
40 group('getDirectory', () {
41 if (FileSystem.supported) {
42 test('getFileSystem', getFileSystem);
43
44 test('directoryDoesntExist', () {
45 return fs.root.getDirectory(
46 'directory2')
47 .catchError((error) {
48 expect(error.code, equals(FileError.NOT_FOUND_ERR));
49 }, test: (e) => e is FileError);
50 });
51
52 test('directoryCreate', () {
53 return fs.root.createDirectory(
54 'directory3')
55 .then((DirectoryEntry e) {
56 expect(e.name, equals('directory3'));
57 });
58 });
59 }
60 });
61
62 group('getFile', () {
63 if (FileSystem.supported) {
64 test('getFileSystem', getFileSystem);
65
66 test('fileDoesntExist', () {
67 return fs.root.getFile(
68 'file2')
69 .catchError((error) {
70 expect(error.code, equals(FileError.NOT_FOUND_ERR));
71 }, test: (e) => e is FileError);
72 });
73
74 test('fileCreate', () {
75 return fs.root.createFile(
76 'file4')
77 .then((FileEntry e) {
78 expect(e.name, equals('file4'));
79 expect(e.isFile, isTrue);
80 return e.getMetadata();
81 }).then((Metadata metadata) {
82 var changeTime = metadata.modificationTime;
83 // Upped because our Windows buildbots can sometimes be particularly
84 // slow.
85 expect(new DateTime.now().difference(changeTime).inMinutes,
86 lessThan(4));
87 expect(metadata.size, equals(0));
88 });
89 });
90 }
91 });
92
93 // Do the boilerplate to get several files and directories created to then
94 // test the functions that use those items.
95 Future doDirSetup(String testName) {
96 return fs.root.createFile(
97 'file_$testName')
98 .then((FileEntry file) {
99 return fs.root.createDirectory(
100 'dir_$testName')
101 .then((DirectoryEntry dir) {
102 return new Future.value(new FileAndDir(file, dir));
103 });
104 });
105 }
106
107 group('directoryReader', () {
108 if (FileSystem.supported) {
109 test('getFileSystem', getFileSystem);
110
111 test('readEntries', () {
112 return doDirSetup('readEntries')
113 .then((fileAndDir) {
114 var reader = fileAndDir.dir.createReader();
115 return reader.readEntries();
116 }).then((entries) {
117 expect(entries is List, true);
118 });
119 });
120 }
121 });
122
123 group('entry', () {
124 if (FileSystem.supported) {
125 test('getFileSystem', getFileSystem);
126
127 test('copyTo', () {
128 return doDirSetup('copyTo')
129 .then((fileAndDir) {
130 return fileAndDir.file.copyTo(fileAndDir.dir, name: 'copiedFile');
131 }).then((entry) {
132 expect(entry.isFile, true);
133 expect(entry.name, 'copiedFile');
134 });
135 });
136
137 test('getParent', () {
138 return doDirSetup('getParent')
139 .then((fileAndDir) {
140 return fileAndDir.file.getParent();
141 }).then((entry) {
142 expect(entry.name, '');
143 expect(entry.isFile, false);
144 });
145 });
146
147 test('moveTo', () {
148 return doDirSetup('moveTo')
149 .then((fileAndDir) {
150 return fileAndDir.file.moveTo(fileAndDir.dir, name: 'movedFile');
151 }).then((entry) {
152 expect(entry.name, 'movedFile');
153 expect(entry.fullPath, '/dir_moveTo/movedFile');
154 return fs.root.getFile('file4');
155 }).catchError((error) {
156 expect(error.code, equals(FileError.NOT_FOUND_ERR));
157 }, test: (e) => e is FileError);
158 });
159
160 test('remove', () {
161 return doDirSetup('remove')
162 .then((fileAndDir) {
163 return fileAndDir.file.remove().then((_) {});
164 });
165 });
166 }
167 });
168
169 group('fileEntry', () {
170 if (FileSystem.supported) {
171 test('getFileSystem', getFileSystem);
172
173 test('createWriter', () {
174 return doDirSetup('createWriter')
175 .then((fileAndDir) {
176 return fileAndDir.file.createWriter();
177 }).then((writer) {
178 expect(writer.position, 0);
179 expect(writer.readyState, FileWriter.INIT);
180 expect(writer.length, 0);
181 });
182 });
183
184 test('file', () {
185 return doDirSetup('file')
186 .then((fileAndDir) {
187 return fileAndDir.file.file()
188 .then((fileObj) {
189 expect(fileObj.name, fileAndDir.file.name);
190 expect(fileObj.relativePath, '');
191 expect(new DateTime.now().difference(
192 fileObj.lastModifiedDate).inSeconds, lessThan(60));
193 });
194 });
195 });
196 }
197 });
198 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698