Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: tests/standalone/io/raw_secure_socket_test.dart

Issue 12330133: Don't use external servers in the tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixed long lines Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/standalone/io/raw_secure_socket_test.dart
diff --git a/tests/standalone/io/raw_secure_socket_test.dart b/tests/standalone/io/raw_secure_socket_test.dart
index 699f842f6ce24c902055706e834707c74804581f..f021737f93b5ac4137177c0a16ceaf1c7eab78e2 100644
--- a/tests/standalone/io/raw_secure_socket_test.dart
+++ b/tests/standalone/io/raw_secure_socket_test.dart
@@ -1,48 +1,78 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// 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.
//
// VMOptions=
// VMOptions=--short_socket_read
-// VMOptions=--short_socket_write
-// VMOptions=--short_socket_read --short_socket_write
+// XXVMOptions=--short_socket_write
Anders Johnsen 2013/02/26 09:42:14 XX?
Søren Gjesse 2013/02/26 10:00:00 Ditto.
+// XXVMOptions=--short_socket_read --short_socket_write
import "dart:async";
import "dart:io";
import "dart:isolate";
+Future<HttpServer> startServer() {
+ return HttpServer.bindSecure(
+ "127.0.0.1",
+ 0,
+ backlog: 5,
+ certificateName: 'localhost_cert').then((server) {
+ server.listen((HttpRequest request) {
+ request.listen(
+ (_) { },
+ onDone: () {
+ request.response.contentLength = 100;
+ for (int i = 0; i < 10; i++) {
+ request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
+ }
+ request.response.close();
+ });
+ });
+ return server;
+ });
+}
+
+void InitializeSSL() {
+ var testPkcertDatabase =
+ new Path(new Options().script).directoryPath.append('pkcert/');
+ SecureSocket.initialize(database: testPkcertDatabase.toNativePath(),
+ password: 'dartdart');
+}
void main() {
- List<int> message = "GET / HTTP/1.0\r\nHost: www.google.dk\r\n\r\n".codeUnits;
+ List<int> message = "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n".codeUnits;
int written = 0;
- List<String> chunks = <String>[];
- SecureSocket.initialize();
- // TODO(3593): Use a Dart HTTPS server for this test.
- RawSecureSocket.connect("www.google.dk", 443).then((socket) {
- socket.listen((RawSocketEvent event) {
- switch (event) {
- case RawSocketEvent.READ:
- var data = socket.read();
- var received = new String.fromCharCodes(data);
- chunks.add(received);
- break;
- case RawSocketEvent.WRITE:
- written +=
- socket.write(message, written, message.length - written);
- if (written < message.length) {
- socket.writeEventsEnabled = true;
- } else {
- socket.shutdown(SocketDirection.SEND);
- }
- break;
- case RawSocketEvent.READ_CLOSED:
- String fullPage = chunks.join();
- Expect.isTrue(fullPage.contains('</body></html>'));
- break;
- default: throw "Unexpected event $event";
- }
- }, onError: (AsyncError a) {
- Expect.fail("onError handler of RawSecureSocket stream hit: $a");
+ List<int> body = <int>[];
+ InitializeSSL();
+ startServer().then((server) {
+ RawSecureSocket.connect("localhost", server.port).then((socket) {
+ socket.listen(
+ (RawSocketEvent event) {
+ switch (event) {
+ case RawSocketEvent.READ:
+ body.addAll(socket.read());
+ break;
+ case RawSocketEvent.WRITE:
+ written +=
+ socket.write(message, written, message.length - written);
+ if (written < message.length) {
+ socket.writeEventsEnabled = true;
+ } else {
+ socket.shutdown(SocketDirection.SEND);
+ }
+ break;
+ case RawSocketEvent.READ_CLOSED:
+ Expect.isTrue(body.length > 100, "$body\n${body.length}");
+ Expect.equals(72, body[0]);
+ Expect.equals(9, body[body.length - 1]);
+ server.close();
+ break;
+ default: throw "Unexpected event $event";
+ }
+ },
+ onError: (AsyncError a) {
+ Expect.fail("onError handler of RawSecureSocket stream hit: $a");
+ });
});
});
}

Powered by Google App Engine
This is Rietveld 408576698