| // 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. |
| |
| library utils; |
| |
| import 'dart:async'; |
| import 'dart:convert'; |
| import 'dart:io'; |
| import "package:path/path.dart"; |
| |
| Future<int> getStatusCode(int port, |
| String path, |
| {String host, |
| bool secure: false, |
| DateTime ifModifiedSince, |
| bool rawPath: false}) { |
| var uri; |
| if (rawPath) { |
| uri = new Uri(scheme: secure ? 'https' : 'http', |
| host: 'localhost', |
| port: port, |
| path: path); |
| } else { |
| uri = (secure ? |
| new Uri.https('localhost:$port', path) : |
| new Uri.http('localhost:$port', path)); |
| } |
| return new HttpClient().getUrl(uri) |
| .then((request) { |
| if (host != null) request.headers.host = host; |
| if (ifModifiedSince != null) { |
| request.headers.ifModifiedSince = ifModifiedSince; |
| } |
| return request.close(); |
| }) |
| .then((response) => response.drain().then( |
| (_) => response.statusCode)); |
| } |
| |
| |
| Future<HttpHeaders> getHeaders(int port, String path) { |
| return new HttpClient().get('localhost', port, path) |
| .then((request) => request.close()) |
| .then((response) => response.drain().then( |
| (_) => response.headers)); |
| } |
| |
| |
| Future<String> getAsString(int port, String path) { |
| return new HttpClient().get('localhost', port, path) |
| .then((request) => request.close()) |
| .then((response) => UTF8.decodeStream(response)); |
| } |
| |
| |
| const CERTIFICATE = "localhost_cert"; |
| |
| |
| setupSecure() { |
| String scriptDir = dirname(new Options().script); |
| String certificateDatabase = join(scriptDir, 'pkcert'); |
| SecureSocket.initialize(database: certificateDatabase, |
| password: 'dartdart'); |
| } |