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

Side by Side Diff: pkg/watcher/lib/src/stat.dart

Issue 94093007: Add stack chain support to pkg/watcher and pkg/http. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years 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 library watcher.stat; 5 library watcher.stat;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:stack_trace/stack_trace.dart';
11
10 /// A function that takes a file path and returns the last modified time for 12 /// A function that takes a file path and returns the last modified time for
11 /// the file at that path. 13 /// the file at that path.
12 typedef DateTime MockTimeCallback(String path); 14 typedef DateTime MockTimeCallback(String path);
13 15
14 MockTimeCallback _mockTimeCallback; 16 MockTimeCallback _mockTimeCallback;
15 17
16 /// Overrides the default behavior for accessing a file's modification time 18 /// Overrides the default behavior for accessing a file's modification time
17 /// with [callback]. 19 /// with [callback].
18 /// 20 ///
19 /// The OS file modification time has pretty rough granularity (like a few 21 /// The OS file modification time has pretty rough granularity (like a few
20 /// seconds) which can make for slow tests that rely on modtime. This lets you 22 /// seconds) which can make for slow tests that rely on modtime. This lets you
21 /// replace it with something you control. 23 /// replace it with something you control.
22 void mockGetModificationTime(MockTimeCallback callback) { 24 void mockGetModificationTime(MockTimeCallback callback) {
23 _mockTimeCallback = callback; 25 _mockTimeCallback = callback;
24 } 26 }
25 27
26 /// Gets the modification time for the file at [path]. 28 /// Gets the modification time for the file at [path].
27 Future<DateTime> getModificationTime(String path) { 29 Future<DateTime> getModificationTime(String path) {
28 if (_mockTimeCallback != null) { 30 if (_mockTimeCallback != null) {
29 return new Future.value(_mockTimeCallback(path)); 31 return new Future.value(_mockTimeCallback(path));
30 } 32 }
31 33
32 return FileStat.stat(path).then((stat) => stat.modified); 34 return Chain.track(FileStat.stat(path)).then((stat) => stat.modified);
33 } 35 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698