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

Side by Side Diff: test/packages_handler_test.dart

Issue 2171743003: Add the package implementation. (Closed) Base URL: git@github.com:dart-lang/shelf_packages_handler.git@master
Patch Set: Code review changes Created 4 years, 5 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
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4
5 import 'dart:io';
6
7 import 'package:package_resolver/package_resolver.dart';
8 import 'package:path/path.dart' as p;
9 import 'package:shelf/shelf.dart';
10 import 'package:shelf_packages_handler/shelf_packages_handler.dart';
11 import 'package:test/test.dart';
12
13 void main() {
14 var dir;
15 setUp(() {
16 dir = Directory.systemTemp
17 .createTempSync("shelf_packages_handler_test")
18 .path;
19 new Directory(dir).createSync();
20 new Directory("$dir/foo").createSync();
21 new File("$dir/foo/foo.dart")
22 .writeAsStringSync("void main() => print('in foo');");
23 });
24
25 tearDown(() {
26 new Directory(dir).deleteSync(recursive: true);
27 });
28
29 group("packagesHandler", () {
30 test("defaults to the current method of package resolution", () async {
31 var handler = packagesHandler();
32 var request = new Request(
33 "GET",
34 Uri.parse(
35 "http://example.com/shelf_packages_handler/"
36 "shelf_packages_handler.dart"));
37 var response = await handler(request);
38 expect(response.statusCode, equals(200));
39 expect(await response.readAsString(),
40 contains("Handler packagesHandler"));
41 });
42
43 group("with a package root", () {
44 var resolver;
45 setUp(() => resolver = new PackageResolver.root(p.toUri(dir)));
46
47 test("looks up a real file", () async {
48 var handler = packagesHandler(resolver: resolver);
49 var request = new Request(
50 "GET", Uri.parse("http://example.com/foo/foo.dart"));
51 var response = await handler(request);
52 expect(response.statusCode, equals(200));
53 expect(await response.readAsString(), contains("in foo"));
54 });
55
56 test("404s for a nonexistent file", () async {
57 var handler = packagesHandler(resolver: resolver);
58 var request = new Request(
59 "GET", Uri.parse("http://example.com/foo/bar.dart"));
60 var response = await handler(request);
61 expect(response.statusCode, equals(404));
62 });
63 });
64
65 group("with a package config", () {
66 var resolver;
67 setUp(() {
68 resolver = new PackageResolver.config({"foo": p.toUri("$dir/foo")});
69 });
70
71 test("looks up a real file", () async {
72 var handler = packagesHandler(resolver: resolver);
73 var request = new Request(
74 "GET", Uri.parse("http://example.com/foo/foo.dart"));
75 var response = await handler(request);
76 expect(response.statusCode, equals(200));
77 expect(await response.readAsString(), contains("in foo"));
78 });
79
80 test("404s for a nonexistent package", () async {
81 var handler = packagesHandler(resolver: resolver);
82 var request = new Request(
83 "GET", Uri.parse("http://example.com/bar/foo.dart"));
84 var response = await handler(request);
85 expect(response.statusCode, equals(404));
86 });
87
88 test("404s for a nonexistent file", () async {
89 var handler = packagesHandler(resolver: resolver);
90 var request = new Request(
91 "GET", Uri.parse("http://example.com/foo/bar.dart"));
92 var response = await handler(request);
93 expect(response.statusCode, equals(404));
94 });
95 });
96 });
97
98 group("packagesDirHandler", () {
99 test("supports a directory at the root of the URL", () async {
100 var handler = packagesDirHandler();
101 var request = new Request(
102 "GET",
103 Uri.parse(
104 "http://example.com/packages/shelf_packages_handler/"
105 "shelf_packages_handler.dart"));
106 var response = await handler(request);
107 expect(response.statusCode, equals(200));
108 expect(await response.readAsString(),
109 contains("Handler packagesHandler"));
110 });
111
112 test("supports a directory deep in the URL", () async {
113 var handler = packagesDirHandler();
114 var request = new Request(
115 "GET",
116 Uri.parse(
117 "http://example.com/foo/bar/very/deep/packages/"
118 "shelf_packages_handler/shelf_packages_handler.dart"));
119 var response = await handler(request);
120 expect(response.statusCode, equals(200));
121 expect(await response.readAsString(),
122 contains("Handler packagesHandler"));
123 });
124
125 test("404s for a URL without a packages directory", () async {
126 var handler = packagesDirHandler();
127 var request = new Request(
128 "GET",
129 Uri.parse(
130 "http://example.com/shelf_packages_handler/"
131 "shelf_packages_handler.dart"));
132 var response = await handler(request);
133 expect(response.statusCode, equals(404));
134 });
135
136 test("404s for a non-existent file within a packages directory", () async {
137 var handler = packagesDirHandler();
138 var request = new Request(
139 "GET",
140 Uri.parse(
141 "http://example.com/packages/shelf_packages_handler/"
142 "non_existent.dart"));
143 var response = await handler(request);
144 expect(response.statusCode, equals(404));
145 });
146 });
147 }
OLDNEW
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698