| Index: pkg/http_server/test/virtual_directory_test.dart
|
| diff --git a/pkg/http_server/test/virtual_directory_test.dart b/pkg/http_server/test/virtual_directory_test.dart
|
| index 2e7b6157c77d7c9db0d858c923a805ec6549958c..a0e9a0e877993dd8bd13cbdde11ddc712e38fda2 100644
|
| --- a/pkg/http_server/test/virtual_directory_test.dart
|
| +++ b/pkg/http_server/test/virtual_directory_test.dart
|
| @@ -11,32 +11,13 @@ import "package:unittest/unittest.dart";
|
|
|
| import 'utils.dart';
|
|
|
| -void _testVirDir(String name, dynamic func(HttpServer server, Directory dir)) {
|
| - test(name, () {
|
| - HttpServer server;
|
| - Directory dir;
|
| -
|
| - return HttpServer.bind('localhost', 0)
|
| - .then((value) {
|
| - server = value;
|
| - dir = Directory.systemTemp.createTempSync('http_server_virtual_');
|
| - return func(server, dir);
|
| - })
|
| - .whenComplete(() {
|
| - return Future.wait([server.close(), dir.delete(recursive: true)]);
|
| - });
|
| - });
|
| -}
|
| -
|
| void _testEncoding(name, expected, [bool create = true]) {
|
| - _testVirDir('encode-$name', (server, dir) {
|
| + testVirtualDir('encode-$name', (dir) {
|
| if (create) new File('${dir.path}/$name').createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/$name')
|
| + return getStatusCodeForVirtDir(virDir, '/$name')
|
| .then((result) {
|
| expect(result, expected);
|
| });
|
| @@ -45,23 +26,20 @@ void _testEncoding(name, expected, [bool create = true]) {
|
|
|
| void main() {
|
| group('serve-root', () {
|
| - _testVirDir('dir-exists', (server, dir) {
|
| + testVirtualDir('dir-exists', (dir) {
|
|
|
| var virDir = new VirtualDirectory(dir.path);
|
| - virDir.serve(server);
|
|
|
| - return getStatusCode(server.port, '/')
|
| + return getStatusCodeForVirtDir(virDir, '/')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| });
|
|
|
| - _testVirDir('dir-not-exists', (server, dir) {
|
| + testVirtualDir('dir-not-exists', (dir) {
|
| var virDir = new VirtualDirectory(pathos.join(dir.path + 'foo'));
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/')
|
| + return getStatusCodeForVirtDir(virDir, '/')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -70,52 +48,42 @@ void main() {
|
|
|
| group('serve-file', () {
|
| group('top-level', () {
|
| - _testVirDir('file-exists', (server, dir) {
|
| + testVirtualDir('file-exists', (dir) {
|
| var file = new File('${dir.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| -
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/file')
|
| + return getStatusCodeForVirtDir(virDir, '/file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| - _testVirDir('file-not-exists', (server, dir) {
|
| + testVirtualDir('file-not-exists', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/file')
|
| - .then((result) {
|
| - expect(result, HttpStatus.NOT_FOUND);
|
| - });
|
| + return getStatusCodeForVirtDir(virDir, '/file')
|
| + .then((result) {
|
| + expect(result, HttpStatus.NOT_FOUND);
|
| + });
|
| });
|
| });
|
|
|
| group('in-dir', () {
|
| - _testVirDir('file-exists', (server, dir) {
|
| + testVirtualDir('file-exists', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir')..createSync();
|
| var file = new File('${dir2.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| -
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir/file')
|
| + return getStatusCodeForVirtDir(virDir, '/dir/file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| - _testVirDir('file-not-exists', (server, dir) {
|
| + testVirtualDir('file-not-exists', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir')..createSync();
|
| var file = new File('${dir.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir/file')
|
| + return getStatusCodeForVirtDir(virDir, '/dir/file')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -125,68 +93,60 @@ void main() {
|
|
|
| group('serve-dir', () {
|
| group('top-level', () {
|
| - _testVirDir('simple', (server, dir) {
|
| + testVirtualDir('simple', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, contains('Index of /'));
|
| });
|
| });
|
|
|
| - _testVirDir('files', (server, dir) {
|
| + testVirtualDir('files', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| for (int i = 0; i < 10; i++) {
|
| new File('${dir.path}/$i').createSync();
|
| }
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, contains('Index of /'));
|
| });
|
| });
|
|
|
| - _testVirDir('dirs', (server, dir) {
|
| + testVirtualDir('dirs', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| for (int i = 0; i < 10; i++) {
|
| new Directory('${dir.path}/$i').createSync();
|
| }
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, contains('Index of /'));
|
| });
|
| });
|
|
|
| if (!Platform.isWindows) {
|
| - _testVirDir('recursive-link', (server, dir) {
|
| + testVirtualDir('recursive-link', (dir) {
|
| var link = new Link('${dir.path}/recursive')..createSync('.');
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| return Future.wait([
|
| - getAsString(server.port, '/').then(
|
| + getAsString(virDir, '/').then(
|
| (s) => s.contains('recursive/')),
|
| - getAsString(server.port, '/').then(
|
| + getAsString(virDir, '/').then(
|
| (s) => !s.contains('../')),
|
| - getAsString(server.port, '/').then(
|
| + getAsString(virDir, '/').then(
|
| (s) => s.contains('Index of /')),
|
| - getAsString(server.port, '/recursive').then(
|
| + getAsString(virDir, '/recursive').then(
|
| (s) => s.contains('recursive/')),
|
| - getAsString(server.port, '/recursive').then(
|
| + getAsString(virDir, '/recursive').then(
|
| (s) => s.contains('../')),
|
| - getAsString(server.port, '/recursive').then(
|
| + getAsString(virDir, '/recursive').then(
|
| (s) => s.contains('Index of /recursive'))])
|
| .then((result) {
|
| expect(result, equals([true, true, true, true, true, true]));
|
| @@ -196,7 +156,7 @@ void main() {
|
| });
|
|
|
| group('custom', () {
|
| - _testVirDir('simple', (server, dir) {
|
| + testVirtualDir('simple', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
| virDir.directoryHandler = (dir2, request) {
|
| @@ -206,31 +166,29 @@ void main() {
|
| request.response.close();
|
| };
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, 'My handler /');
|
| });
|
| });
|
|
|
| - _testVirDir('index-1', (server, dir) {
|
| + testVirtualDir('index-1', (dir) {
|
| new File('${dir.path}/index.html').writeAsStringSync('index file');
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
| virDir.directoryHandler = (dir2, request) {
|
| // Redirect directory-requests to index.html files.
|
| var indexUri = new Uri.file(dir2.path).resolve('index.html');
|
| - virDir.serveFile(new File(indexUri.toFilePath()), request);
|
| + return virDir.serveFile(new File(indexUri.toFilePath()), request);
|
| };
|
| - virDir.serve(server);
|
| - return getAsString(server.port, '/')
|
| +
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, 'index file');
|
| });
|
| });
|
|
|
| - _testVirDir('index-2', (server, dir) {
|
| + testVirtualDir('index-2', (dir) {
|
| new File('${dir.path}/dir/index.html')
|
| ..createSync(recursive: true)
|
| ..writeAsStringSync('index file');
|
| @@ -239,10 +197,10 @@ void main() {
|
| virDir.directoryHandler = (dir2, request) {
|
| // Redirect directory-requests to index.html files.
|
| var indexUri = new Uri.file(dir2.path).resolve('index.html');
|
| - virDir.serveFile(new File(indexUri.toFilePath()), request);
|
| + return virDir.serveFile(new File(indexUri.toFilePath()), request);
|
| };
|
| - virDir.serve(server);
|
| - return getAsString(server.port, '/dir')
|
| +
|
| + return getAsString(virDir, '/dir')
|
| .then((result) {
|
| expect(result, 'index file');
|
| });
|
| @@ -253,57 +211,46 @@ void main() {
|
| group('links', () {
|
| if (!Platform.isWindows) {
|
| group('follow-links', () {
|
| - _testVirDir('dir-link', (server, dir) {
|
| + testVirtualDir('dir-link', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir2')..createSync();
|
| var link = new Link('${dir.path}/dir3')..createSync('dir2');
|
| var file = new File('${dir2.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.followLinks = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir3/file')
|
| + return getStatusCodeForVirtDir(virDir, '/dir3/file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| - _testVirDir('root-link', (server, dir) {
|
| + testVirtualDir('root-link', (dir) {
|
| var link = new Link('${dir.path}/dir3')..createSync('.');
|
| var file = new File('${dir.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.followLinks = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir3/file')
|
| + return getStatusCodeForVirtDir(virDir, '/dir3/file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| group('bad-links', () {
|
| - _testVirDir('absolute-link', (server, dir) {
|
| + testVirtualDir('absolute-link', (dir) {
|
| var file = new File('${dir.path}/file')..createSync();
|
| var link = new Link('${dir.path}/file2')
|
| ..createSync('${dir.path}/file');
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.followLinks = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return new HttpClient().get('localhost',
|
| - server.port,
|
| - '/file2')
|
| - .then((request) => request.close())
|
| - .then((response) => response.drain().then(
|
| - (_) => response.statusCode))
|
| + return getStatusCodeForVirtDir(virDir, '/file2')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| });
|
|
|
| - _testVirDir('relative-parent-link', (server, dir) {
|
| + testVirtualDir('relative-parent-link', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir')..createSync();
|
| var file = new File('${dir.path}/file')..createSync();
|
| var link = new Link('${dir2.path}/file')
|
| @@ -311,14 +258,7 @@ void main() {
|
| var virDir = new VirtualDirectory(dir2.path);
|
| virDir.followLinks = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return new HttpClient().get('localhost',
|
| - server.port,
|
| - '/dir3/file')
|
| - .then((request) => request.close())
|
| - .then((response) => response.drain().then(
|
| - (_) => response.statusCode))
|
| + return getStatusCodeForVirtDir(virDir, '/dir3/file')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -327,16 +267,14 @@ void main() {
|
| });
|
|
|
| group('not-follow-links', () {
|
| - _testVirDir('dir-link', (server, dir) {
|
| + testVirtualDir('dir-link', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir2')..createSync();
|
| var link = new Link('${dir.path}/dir3')..createSync('dir2');
|
| var file = new File('${dir2.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.followLinks = false;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir3/file')
|
| + return getStatusCodeForVirtDir(virDir, '/dir3/file')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -345,7 +283,7 @@ void main() {
|
|
|
| group('follow-links', () {
|
| group('no-root-jail', () {
|
| - _testVirDir('absolute-link', (server, dir) {
|
| + testVirtualDir('absolute-link', (dir) {
|
| var file = new File('${dir.path}/file')..createSync();
|
| var link = new Link('${dir.path}/file2')
|
| ..createSync('${dir.path}/file');
|
| @@ -353,20 +291,13 @@ void main() {
|
| virDir.followLinks = true;
|
| virDir.jailRoot = false;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return new HttpClient().get('localhost',
|
| - server.port,
|
| - '/file2')
|
| - .then((request) => request.close())
|
| - .then((response) => response.drain().then(
|
| - (_) => response.statusCode))
|
| + return getStatusCodeForVirtDir(virDir, '/file2')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| - _testVirDir('relative-parent-link', (server, dir) {
|
| + testVirtualDir('relative-parent-link', (dir) {
|
| var dir2 = new Directory('${dir.path}/dir')..createSync();
|
| var file = new File('${dir.path}/file')..createSync();
|
| var link = new Link('${dir2.path}/file')
|
| @@ -375,14 +306,7 @@ void main() {
|
| virDir.followLinks = true;
|
| virDir.jailRoot = false;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return new HttpClient().get('localhost',
|
| - server.port,
|
| - '/file')
|
| - .then((request) => request.close())
|
| - .then((response) => response.drain().then(
|
| - (_) => response.statusCode))
|
| + return getStatusCodeForVirtDir(virDir, '/file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| @@ -394,45 +318,40 @@ void main() {
|
|
|
| group('last-modified', () {
|
| group('file', () {
|
| - _testVirDir('file-exists', (server, dir) {
|
| + testVirtualDir('file-exists', (dir) {
|
| var file = new File('${dir.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getHeaders(server.port, '/file')
|
| + return getHeaders(virDir, '/file')
|
| .then((headers) {
|
| expect(headers.value(HttpHeaders.LAST_MODIFIED), isNotNull);
|
| - return HttpDate.parse(
|
| + var lastModified = HttpDate.parse(
|
| headers.value(HttpHeaders.LAST_MODIFIED));
|
| - })
|
| - .then((lastModified) {
|
| - return getStatusCode(
|
| - server.port, '/file', ifModifiedSince: lastModified);
|
| +
|
| + return getStatusCodeForVirtDir(
|
| + virDir, '/file', ifModifiedSince: lastModified);
|
| })
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_MODIFIED);
|
| });
|
| });
|
|
|
| - _testVirDir('file-changes', (server, dir) {
|
| + testVirtualDir('file-changes', (dir) {
|
| var file = new File('${dir.path}/file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getHeaders(server.port, '/file')
|
| + return getHeaders(virDir, '/file')
|
| .then((headers) {
|
| expect(headers.value(HttpHeaders.LAST_MODIFIED), isNotNull);
|
| - return HttpDate.parse(
|
| + var lastModified = HttpDate.parse(
|
| headers.value(HttpHeaders.LAST_MODIFIED));
|
| - })
|
| - .then((lastModified) {
|
| +
|
| // Fake file changed by moving date back in time.
|
| lastModified = lastModified.subtract(
|
| const Duration(seconds: 10));
|
| - return getStatusCode(
|
| - server.port, '/file', ifModifiedSince: lastModified);
|
| +
|
| + return getStatusCodeForVirtDir(virDir, '/file',
|
| + ifModifiedSince: lastModified);
|
| })
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| @@ -443,49 +362,43 @@ void main() {
|
|
|
| group('content-type', () {
|
| group('mime-type', () {
|
| - _testVirDir('from-path', (server, dir) {
|
| + testVirtualDir('from-path', (dir) {
|
| var file = new File('${dir.path}/file.jpg')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getHeaders(server.port, '/file.jpg')
|
| - .then((headers) => headers.contentType.toString())
|
| - .then((result) {
|
| - expect(result, 'image/jpeg');
|
| + return getHeaders(virDir, '/file.jpg')
|
| + .then((headers) {
|
| + var contentType = headers.contentType.toString();
|
| + expect(contentType, 'image/jpeg');
|
| });
|
| });
|
|
|
| - _testVirDir('from-magic-number', (server, dir) {
|
| + testVirtualDir('from-magic-number', (dir) {
|
| var file = new File('${dir.path}/file.jpg')..createSync();
|
| file.writeAsBytesSync(
|
| [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]);
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getHeaders(server.port, '/file.jpg')
|
| - .then((headers) => headers.contentType.toString())
|
| - .then((result) {
|
| - expect(result, 'image/png');
|
| + return getHeaders(virDir, '/file.jpg')
|
| + .then((headers) {
|
| + var contentType = headers.contentType.toString();
|
| + expect(contentType, 'image/png');
|
| });
|
| });
|
| });
|
| });
|
|
|
| group('error-page', () {
|
| - _testVirDir('default', (server, dir) {
|
| + testVirtualDir('default', (dir) {
|
| var virDir = new VirtualDirectory(pathos.join(dir.path, 'foo'));
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, matches(new RegExp('404.*Not Found')));
|
| });
|
| });
|
|
|
| - _testVirDir('custom', (server, dir) {
|
| + testVirtualDir('custom', (dir) {
|
| var virDir = new VirtualDirectory(pathos.join(dir.path, 'foo'));
|
|
|
| virDir.errorPageHandler = (request) {
|
| @@ -493,9 +406,8 @@ void main() {
|
| request.response.write(request.response.statusCode);
|
| request.response.close();
|
| };
|
| - virDir.serve(server);
|
|
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, 'my-page 404');
|
| });
|
| @@ -503,26 +415,22 @@ void main() {
|
| });
|
|
|
| group('escape-root', () {
|
| - _testVirDir('escape1', (server, dir) {
|
| + testVirtualDir('escape1', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/../')
|
| + return getStatusCodeForVirtDir(virDir, '/../')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| });
|
|
|
| - _testVirDir('escape2', (server, dir) {
|
| + testVirtualDir('escape2', (dir) {
|
| new Directory('${dir.path}/dir').createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/dir/../../')
|
| + return getStatusCodeForVirtDir(virDir, '/dir/../../')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -530,52 +438,44 @@ void main() {
|
| });
|
|
|
| group('url-decode', () {
|
| - _testVirDir('with-space', (server, dir) {
|
| + testVirtualDir('with-space', (dir) {
|
| var file = new File('${dir.path}/my file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/my file')
|
| + return getStatusCodeForVirtDir(virDir, '/my file')
|
| .then((result) {
|
| expect(result, HttpStatus.OK);
|
| });
|
| });
|
|
|
| - _testVirDir('encoded-space', (server, dir) {
|
| + testVirtualDir('encoded-space', (dir) {
|
| var file = new File('${dir.path}/my file')..createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/my%20file')
|
| + return getStatusCodeForVirtDir(virDir, '/my%20file')
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| });
|
|
|
| - _testVirDir('encoded-path-separator', (server, dir) {
|
| + testVirtualDir('encoded-path-separator', (dir) {
|
| new Directory('${dir.path}/a').createSync();
|
| new Directory('${dir.path}/a/b').createSync();
|
| new Directory('${dir.path}/a/b/c').createSync();
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/a%2fb/c', rawPath: true)
|
| + return getStatusCodeForVirtDir(virDir, '/a%2fb/c', rawPath: true)
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| });
|
|
|
| - _testVirDir('encoded-null', (server, dir) {
|
| + testVirtualDir('encoded-null', (dir) {
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getStatusCode(server.port, '/%00', rawPath: true)
|
| + return getStatusCodeForVirtDir(virDir, '/%00', rawPath: true)
|
| .then((result) {
|
| expect(result, HttpStatus.NOT_FOUND);
|
| });
|
| @@ -590,18 +490,16 @@ void main() {
|
| });
|
|
|
| group('serve-file', () {
|
| - _testVirDir('from-dir-handler', (server, dir) {
|
| + testVirtualDir('from-dir-handler', (dir) {
|
| new File('${dir.path}/file')..writeAsStringSync('file contents');
|
| var virDir = new VirtualDirectory(dir.path);
|
| virDir.allowDirectoryListing = true;
|
| virDir.directoryHandler = (d, request) {
|
| expect(FileSystemEntity.identicalSync(dir.path, d.path), isTrue);
|
| - virDir.serveFile(new File('${d.path}/file'), request);
|
| + return virDir.serveFile(new File('${d.path}/file'), request);
|
| };
|
|
|
| - virDir.serve(server);
|
| -
|
| - return getAsString(server.port, '/')
|
| + return getAsString(virDir, '/')
|
| .then((result) {
|
| expect(result, 'file contents');
|
| });
|
|
|