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

Side by Side Diff: tests/standalone/io/file_system_watcher_test.dart

Issue 25471003: Modify tests to use Directory.systemTemp (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 import "dart:async"; 5 import "dart:async";
6 import "dart:io"; 6 import "dart:io";
7 7
8 import "package:async_helper/async_helper.dart"; 8 import "package:async_helper/async_helper.dart";
9 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 10
11 11
12 void testWatchCreateFile() { 12 void testWatchCreateFile() {
13 var dir = new Directory('').createTempSync(); 13 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
14 var file = new File(dir.path + '/file'); 14 var file = new File(dir.path + '/file');
15 15
16 var watcher = dir.watch(); 16 var watcher = dir.watch();
17 17
18 asyncStart(); 18 asyncStart();
19 var sub; 19 var sub;
20 sub = watcher.listen((event) { 20 sub = watcher.listen((event) {
21 if (event is FileSystemCreateEvent && 21 if (event is FileSystemCreateEvent &&
22 event.path.endsWith('file')) { 22 event.path.endsWith('file')) {
23 asyncEnd(); 23 asyncEnd();
24 sub.cancel(); 24 sub.cancel();
25 dir.deleteSync(recursive: true); 25 dir.deleteSync(recursive: true);
26 } 26 }
27 }, onError: (e) { 27 }, onError: (e) {
28 dir.deleteSync(recursive: true); 28 dir.deleteSync(recursive: true);
29 throw e; 29 throw e;
30 }); 30 });
31 31
32 runAsync(file.createSync); 32 runAsync(file.createSync);
33 } 33 }
34 34
35 35
36 void testWatchModifyFile() { 36 void testWatchModifyFile() {
37 var dir = new Directory('').createTempSync(); 37 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
38 var file = new File(dir.path + '/file'); 38 var file = new File(dir.path + '/file');
39 file.createSync(); 39 file.createSync();
40 40
41 var watcher = dir.watch(); 41 var watcher = dir.watch();
42 42
43 asyncStart(); 43 asyncStart();
44 var sub; 44 var sub;
45 sub = watcher.listen((event) { 45 sub = watcher.listen((event) {
46 if (event is FileSystemModifyEvent) { 46 if (event is FileSystemModifyEvent) {
47 Expect.isTrue(event.path.endsWith('file')); 47 Expect.isTrue(event.path.endsWith('file'));
48 sub.cancel(); 48 sub.cancel();
49 asyncEnd(); 49 asyncEnd();
50 dir.deleteSync(recursive: true); 50 dir.deleteSync(recursive: true);
51 } 51 }
52 }, onError: (e) { 52 }, onError: (e) {
53 dir.deleteSync(recursive: true); 53 dir.deleteSync(recursive: true);
54 throw e; 54 throw e;
55 }); 55 });
56 56
57 runAsync(() => file.writeAsStringSync('a')); 57 runAsync(() => file.writeAsStringSync('a'));
58 } 58 }
59 59
60 60
61 void testWatchMoveFile() { 61 void testWatchMoveFile() {
62 var dir = new Directory('').createTempSync(); 62 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
63 var file = new File(dir.path + '/file'); 63 var file = new File(dir.path + '/file');
64 file.createSync(); 64 file.createSync();
65 65
66 var watcher = dir.watch(); 66 var watcher = dir.watch();
67 67
68 asyncStart(); 68 asyncStart();
69 var sub; 69 var sub;
70 sub = watcher.listen((event) { 70 sub = watcher.listen((event) {
71 if (event is FileSystemMoveEvent) { 71 if (event is FileSystemMoveEvent) {
72 Expect.isTrue(event.path.endsWith('file')); 72 Expect.isTrue(event.path.endsWith('file'));
73 if (event.destination != null) { 73 if (event.destination != null) {
74 Expect.isTrue(event.destination.endsWith('file2')); 74 Expect.isTrue(event.destination.endsWith('file2'));
75 } 75 }
76 sub.cancel(); 76 sub.cancel();
77 asyncEnd(); 77 asyncEnd();
78 dir.deleteSync(recursive: true); 78 dir.deleteSync(recursive: true);
79 } 79 }
80 }, onError: (e) { 80 }, onError: (e) {
81 dir.deleteSync(recursive: true); 81 dir.deleteSync(recursive: true);
82 throw e; 82 throw e;
83 }); 83 });
84 84
85 runAsync(() => file.renameSync(dir.path + '/file2')); 85 runAsync(() => file.renameSync(dir.path + '/file2'));
86 } 86 }
87 87
88 88
89 void testWatchDeleteFile() { 89 void testWatchDeleteFile() {
90 var dir = new Directory('').createTempSync(); 90 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
91 var file = new File(dir.path + '/file'); 91 var file = new File(dir.path + '/file');
92 file.createSync(); 92 file.createSync();
93 93
94 var watcher = dir.watch(); 94 var watcher = dir.watch();
95 95
96 asyncStart(); 96 asyncStart();
97 var sub; 97 var sub;
98 sub = watcher.listen((event) { 98 sub = watcher.listen((event) {
99 if (event is FileSystemDeleteEvent) { 99 if (event is FileSystemDeleteEvent) {
100 Expect.isTrue(event.path.endsWith('file')); 100 Expect.isTrue(event.path.endsWith('file'));
101 sub.cancel(); 101 sub.cancel();
102 asyncEnd(); 102 asyncEnd();
103 dir.deleteSync(recursive: true); 103 dir.deleteSync(recursive: true);
104 } 104 }
105 }, onError: (e) { 105 }, onError: (e) {
106 dir.deleteSync(recursive: true); 106 dir.deleteSync(recursive: true);
107 throw e; 107 throw e;
108 }); 108 });
109 109
110 runAsync(file.deleteSync); 110 runAsync(file.deleteSync);
111 } 111 }
112 112
113 113
114 void testWatchOnlyModifyFile() { 114 void testWatchOnlyModifyFile() {
115 var dir = new Directory('').createTempSync(); 115 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
116 var file = new File(dir.path + '/file'); 116 var file = new File(dir.path + '/file');
117 117
118 var watcher = dir.watch(events: FileSystemEvent.MODIFY); 118 var watcher = dir.watch(events: FileSystemEvent.MODIFY);
119 119
120 asyncStart(); 120 asyncStart();
121 var sub; 121 var sub;
122 sub = watcher.listen((event) { 122 sub = watcher.listen((event) {
123 Expect.isTrue(event is FileSystemModifyEvent); 123 Expect.isTrue(event is FileSystemModifyEvent);
124 Expect.isTrue(event.path.endsWith('file')); 124 Expect.isTrue(event.path.endsWith('file'));
125 sub.cancel(); 125 sub.cancel();
126 asyncEnd(); 126 asyncEnd();
127 dir.deleteSync(recursive: true); 127 dir.deleteSync(recursive: true);
128 }, onError: (e) { 128 }, onError: (e) {
129 dir.deleteSync(recursive: true); 129 dir.deleteSync(recursive: true);
130 throw e; 130 throw e;
131 }); 131 });
132 132
133 runAsync(() { 133 runAsync(() {
134 file.createSync(); 134 file.createSync();
135 file.writeAsStringSync('a'); 135 file.writeAsStringSync('a');
136 }); 136 });
137 } 137 }
138 138
139 139
140 void testMultipleEvents() { 140 void testMultipleEvents() {
141 var dir = new Directory('').createTempSync(); 141 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
142 var file = new File(dir.path + '/file'); 142 var file = new File(dir.path + '/file');
143 var file2 = new File(dir.path + '/file2'); 143 var file2 = new File(dir.path + '/file2');
144 144
145 var watcher = dir.watch(); 145 var watcher = dir.watch();
146 146
147 asyncStart(); 147 asyncStart();
148 int state = 0; 148 int state = 0;
149 var sub; 149 var sub;
150 sub = watcher.listen((event) { 150 sub = watcher.listen((event) {
151 int newState = 0; 151 int newState = 0;
(...skipping 26 matching lines...) Expand all
178 runAsync(() { 178 runAsync(() {
179 file.createSync(); 179 file.createSync();
180 file.writeAsStringSync('a'); 180 file.writeAsStringSync('a');
181 file.renameSync(file2.path); 181 file.renameSync(file2.path);
182 file2.deleteSync(); 182 file2.deleteSync();
183 }); 183 });
184 } 184 }
185 185
186 186
187 void testWatchRecursive() { 187 void testWatchRecursive() {
188 var dir = new Directory('').createTempSync(); 188 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
189 if (Platform.isLinux) { 189 if (Platform.isLinux) {
190 Expect.throws(() => dir.watch(recursive: true)); 190 Expect.throws(() => dir.watch(recursive: true));
191 return; 191 return;
192 } 192 }
193 var dir2 = new Directory(dir.path + '/dir'); 193 var dir2 = new Directory(dir.path + '/dir');
194 dir2.createSync(); 194 dir2.createSync();
195 var file = new File(dir.path + '/dir/file'); 195 var file = new File(dir.path + '/dir/file');
196 196
197 var watcher = dir.watch(recursive: true); 197 var watcher = dir.watch(recursive: true);
198 198
199 asyncStart(); 199 asyncStart();
200 var sub; 200 var sub;
201 sub = watcher.listen((event) { 201 sub = watcher.listen((event) {
202 if (event.path.endsWith('file')) { 202 if (event.path.endsWith('file')) {
203 sub.cancel(); 203 sub.cancel();
204 asyncEnd(); 204 asyncEnd();
205 dir.deleteSync(recursive: true); 205 dir.deleteSync(recursive: true);
206 } 206 }
207 }, onError: (e) { 207 }, onError: (e) {
208 dir.deleteSync(recursive: true); 208 dir.deleteSync(recursive: true);
209 throw e; 209 throw e;
210 }); 210 });
211 211
212 runAsync(file.createSync()); 212 runAsync(file.createSync());
213 } 213 }
214 214
215 215
216 void testWatchNonRecursive() { 216 void testWatchNonRecursive() {
217 var dir = new Directory('').createTempSync(); 217 var dir = Directory.createSystemTempSync('dart_file_system_watcher');
218 var dir2 = new Directory(dir.path + '/dir'); 218 var dir2 = new Directory(dir.path + '/dir');
219 dir2.createSync(); 219 dir2.createSync();
220 var file = new File(dir.path + '/dir/file'); 220 var file = new File(dir.path + '/dir/file');
221 221
222 var watcher = dir.watch(recursive: false); 222 var watcher = dir.watch(recursive: false);
223 223
224 asyncStart(); 224 asyncStart();
225 var sub; 225 var sub;
226 sub = watcher.listen((event) { 226 sub = watcher.listen((event) {
227 if (event.path.endsWith('file')) { 227 if (event.path.endsWith('file')) {
(...skipping 17 matching lines...) Expand all
245 void main() { 245 void main() {
246 if (!FileSystemEntity.isWatchSupported) return; 246 if (!FileSystemEntity.isWatchSupported) return;
247 testWatchCreateFile(); 247 testWatchCreateFile();
248 testWatchModifyFile(); 248 testWatchModifyFile();
249 testWatchMoveFile(); 249 testWatchMoveFile();
250 testWatchDeleteFile(); 250 testWatchDeleteFile();
251 testWatchOnlyModifyFile(); 251 testWatchOnlyModifyFile();
252 testMultipleEvents(); 252 testMultipleEvents();
253 testWatchNonRecursive(); 253 testWatchNonRecursive();
254 } 254 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698