Index: pkg/watcher/lib/src/stat.dart |
diff --git a/pkg/watcher/lib/src/stat.dart b/pkg/watcher/lib/src/stat.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..26d859f5b036c09d2cb61fd13f0cb31df4792ff8 |
--- /dev/null |
+++ b/pkg/watcher/lib/src/stat.dart |
@@ -0,0 +1,31 @@ |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library watcher.stat; |
+ |
+import 'dart:async'; |
+import 'dart:io'; |
+ |
+typedef DateTime MockTimeCallback(String path); |
nweiz
2013/07/11 00:25:01
Document this.
Bob Nystrom
2013/07/11 18:33:20
Done.
|
+ |
+MockTimeCallback _mockTimeCallback; |
+ |
+/// Overrided the default behavior for accessing a file's modification time with |
nweiz
2013/07/11 00:25:01
"Overrided" -> "Override"
Bob Nystrom
2013/07/11 18:33:20
"Overrides". Done.
|
+/// [callback]. |
+/// |
+/// The OS file modification time has pretty rough granularity (like a few |
+/// seconds) which can make for slow tests that rely on modtime. This lets you |
+/// replace it with something you control. |
+void mockGetModificationTime(MockTimeCallback callback) { |
+ _mockTimeCallback = callback; |
+} |
+ |
+/// Gets the modification time for the file at [path]. |
+Future<DateTime> getModificationTime(String path) { |
+ if (_mockTimeCallback != null) { |
+ return new Future.value(_mockTimeCallback(path)); |
+ } |
+ |
+ return FileStat.stat(path).then((stat) => stat.modified); |
+} |