Chromium Code Reviews| 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 |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4b6937e527ae8f179131ae7494634877a55b2487 |
| --- /dev/null |
| +++ b/pkg/http_server/test/virtual_directory_test.dart |
| @@ -0,0 +1,132 @@ |
| +// 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. |
| + |
| +import 'dart:io'; |
| + |
| +import "package:unittest/unittest.dart"; |
| +import "package:http_server/http_server.dart"; |
| + |
| + |
| +void main() { |
| + group('serve-root', () { |
| + test('dir-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + var virDir = new VirtualDirectory(dir.path); |
| + |
| + virDir.serve(server); |
| + |
| + return new HttpClient().get('localhost', server.port, '/') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + dir.deleteSync(); |
| + }); |
|
Søren Gjesse
2013/06/21 11:17:23
Use HttpStatus constants.
Anders Johnsen
2013/06/21 11:22:28
Done.
|
| + }), completion(equals(404))); |
| + }); |
| + |
| + test('dir-not-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + dir.deleteSync(); |
| + var virDir = new VirtualDirectory(dir.path); |
| + |
| + virDir.serve(server); |
| + |
| + return new HttpClient().get('localhost', server.port, '/') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + }); |
| + }), completion(equals(404))); |
| + }); |
| + }); |
| + |
| + group('serve-file', () { |
| + group('top-level', () { |
| + test('file-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + var file = new File('${dir.path}/file')..createSync(); |
| + var virDir = new VirtualDirectory(dir.path); |
| + |
| + virDir.serve(server); |
| + |
| + return new HttpClient().get('localhost', server.port, '/file') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + file.deleteSync(); |
| + dir.deleteSync(); |
| + }); |
| + }), completion(equals(200))); |
| + }); |
| + |
| + test('file-not-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + var virDir = new VirtualDirectory(dir.path); |
| + |
| + virDir.serve(server); |
| + |
| + return new HttpClient().get('localhost', server.port, '/file') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + dir.deleteSync(); |
| + }); |
| + }), completion(equals(404))); |
| + }); |
| + }); |
| + |
| + group('in-dir', () { |
| + test('file-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + 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 new HttpClient().get('localhost', server.port, '/dir/file') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + file.deleteSync(); |
| + dir2.deleteSync(); |
| + dir.deleteSync(); |
| + }); |
| + }), completion(equals(200))); |
| + }); |
| + |
| + test('file-not-exists', () { |
| + expect(HttpServer.bind('localhost', 0).then((server) { |
| + var dir = new Directory('').createTempSync(); |
| + 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 new HttpClient().get('localhost', server.port, '/dir/file') |
| + .then((request) => request.close()) |
| + .then((response) => response.statusCode) |
| + .whenComplete(() { |
| + server.close(); |
| + file.deleteSync(); |
| + dir2.deleteSync(); |
| + dir.deleteSync(); |
| + }); |
| + }), completion(equals(404))); |
| + }); |
| + }); |
| + }); |
| +} |
| + |