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

Unified Diff: mojo/public/dart/third_party/shelf_static/test/test_util.dart

Issue 1346773002: Stop running pub get at gclient sync time and fix build bugs (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: mojo/public/dart/third_party/shelf_static/test/test_util.dart
diff --git a/mojo/public/dart/third_party/shelf_static/test/test_util.dart b/mojo/public/dart/third_party/shelf_static/test/test_util.dart
new file mode 100644
index 0000000000000000000000000000000000000000..b96abce5bc79236e78dacc83927531fa8939acfc
--- /dev/null
+++ b/mojo/public/dart/third_party/shelf_static/test/test_util.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2015, 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 shelf_static.test_util;
+
+import 'dart:async';
+
+import 'package:path/path.dart' as p;
+import 'package:shelf/shelf.dart';
+import 'package:shelf_static/src/util.dart';
+import 'package:test/test.dart';
+
+final p.Context _ctx = p.url;
+
+/// Makes a simple GET request to [handler] and returns the result.
+Future<Response> makeRequest(Handler handler, String path,
+ {String handlerPath, Map<String, String> headers}) {
+ var rootedHandler = _rootHandler(handlerPath, handler);
+ return new Future.sync(() => rootedHandler(_fromPath(path, headers)));
+}
+
+Request _fromPath(String path, Map<String, String> headers) =>
+ new Request('GET', Uri.parse('http://localhost' + path), headers: headers);
+
+Handler _rootHandler(String path, Handler handler) {
+ if (path == null || path.isEmpty) {
+ return handler;
+ }
+
+ return (Request request) {
+ if (!_ctx.isWithin("/$path", request.requestedUri.path)) {
+ return new Response.notFound('not found');
+ }
+ assert(request.handlerPath == '/');
+
+ var relativeRequest = request.change(path: path);
+
+ return handler(relativeRequest);
+ };
+}
+
+Matcher atSameTimeToSecond(value) =>
+ new _SecondResolutionDateTimeMatcher(value);
+
+class _SecondResolutionDateTimeMatcher extends Matcher {
+ final DateTime _target;
+
+ _SecondResolutionDateTimeMatcher(DateTime target)
+ : this._target = toSecondResolution(target);
+
+ bool matches(item, Map matchState) {
+ if (item is! DateTime) return false;
+
+ return datesEqualToSecond(_target, item);
+ }
+
+ Description describe(Description descirption) => descirption.add(
+ 'Must be at the same moment as $_target with resolution '
+ 'to the second.');
+}
+
+bool datesEqualToSecond(DateTime d1, DateTime d2) {
+ return toSecondResolution(d1).isAtSameMomentAs(toSecondResolution(d2));
+}
« no previous file with comments | « mojo/public/dart/third_party/shelf_static/test/test_all.dart ('k') | mojo/public/dart/third_party/shelf_static/tool/travis.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698