| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:io'; | 5 import 'dart:io'; |
| 6 | 6 |
| 7 import "package:unittest/unittest.dart"; | 7 import "package:unittest/unittest.dart"; |
| 8 import "package:http_server/http_server.dart"; | 8 import "package:http_server/http_server.dart"; |
| 9 | 9 |
| 10 | 10 |
| 11 void main() { | 11 void main() { |
| 12 group('serve-root', () { | 12 group('serve-root', () { |
| 13 test('dir-exists', () { | 13 test('dir-exists', () { |
| 14 expect(HttpServer.bind('localhost', 0).then((server) { | 14 expect(HttpServer.bind('localhost', 0).then((server) { |
| 15 var dir = new Directory('').createTempSync(); | 15 var dir = new Directory('').createTempSync(); |
| 16 var virDir = new VirtualDirectory(dir.path); | 16 var virDir = new VirtualDirectory(dir.path); |
| 17 | 17 |
| 18 virDir.serve(server); | 18 virDir.serve(server); |
| 19 | 19 |
| 20 return new HttpClient().get('localhost', server.port, '/') | 20 return new HttpClient().get('localhost', server.port, '/') |
| 21 .then((request) => request.close()) | 21 .then((request) => request.close()) |
| 22 .then((response) => response.statusCode) | 22 .then((response) => response.drain().then( |
| 23 (_) => response.statusCode)) |
| 23 .whenComplete(() { | 24 .whenComplete(() { |
| 24 server.close(); | 25 server.close(); |
| 25 dir.deleteSync(); | 26 dir.deleteSync(); |
| 26 }); | 27 }); |
| 27 }), completion(equals(HttpStatus.NOT_FOUND))); | 28 }), completion(equals(HttpStatus.NOT_FOUND))); |
| 28 }); | 29 }); |
| 29 | 30 |
| 30 test('dir-not-exists', () { | 31 test('dir-not-exists', () { |
| 31 expect(HttpServer.bind('localhost', 0).then((server) { | 32 expect(HttpServer.bind('localhost', 0).then((server) { |
| 32 var dir = new Directory('').createTempSync(); | 33 var dir = new Directory('').createTempSync(); |
| 33 dir.deleteSync(); | 34 dir.deleteSync(); |
| 34 var virDir = new VirtualDirectory(dir.path); | 35 var virDir = new VirtualDirectory(dir.path); |
| 35 | 36 |
| 36 virDir.serve(server); | 37 virDir.serve(server); |
| 37 | 38 |
| 38 return new HttpClient().get('localhost', server.port, '/') | 39 return new HttpClient().get('localhost', server.port, '/') |
| 39 .then((request) => request.close()) | 40 .then((request) => request.close()) |
| 40 .then((response) => response.statusCode) | 41 .then((response) => response.drain().then( |
| 42 (_) => response.statusCode)) |
| 41 .whenComplete(() { | 43 .whenComplete(() { |
| 42 server.close(); | 44 server.close(); |
| 43 }); | 45 }); |
| 44 }), completion(equals(HttpStatus.NOT_FOUND))); | 46 }), completion(equals(HttpStatus.NOT_FOUND))); |
| 45 }); | 47 }); |
| 46 }); | 48 }); |
| 47 | 49 |
| 48 group('serve-file', () { | 50 group('serve-file', () { |
| 49 group('top-level', () { | 51 group('top-level', () { |
| 50 test('file-exists', () { | 52 test('file-exists', () { |
| 51 expect(HttpServer.bind('localhost', 0).then((server) { | 53 expect(HttpServer.bind('localhost', 0).then((server) { |
| 52 var dir = new Directory('').createTempSync(); | 54 var dir = new Directory('').createTempSync(); |
| 53 var file = new File('${dir.path}/file')..createSync(); | 55 var file = new File('${dir.path}/file')..createSync(); |
| 54 var virDir = new VirtualDirectory(dir.path); | 56 var virDir = new VirtualDirectory(dir.path); |
| 55 | 57 |
| 56 virDir.serve(server); | 58 virDir.serve(server); |
| 57 | 59 |
| 58 return new HttpClient().get('localhost', server.port, '/file') | 60 return new HttpClient().get('localhost', server.port, '/file') |
| 59 .then((request) => request.close()) | 61 .then((request) => request.close()) |
| 60 .then((response) => response.statusCode) | 62 .then((response) => response.drain().then( |
| 63 (_) => response.statusCode)) |
| 61 .whenComplete(() { | 64 .whenComplete(() { |
| 62 server.close(); | 65 server.close(); |
| 63 file.deleteSync(); | 66 file.deleteSync(); |
| 64 dir.deleteSync(); | 67 dir.deleteSync(); |
| 65 }); | 68 }); |
| 66 }), completion(equals(HttpStatus.OK))); | 69 }), completion(equals(HttpStatus.OK))); |
| 67 }); | 70 }); |
| 68 | 71 |
| 69 test('file-not-exists', () { | 72 test('file-not-exists', () { |
| 70 expect(HttpServer.bind('localhost', 0).then((server) { | 73 expect(HttpServer.bind('localhost', 0).then((server) { |
| 71 var dir = new Directory('').createTempSync(); | 74 var dir = new Directory('').createTempSync(); |
| 72 var virDir = new VirtualDirectory(dir.path); | 75 var virDir = new VirtualDirectory(dir.path); |
| 73 | 76 |
| 74 virDir.serve(server); | 77 virDir.serve(server); |
| 75 | 78 |
| 76 return new HttpClient().get('localhost', server.port, '/file') | 79 return new HttpClient().get('localhost', server.port, '/file') |
| 77 .then((request) => request.close()) | 80 .then((request) => request.close()) |
| 78 .then((response) => response.statusCode) | 81 .then((response) => response.drain().then( |
| 82 (_) => response.statusCode)) |
| 79 .whenComplete(() { | 83 .whenComplete(() { |
| 80 server.close(); | 84 server.close(); |
| 81 dir.deleteSync(); | 85 dir.deleteSync(); |
| 82 }); | 86 }); |
| 83 }), completion(equals(HttpStatus.NOT_FOUND))); | 87 }), completion(equals(HttpStatus.NOT_FOUND))); |
| 84 }); | 88 }); |
| 85 }); | 89 }); |
| 86 | 90 |
| 87 group('in-dir', () { | 91 group('in-dir', () { |
| 88 test('file-exists', () { | 92 test('file-exists', () { |
| 89 expect(HttpServer.bind('localhost', 0).then((server) { | 93 expect(HttpServer.bind('localhost', 0).then((server) { |
| 90 var dir = new Directory('').createTempSync(); | 94 var dir = new Directory('').createTempSync(); |
| 91 var dir2 = new Directory('${dir.path}/dir')..createSync(); | 95 var dir2 = new Directory('${dir.path}/dir')..createSync(); |
| 92 var file = new File('${dir2.path}/file')..createSync(); | 96 var file = new File('${dir2.path}/file')..createSync(); |
| 93 var virDir = new VirtualDirectory(dir.path); | 97 var virDir = new VirtualDirectory(dir.path); |
| 94 | 98 |
| 95 virDir.serve(server); | 99 virDir.serve(server); |
| 96 | 100 |
| 97 return new HttpClient().get('localhost', server.port, '/dir/file') | 101 return new HttpClient().get('localhost', server.port, '/dir/file') |
| 98 .then((request) => request.close()) | 102 .then((request) => request.close()) |
| 99 .then((response) => response.statusCode) | 103 .then((response) => response.drain().then( |
| 104 (_) => response.statusCode)) |
| 100 .whenComplete(() { | 105 .whenComplete(() { |
| 101 server.close(); | 106 server.close(); |
| 102 file.deleteSync(); | 107 file.deleteSync(); |
| 103 dir2.deleteSync(); | 108 dir2.deleteSync(); |
| 104 dir.deleteSync(); | 109 dir.deleteSync(); |
| 105 }); | 110 }); |
| 106 }), completion(equals(HttpStatus.OK))); | 111 }), completion(equals(HttpStatus.OK))); |
| 107 }); | 112 }); |
| 108 | 113 |
| 109 test('file-not-exists', () { | 114 test('file-not-exists', () { |
| 110 expect(HttpServer.bind('localhost', 0).then((server) { | 115 expect(HttpServer.bind('localhost', 0).then((server) { |
| 111 var dir = new Directory('').createTempSync(); | 116 var dir = new Directory('').createTempSync(); |
| 112 var dir2 = new Directory('${dir.path}/dir')..createSync(); | 117 var dir2 = new Directory('${dir.path}/dir')..createSync(); |
| 113 var file = new File('${dir.path}/file')..createSync(); | 118 var file = new File('${dir.path}/file')..createSync(); |
| 114 var virDir = new VirtualDirectory(dir.path); | 119 var virDir = new VirtualDirectory(dir.path); |
| 115 | 120 |
| 116 virDir.serve(server); | 121 virDir.serve(server); |
| 117 | 122 |
| 118 return new HttpClient().get('localhost', server.port, '/dir/file') | 123 return new HttpClient().get('localhost', server.port, '/dir/file') |
| 119 .then((request) => request.close()) | 124 .then((request) => request.close()) |
| 120 .then((response) => response.statusCode) | 125 .then((response) => response.drain().then( |
| 126 (_) => response.statusCode)) |
| 121 .whenComplete(() { | 127 .whenComplete(() { |
| 122 server.close(); | 128 server.close(); |
| 123 file.deleteSync(); | 129 file.deleteSync(); |
| 124 dir2.deleteSync(); | 130 dir2.deleteSync(); |
| 125 dir.deleteSync(); | 131 dir.deleteSync(); |
| 126 }); | 132 }); |
| 127 }), completion(equals(HttpStatus.NOT_FOUND))); | 133 }), completion(equals(HttpStatus.NOT_FOUND))); |
| 128 }); | 134 }); |
| 129 }); | 135 }); |
| 130 }); | 136 }); |
| 131 } | 137 } |
| 132 | 138 |
| OLD | NEW |