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

Side by Side Diff: tests/standalone/io/raw_secure_server_socket_test.dart

Issue 262923002: Clean up secure socket connect. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/io/secure_socket.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 import "dart:async"; 10 import "dart:async";
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 465
466 if (listenSecure) { 466 if (listenSecure) {
467 RawSecureServerSocket.bind( 467 RawSecureServerSocket.bind(
468 HOST, 0, CERTIFICATE).then(serverReady); 468 HOST, 0, CERTIFICATE).then(serverReady);
469 } else { 469 } else {
470 RawServerSocket.bind(HOST, 0).then(serverReady); 470 RawServerSocket.bind(HOST, 0).then(serverReady);
471 } 471 }
472 } 472 }
473 473
474 testPausedSecuringSubscription(bool pausedServer, bool pausedClient) { 474 testPausedSecuringSubscription(bool pausedServer, bool pausedClient) {
475 bool expectFail = pausedServer || pausedClient;
476
477 asyncStart(); 475 asyncStart();
478 var clientComplete = new Completer(); 476 var clientComplete = new Completer();
479 RawServerSocket.bind(HOST, 0).then((server) { 477 RawServerSocket.bind(HOST, 0).then((server) {
480 server.listen((client) { 478 server.listen((client) {
481 var subscription; 479 var subscription;
482 subscription = client.listen((_) { 480 subscription = client.listen((_) {
483 if (pausedServer) { 481 if (pausedServer) {
484 subscription.pause(); 482 subscription.pause();
485 } 483 }
486 RawSecureSocket.secureServer( 484 void done() {
487 client, CERTIFICATE, subscription: subscription).then((client) {
488 if (expectFail) {
489 Expect.fail("secureServer succeeded with paused subscription");
490 }
491 }).catchError((e) {
492 if (!expectFail) {
493 Expect.fail("secureServer failed with non-paused subscriptions");
494 }
495 if (pausedServer) {
496 Expect.isTrue(e is StateError);
497 }
498 }).whenComplete(() {
499 server.close(); 485 server.close();
500 clientComplete.future.then((_) { 486 clientComplete.future.then((_) {
501 client.close(); 487 client.close();
502 asyncEnd(); 488 asyncEnd();
503 }); 489 });
504 }); 490 }
491 try {
492 RawSecureSocket.secureServer(
493 client, CERTIFICATE, subscription: subscription)
494 .catchError((_) {})
495 .whenComplete(() {
496 if (pausedServer) {
497 Expect.fail("secureServer succeeded with paused subscription");
498 }
499 done();
500 });
501 } catch (e) {
502 if (!pausedServer) {
503 Expect.fail("secureServer failed with non-paused subscriptions");
504 }
505 if (pausedServer) {
506 Expect.isTrue(e is ArgumentError);
507 }
508 done();
509 }
505 }); 510 });
506 }); 511 });
507 512
508 RawSocket.connect(HOST, server.port).then((socket) { 513 RawSocket.connect(HOST, server.port).then((socket) {
509 var subscription; 514 var subscription;
510 subscription = socket.listen((_) { 515 subscription = socket.listen((_) {
511 if (pausedClient) { 516 if (pausedClient) {
512 subscription.pause(); 517 subscription.pause();
513 } 518 }
514 RawSecureSocket.secure( 519 try {
515 socket, subscription: subscription).then((socket) { 520 RawSecureSocket.secure(
516 if (expectFail) { 521 socket, subscription: subscription)
517 Expect.fail("secure succeeded with paused subscription"); 522 .catchError((_) {})
518 } 523 .whenComplete(() {
519 socket.close(); 524 if (pausedClient) {
520 }).catchError((e) { 525 Expect.fail("secure succeeded with paused subscription");
521 if (!expectFail) { 526 }
527 socket.close();
528 clientComplete.complete(null);
529 });
530 } catch (e) {
531 if (!pausedClient) {
522 Expect.fail("secure failed with non-paused subscriptions ($e)"); 532 Expect.fail("secure failed with non-paused subscriptions ($e)");
523 } 533 }
524 if (pausedClient) { 534 if (pausedClient) {
525 Expect.isTrue(e is StateError); 535 Expect.isTrue(e is ArgumentError);
526 } 536 }
527 }).whenComplete(() {
528 clientComplete.complete(null); 537 clientComplete.complete(null);
529 }); 538 }
530 }); 539 });
531 }); 540 });
532 }); 541 });
533 } 542 }
534 543
535 main() { 544 main() {
536 asyncStart(); 545 asyncStart();
537 var certificateDatabase = Platform.script.resolve('pkcert').toFilePath(); 546 var certificateDatabase = Platform.script.resolve('pkcert').toFilePath();
538 SecureSocket.initialize(database: certificateDatabase, 547 SecureSocket.initialize(database: certificateDatabase,
539 password: 'dartdart', 548 password: 'dartdart',
540 useBuiltinRoots: false); 549 useBuiltinRoots: false);
541 InternetAddress.lookup("localhost").then((hosts) { 550 InternetAddress.lookup("localhost").then((hosts) {
542 HOST = hosts.first; 551 HOST = hosts.first;
543 runTests(); 552 runTests();
544 asyncEnd(); 553 asyncEnd();
545 }); 554 });
546 } 555 }
547 556
548 runTests() { 557 runTests() {
549 testSimpleBind(); 558 testSimpleBind();
550 testInvalidBind(); 559 testInvalidBind();
551 testSimpleConnect(CERTIFICATE); 560 testSimpleConnect(CERTIFICATE);
552 testSimpleConnect("CN=localhost"); 561 testSimpleConnect("CN=localhost");
553 testSimpleConnectFail("not_a_nickname", false); 562 testSimpleConnectFail("not_a_nickname", false);
554 testSimpleConnectFail("CN=notARealDistinguishedName", false); 563 testSimpleConnectFail("CN=notARealDistinguishedName", false);
555 testSimpleConnectFail("not_a_nickname", true); 564 testSimpleConnectFail("not_a_nickname", true);
556 testSimpleConnectFail("CN=notARealDistinguishedName", true); 565 testSimpleConnectFail("CN=notARealDistinguishedName", true);
557 testServerListenAfterConnect(); 566 testServerListenAfterConnect();
567
558 testSimpleReadWrite(listenSecure: true, 568 testSimpleReadWrite(listenSecure: true,
559 connectSecure: true, 569 connectSecure: true,
560 handshakeBeforeSecure: false, 570 handshakeBeforeSecure: false,
561 postponeSecure: false, 571 postponeSecure: false,
562 dropReads: false); 572 dropReads: false);
563 testSimpleReadWrite(listenSecure: true, 573 testSimpleReadWrite(listenSecure: true,
564 connectSecure: false, 574 connectSecure: false,
565 handshakeBeforeSecure: false, 575 handshakeBeforeSecure: false,
566 postponeSecure: false, 576 postponeSecure: false,
567 dropReads: false); 577 dropReads: false);
(...skipping 25 matching lines...) Expand all
593 testSimpleReadWrite(listenSecure: false, 603 testSimpleReadWrite(listenSecure: false,
594 connectSecure: false, 604 connectSecure: false,
595 handshakeBeforeSecure: true, 605 handshakeBeforeSecure: true,
596 postponeSecure: true, 606 postponeSecure: true,
597 dropReads: true); 607 dropReads: true);
598 testPausedSecuringSubscription(false, false); 608 testPausedSecuringSubscription(false, false);
599 testPausedSecuringSubscription(true, false); 609 testPausedSecuringSubscription(true, false);
600 testPausedSecuringSubscription(false, true); 610 testPausedSecuringSubscription(false, true);
601 testPausedSecuringSubscription(true, true); 611 testPausedSecuringSubscription(true, true);
602 } 612 }
OLDNEW
« no previous file with comments | « sdk/lib/io/secure_socket.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698