| Index: tests/standalone/io/certificate_test.dart
|
| diff --git a/tests/standalone/io/certificate_test.dart b/tests/standalone/io/certificate_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fb5b423504da26cd1db3531122ea4a3078c6564b
|
| --- /dev/null
|
| +++ b/tests/standalone/io/certificate_test.dart
|
| @@ -0,0 +1,38 @@
|
| +// 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.
|
| +
|
| +// This test verifies that a server certificate can be verified by a client
|
| +// that loads the certificate authority certificate it depends on at runtime.
|
| +
|
| +import "package:path/path.dart";
|
| +import "dart:io";
|
| +import "dart:async";
|
| +
|
| +String scriptDir = dirname(new Options().script);
|
| +
|
| +void main() {
|
| + SecureSocket.initialize(database: join(scriptDir, 'pkcert'),
|
| + password: 'dartdart');
|
| + runServer().then((SecureServerSocket server) {
|
| + return Process.run(new Options().executable,
|
| + ['--checked',
|
| + join(scriptDir, 'certificate_test_client.dart'),
|
| + server.port.toString(),
|
| + join(scriptDir, 'pkcert', 'myauthority.pem')]);
|
| + }).then((ProcessResult result) {
|
| + if (result.exitCode != 0) {
|
| + print("Client failed with exit code ${result.exitCode}");
|
| + print(" stdout:");
|
| + print(result.stdout);
|
| + print(" stderr:");
|
| + print(result.stderr);
|
| + throw new AssertionError();
|
| + }
|
| + });
|
| +}
|
| +
|
| +Future<SecureServerSocket> runServer() =>
|
| + SecureServerSocket.bind("localhost", 0, "localhost_cert")
|
| + .then((server) => server..listen(
|
| + (socket) => socket.pipe(socket).then((_) => server.close())));
|
|
|