Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
| 8 #include <stdarg.h> | 8 #include <stdarg.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 11538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11549 MockWrite write; | 11549 MockWrite write; |
| 11550 MockRead read; | 11550 MockRead read; |
| 11551 int expected_rv; | 11551 int expected_rv; |
| 11552 const MockWrite* extra_write; | 11552 const MockWrite* extra_write; |
| 11553 const MockRead* extra_read; | 11553 const MockRead* extra_read; |
| 11554 }; | 11554 }; |
| 11555 | 11555 |
| 11556 static const int kNoSSL = 500; | 11556 static const int kNoSSL = 500; |
| 11557 | 11557 |
| 11558 struct TestConfig { | 11558 struct TestConfig { |
| 11559 int line_number; | |
| 11559 const char* const proxy_url; | 11560 const char* const proxy_url; |
| 11560 AuthTiming proxy_auth_timing; | 11561 AuthTiming proxy_auth_timing; |
| 11561 int proxy_auth_rv; | 11562 int proxy_auth_rv; |
|
mmenke
2016/11/14 18:03:49
Mind renaming this while you're here? first_gener
mmenke
2016/11/14 19:01:21
Missed this one?
asanka
2016/11/14 21:10:14
Oops. Done.
| |
| 11562 const char* const server_url; | 11563 const char* const server_url; |
| 11563 AuthTiming server_auth_timing; | 11564 AuthTiming server_auth_timing; |
| 11564 int server_auth_rv; | 11565 int server_auth_rv; |
|
mmenke
2016/11/14 18:03:49
same of this one, though I guess this shouldn't ha
mmenke
2016/11/14 19:01:21
Missed this one?
asanka
2016/11/14 21:10:14
Done. Oops again, but the new Rietveld UI didn't s
| |
| 11565 int num_auth_rounds; | 11566 int num_auth_rounds; |
| 11566 int first_ssl_round; | 11567 int first_ssl_round; |
| 11567 TestRound rounds[4]; | 11568 TestRound rounds[4]; |
| 11568 } test_configs[] = { | 11569 } test_configs[] = { |
| 11569 // Non-authenticating HTTP server with a direct connection. | 11570 // Non-authenticating HTTP server with a direct connection. |
| 11570 {NULL, | 11571 {__LINE__, |
| 11572 nullptr, | |
| 11571 AUTH_NONE, | 11573 AUTH_NONE, |
| 11572 OK, | 11574 OK, |
| 11573 kServer, | 11575 kServer, |
| 11574 AUTH_NONE, | 11576 AUTH_NONE, |
| 11575 OK, | 11577 OK, |
| 11576 1, | 11578 1, |
| 11577 kNoSSL, | 11579 kNoSSL, |
| 11578 {TestRound(kGet, kSuccess, OK)}}, | 11580 {TestRound(kGet, kSuccess, OK)}}, |
| 11579 // Authenticating HTTP server with a direct connection. | 11581 // Authenticating HTTP server with a direct connection. |
| 11580 {NULL, | 11582 {__LINE__, |
| 11583 nullptr, | |
| 11581 AUTH_NONE, | 11584 AUTH_NONE, |
| 11582 OK, | 11585 OK, |
| 11583 kServer, | 11586 kServer, |
| 11584 AUTH_SYNC, | 11587 AUTH_SYNC, |
| 11585 OK, | 11588 OK, |
| 11586 2, | 11589 2, |
| 11587 kNoSSL, | 11590 kNoSSL, |
| 11588 {TestRound(kGet, kServerChallenge, OK), | 11591 {TestRound(kGet, kServerChallenge, OK), |
| 11589 TestRound(kGetAuth, kSuccess, OK)}}, | 11592 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11590 {NULL, | 11593 {__LINE__, |
| 11594 nullptr, | |
| 11591 AUTH_NONE, | 11595 AUTH_NONE, |
| 11592 OK, | 11596 OK, |
| 11593 kServer, | 11597 kServer, |
| 11594 AUTH_SYNC, | 11598 AUTH_SYNC, |
| 11595 ERR_INVALID_AUTH_CREDENTIALS, | 11599 ERR_INVALID_AUTH_CREDENTIALS, |
| 11596 3, | 11600 3, |
| 11597 kNoSSL, | 11601 kNoSSL, |
| 11598 {TestRound(kGet, kServerChallenge, OK), | 11602 {TestRound(kGet, kServerChallenge, OK), |
| 11599 TestRound(kGet, kServerChallenge, OK), | 11603 TestRound(kGet, kServerChallenge, OK), |
| 11600 TestRound(kGetAuth, kSuccess, OK)}}, | 11604 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11601 {NULL, | 11605 {__LINE__, |
| 11606 nullptr, | |
| 11602 AUTH_NONE, | 11607 AUTH_NONE, |
| 11603 OK, | 11608 OK, |
| 11604 kServer, | 11609 kServer, |
| 11605 AUTH_SYNC, | 11610 AUTH_SYNC, |
| 11606 ERR_UNSUPPORTED_AUTH_SCHEME, | 11611 ERR_UNSUPPORTED_AUTH_SCHEME, |
| 11607 2, | 11612 2, |
| 11608 kNoSSL, | 11613 kNoSSL, |
| 11609 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, | 11614 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
| 11610 {NULL, | 11615 {__LINE__, |
| 11616 nullptr, | |
| 11611 AUTH_NONE, | 11617 AUTH_NONE, |
| 11612 OK, | 11618 OK, |
| 11613 kServer, | 11619 kServer, |
| 11614 AUTH_SYNC, | 11620 AUTH_SYNC, |
| 11615 ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS, | 11621 ERR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS, |
| 11616 2, | 11622 2, |
| 11617 kNoSSL, | 11623 kNoSSL, |
| 11618 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, | 11624 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
| 11619 {kProxy, | 11625 {__LINE__, |
| 11626 kProxy, | |
| 11620 AUTH_SYNC, | 11627 AUTH_SYNC, |
| 11621 ERR_FAILED, | 11628 ERR_FAILED, |
| 11622 kServer, | 11629 kServer, |
| 11623 AUTH_NONE, | 11630 AUTH_NONE, |
| 11624 OK, | 11631 OK, |
| 11625 2, | 11632 2, |
| 11626 kNoSSL, | 11633 kNoSSL, |
| 11627 {TestRound(kGetProxy, kProxyChallenge, OK), | 11634 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11628 TestRound(kGetProxy, kFailure, ERR_FAILED)}}, | 11635 TestRound(kGetProxy, kFailure, ERR_FAILED)}}, |
| 11629 {kProxy, | 11636 {__LINE__, |
| 11637 kProxy, | |
| 11630 AUTH_ASYNC, | 11638 AUTH_ASYNC, |
| 11631 ERR_FAILED, | 11639 ERR_FAILED, |
| 11632 kServer, | 11640 kServer, |
| 11633 AUTH_NONE, | 11641 AUTH_NONE, |
| 11634 OK, | 11642 OK, |
| 11635 2, | 11643 2, |
| 11636 kNoSSL, | 11644 kNoSSL, |
| 11637 {TestRound(kGetProxy, kProxyChallenge, OK), | 11645 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11638 TestRound(kGetProxy, kFailure, ERR_FAILED)}}, | 11646 TestRound(kGetProxy, kFailure, ERR_FAILED)}}, |
| 11639 {NULL, | 11647 {__LINE__, |
| 11648 nullptr, | |
| 11640 AUTH_NONE, | 11649 AUTH_NONE, |
| 11641 OK, | 11650 OK, |
| 11642 kServer, | 11651 kServer, |
| 11643 AUTH_SYNC, | 11652 AUTH_SYNC, |
| 11644 ERR_FAILED, | 11653 ERR_FAILED, |
| 11645 2, | 11654 2, |
| 11646 kNoSSL, | 11655 kNoSSL, |
| 11647 {TestRound(kGet, kServerChallenge, OK), | 11656 {TestRound(kGet, kServerChallenge, OK), |
| 11648 TestRound(kGet, kFailure, ERR_FAILED)}}, | 11657 TestRound(kGet, kFailure, ERR_FAILED)}}, |
| 11649 {NULL, | 11658 {__LINE__, |
| 11659 nullptr, | |
| 11650 AUTH_NONE, | 11660 AUTH_NONE, |
| 11651 OK, | 11661 OK, |
| 11652 kServer, | 11662 kServer, |
| 11653 AUTH_ASYNC, | 11663 AUTH_ASYNC, |
| 11654 ERR_FAILED, | 11664 ERR_FAILED, |
| 11655 2, | 11665 2, |
| 11656 kNoSSL, | 11666 kNoSSL, |
| 11657 {TestRound(kGet, kServerChallenge, OK), | 11667 {TestRound(kGet, kServerChallenge, OK), |
| 11658 TestRound(kGet, kFailure, ERR_FAILED)}}, | 11668 TestRound(kGet, kFailure, ERR_FAILED)}}, |
| 11659 {NULL, | 11669 {__LINE__, |
| 11670 nullptr, | |
| 11660 AUTH_NONE, | 11671 AUTH_NONE, |
| 11661 OK, | 11672 OK, |
| 11662 kServer, | 11673 kServer, |
| 11663 AUTH_ASYNC, | 11674 AUTH_ASYNC, |
| 11664 OK, | 11675 OK, |
| 11665 2, | 11676 2, |
| 11666 kNoSSL, | 11677 kNoSSL, |
| 11667 {TestRound(kGet, kServerChallenge, OK), | 11678 {TestRound(kGet, kServerChallenge, OK), |
| 11668 TestRound(kGetAuth, kSuccess, OK)}}, | 11679 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11669 {NULL, | 11680 {__LINE__, |
| 11681 nullptr, | |
| 11670 AUTH_NONE, | 11682 AUTH_NONE, |
| 11671 OK, | 11683 OK, |
| 11672 kServer, | 11684 kServer, |
| 11673 AUTH_ASYNC, | 11685 AUTH_ASYNC, |
| 11674 ERR_INVALID_AUTH_CREDENTIALS, | 11686 ERR_INVALID_AUTH_CREDENTIALS, |
| 11675 3, | 11687 3, |
| 11676 kNoSSL, | 11688 kNoSSL, |
| 11677 {TestRound(kGet, kServerChallenge, OK), | 11689 {TestRound(kGet, kServerChallenge, OK), |
| 11678 // The second round uses a HttpAuthHandlerMock that always succeeds. | 11690 // The second round uses a HttpAuthHandlerMock that always succeeds. |
| 11679 TestRound(kGet, kServerChallenge, OK), | 11691 TestRound(kGet, kServerChallenge, OK), |
| 11680 TestRound(kGetAuth, kSuccess, OK)}}, | 11692 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11681 // Non-authenticating HTTP server through a non-authenticating proxy. | 11693 // Non-authenticating HTTP server through a non-authenticating proxy. |
| 11682 {kProxy, | 11694 {__LINE__, |
| 11695 kProxy, | |
| 11683 AUTH_NONE, | 11696 AUTH_NONE, |
| 11684 OK, | 11697 OK, |
| 11685 kServer, | 11698 kServer, |
| 11686 AUTH_NONE, | 11699 AUTH_NONE, |
| 11687 OK, | 11700 OK, |
| 11688 1, | 11701 1, |
| 11689 kNoSSL, | 11702 kNoSSL, |
| 11690 {TestRound(kGetProxy, kSuccess, OK)}}, | 11703 {TestRound(kGetProxy, kSuccess, OK)}}, |
| 11691 // Authenticating HTTP server through a non-authenticating proxy. | 11704 // Authenticating HTTP server through a non-authenticating proxy. |
| 11692 {kProxy, | 11705 {__LINE__, |
| 11706 kProxy, | |
| 11693 AUTH_NONE, | 11707 AUTH_NONE, |
| 11694 OK, | 11708 OK, |
| 11695 kServer, | 11709 kServer, |
| 11696 AUTH_SYNC, | 11710 AUTH_SYNC, |
| 11697 OK, | 11711 OK, |
| 11698 2, | 11712 2, |
| 11699 kNoSSL, | 11713 kNoSSL, |
| 11700 {TestRound(kGetProxy, kServerChallenge, OK), | 11714 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11701 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11715 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11702 {kProxy, | 11716 {__LINE__, |
| 11717 kProxy, | |
| 11703 AUTH_NONE, | 11718 AUTH_NONE, |
| 11704 OK, | 11719 OK, |
| 11705 kServer, | 11720 kServer, |
| 11706 AUTH_SYNC, | 11721 AUTH_SYNC, |
| 11707 ERR_INVALID_AUTH_CREDENTIALS, | 11722 ERR_INVALID_AUTH_CREDENTIALS, |
| 11708 3, | 11723 3, |
| 11709 kNoSSL, | 11724 kNoSSL, |
| 11710 {TestRound(kGetProxy, kServerChallenge, OK), | 11725 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11711 TestRound(kGetProxy, kServerChallenge, OK), | 11726 TestRound(kGetProxy, kServerChallenge, OK), |
| 11712 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11727 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11713 {kProxy, | 11728 {__LINE__, |
| 11729 kProxy, | |
| 11714 AUTH_NONE, | 11730 AUTH_NONE, |
| 11715 OK, | 11731 OK, |
| 11716 kServer, | 11732 kServer, |
| 11717 AUTH_ASYNC, | 11733 AUTH_ASYNC, |
| 11718 OK, | 11734 OK, |
| 11719 2, | 11735 2, |
| 11720 kNoSSL, | 11736 kNoSSL, |
| 11721 {TestRound(kGetProxy, kServerChallenge, OK), | 11737 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11722 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, | 11738 TestRound(kGetAuthThroughProxy, kSuccess, OK)}}, |
| 11723 {kProxy, | 11739 {__LINE__, |
| 11740 kProxy, | |
| 11724 AUTH_NONE, | 11741 AUTH_NONE, |
| 11725 OK, | 11742 OK, |
| 11726 kServer, | 11743 kServer, |
| 11727 AUTH_ASYNC, | 11744 AUTH_ASYNC, |
| 11728 ERR_INVALID_AUTH_CREDENTIALS, | 11745 ERR_INVALID_AUTH_CREDENTIALS, |
| 11729 2, | 11746 2, |
| 11730 kNoSSL, | 11747 kNoSSL, |
| 11731 {TestRound(kGetProxy, kServerChallenge, OK), | 11748 {TestRound(kGetProxy, kServerChallenge, OK), |
| 11732 TestRound(kGetProxy, kSuccess, OK)}}, | 11749 TestRound(kGetProxy, kSuccess, OK)}}, |
| 11733 // Non-authenticating HTTP server through an authenticating proxy. | 11750 // Non-authenticating HTTP server through an authenticating proxy. |
| 11734 {kProxy, | 11751 {__LINE__, |
| 11752 kProxy, | |
| 11735 AUTH_SYNC, | 11753 AUTH_SYNC, |
| 11736 OK, | 11754 OK, |
| 11737 kServer, | 11755 kServer, |
| 11738 AUTH_NONE, | 11756 AUTH_NONE, |
| 11739 OK, | 11757 OK, |
| 11740 2, | 11758 2, |
| 11741 kNoSSL, | 11759 kNoSSL, |
| 11742 {TestRound(kGetProxy, kProxyChallenge, OK), | 11760 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11743 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11761 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11744 {kProxy, | 11762 {__LINE__, |
| 11763 kProxy, | |
| 11745 AUTH_SYNC, | 11764 AUTH_SYNC, |
| 11746 ERR_INVALID_AUTH_CREDENTIALS, | 11765 ERR_INVALID_AUTH_CREDENTIALS, |
| 11747 kServer, | 11766 kServer, |
| 11748 AUTH_NONE, | 11767 AUTH_NONE, |
| 11749 OK, | 11768 OK, |
| 11750 2, | 11769 2, |
| 11751 kNoSSL, | 11770 kNoSSL, |
| 11752 {TestRound(kGetProxy, kProxyChallenge, OK), | 11771 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11753 TestRound(kGetProxy, kSuccess, OK)}}, | 11772 TestRound(kGetProxy, kSuccess, OK)}}, |
| 11754 {kProxy, | 11773 {__LINE__, |
| 11774 kProxy, | |
| 11755 AUTH_ASYNC, | 11775 AUTH_ASYNC, |
| 11756 OK, | 11776 OK, |
| 11757 kServer, | 11777 kServer, |
| 11758 AUTH_NONE, | 11778 AUTH_NONE, |
| 11759 OK, | 11779 OK, |
| 11760 2, | 11780 2, |
| 11761 kNoSSL, | 11781 kNoSSL, |
| 11762 {TestRound(kGetProxy, kProxyChallenge, OK), | 11782 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11763 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11783 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11764 {kProxy, | 11784 {__LINE__, |
| 11785 kProxy, | |
| 11765 AUTH_ASYNC, | 11786 AUTH_ASYNC, |
| 11766 ERR_INVALID_AUTH_CREDENTIALS, | 11787 ERR_INVALID_AUTH_CREDENTIALS, |
| 11767 kServer, | 11788 kServer, |
| 11768 AUTH_NONE, | 11789 AUTH_NONE, |
| 11769 OK, | 11790 OK, |
| 11770 2, | 11791 2, |
| 11771 kNoSSL, | 11792 kNoSSL, |
| 11772 {TestRound(kGetProxy, kProxyChallenge, OK), | 11793 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11773 TestRound(kGetProxy, kSuccess, OK)}}, | 11794 TestRound(kGetProxy, kSuccess, OK)}}, |
|
mmenke
2016/11/14 18:03:49
So in this case, the proxy challenges us, we fail
asanka
2016/11/14 21:10:14
Yup. It's a bit of a nonsensical case, but it now
| |
| 11795 {__LINE__, | |
| 11796 kProxy, | |
| 11797 AUTH_ASYNC, | |
| 11798 ERR_INVALID_AUTH_CREDENTIALS, | |
| 11799 kServer, | |
| 11800 AUTH_NONE, | |
| 11801 OK, | |
| 11802 3, | |
| 11803 kNoSSL, | |
| 11804 {TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11805 TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11806 TestRound(kGetProxyAuth, kSuccess, OK)}}, | |
|
mmenke
2016/11/14 18:03:49
And in this case, the server sanely decides to cha
asanka
2016/11/14 18:49:53
The kGetProxyAuth sets up the expectation that the
| |
| 11774 // Authenticating HTTP server through an authenticating proxy. | 11807 // Authenticating HTTP server through an authenticating proxy. |
| 11775 {kProxy, | 11808 {__LINE__, |
| 11809 kProxy, | |
| 11776 AUTH_SYNC, | 11810 AUTH_SYNC, |
| 11777 OK, | 11811 OK, |
| 11778 kServer, | 11812 kServer, |
| 11779 AUTH_SYNC, | 11813 AUTH_SYNC, |
| 11780 OK, | 11814 OK, |
| 11781 3, | 11815 3, |
| 11782 kNoSSL, | 11816 kNoSSL, |
| 11783 {TestRound(kGetProxy, kProxyChallenge, OK), | 11817 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11784 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11818 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11785 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11819 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11786 {kProxy, | 11820 {__LINE__, |
| 11821 kProxy, | |
| 11787 AUTH_SYNC, | 11822 AUTH_SYNC, |
| 11788 OK, | 11823 OK, |
| 11789 kServer, | 11824 kServer, |
| 11790 AUTH_SYNC, | 11825 AUTH_SYNC, |
| 11791 ERR_INVALID_AUTH_CREDENTIALS, | 11826 ERR_INVALID_AUTH_CREDENTIALS, |
| 11792 3, | 11827 3, |
| 11793 kNoSSL, | 11828 kNoSSL, |
| 11794 {TestRound(kGetProxy, kProxyChallenge, OK), | 11829 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11795 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11830 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11796 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11831 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11797 {kProxy, | 11832 {__LINE__, |
| 11833 kProxy, | |
| 11798 AUTH_ASYNC, | 11834 AUTH_ASYNC, |
| 11799 OK, | 11835 OK, |
| 11800 kServer, | 11836 kServer, |
| 11801 AUTH_SYNC, | 11837 AUTH_SYNC, |
| 11802 OK, | 11838 OK, |
| 11803 3, | 11839 3, |
| 11804 kNoSSL, | 11840 kNoSSL, |
| 11805 {TestRound(kGetProxy, kProxyChallenge, OK), | 11841 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11806 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11842 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11807 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11843 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11808 {kProxy, | 11844 {__LINE__, |
| 11845 kProxy, | |
| 11809 AUTH_ASYNC, | 11846 AUTH_ASYNC, |
| 11810 OK, | 11847 OK, |
| 11811 kServer, | 11848 kServer, |
| 11812 AUTH_SYNC, | 11849 AUTH_SYNC, |
| 11813 ERR_INVALID_AUTH_CREDENTIALS, | 11850 ERR_INVALID_AUTH_CREDENTIALS, |
| 11814 3, | 11851 3, |
| 11815 kNoSSL, | 11852 kNoSSL, |
| 11816 {TestRound(kGetProxy, kProxyChallenge, OK), | 11853 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11817 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11854 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11818 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11855 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11819 {kProxy, | 11856 {__LINE__, |
| 11857 kProxy, | |
| 11820 AUTH_SYNC, | 11858 AUTH_SYNC, |
| 11821 OK, | 11859 OK, |
| 11822 kServer, | 11860 kServer, |
| 11823 AUTH_ASYNC, | 11861 AUTH_ASYNC, |
| 11824 OK, | 11862 OK, |
| 11825 3, | 11863 3, |
| 11826 kNoSSL, | 11864 kNoSSL, |
| 11827 {TestRound(kGetProxy, kProxyChallenge, OK), | 11865 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11828 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11866 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11829 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11867 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11830 {kProxy, | 11868 {__LINE__, |
| 11869 kProxy, | |
| 11870 AUTH_SYNC, | |
| 11871 ERR_INVALID_AUTH_CREDENTIALS, | |
| 11872 kServer, | |
| 11873 AUTH_ASYNC, | |
| 11874 OK, | |
| 11875 4, | |
| 11876 kNoSSL, | |
| 11877 {TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11878 TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11879 TestRound(kGetProxyAuth, kServerChallenge, OK), | |
| 11880 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | |
|
mmenke
2016/11/14 18:03:49
What additional coverage do we get from this one?
asanka
2016/11/14 18:49:53
Assuming you are comparing to the test at 11917. A
mmenke
2016/11/14 19:01:21
I was actually comparing to 11795 - we get an erro
asanka
2016/11/14 21:10:14
Ah right. 11795 has the property that the second p
| |
| 11881 {__LINE__, | |
| 11882 kProxy, | |
| 11831 AUTH_SYNC, | 11883 AUTH_SYNC, |
| 11832 OK, | 11884 OK, |
| 11833 kServer, | 11885 kServer, |
| 11834 AUTH_ASYNC, | 11886 AUTH_ASYNC, |
| 11835 ERR_INVALID_AUTH_CREDENTIALS, | 11887 ERR_INVALID_AUTH_CREDENTIALS, |
| 11836 3, | 11888 3, |
| 11837 kNoSSL, | 11889 kNoSSL, |
| 11838 {TestRound(kGetProxy, kProxyChallenge, OK), | 11890 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11839 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11891 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11840 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11892 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11841 {kProxy, | 11893 {__LINE__, |
| 11894 kProxy, | |
| 11842 AUTH_ASYNC, | 11895 AUTH_ASYNC, |
| 11843 OK, | 11896 OK, |
| 11844 kServer, | 11897 kServer, |
| 11845 AUTH_ASYNC, | 11898 AUTH_ASYNC, |
| 11846 OK, | 11899 OK, |
| 11847 3, | 11900 3, |
| 11848 kNoSSL, | 11901 kNoSSL, |
| 11849 {TestRound(kGetProxy, kProxyChallenge, OK), | 11902 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11850 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11903 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11851 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, | 11904 TestRound(kGetAuthWithProxyAuth, kSuccess, OK)}}, |
| 11852 {kProxy, | 11905 {__LINE__, |
| 11906 kProxy, | |
| 11853 AUTH_ASYNC, | 11907 AUTH_ASYNC, |
| 11854 OK, | 11908 OK, |
| 11855 kServer, | 11909 kServer, |
| 11856 AUTH_ASYNC, | 11910 AUTH_ASYNC, |
| 11857 ERR_INVALID_AUTH_CREDENTIALS, | 11911 ERR_INVALID_AUTH_CREDENTIALS, |
| 11858 3, | 11912 3, |
| 11859 kNoSSL, | 11913 kNoSSL, |
| 11860 {TestRound(kGetProxy, kProxyChallenge, OK), | 11914 {TestRound(kGetProxy, kProxyChallenge, OK), |
| 11861 TestRound(kGetProxyAuth, kServerChallenge, OK), | 11915 TestRound(kGetProxyAuth, kServerChallenge, OK), |
| 11862 TestRound(kGetProxyAuth, kSuccess, OK)}}, | 11916 TestRound(kGetProxyAuth, kSuccess, OK)}}, |
| 11917 {__LINE__, | |
| 11918 kProxy, | |
| 11919 AUTH_ASYNC, | |
| 11920 ERR_INVALID_AUTH_CREDENTIALS, | |
| 11921 kServer, | |
| 11922 AUTH_ASYNC, | |
| 11923 ERR_INVALID_AUTH_CREDENTIALS, | |
| 11924 4, | |
| 11925 kNoSSL, | |
| 11926 {TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11927 TestRound(kGetProxy, kProxyChallenge, OK), | |
| 11928 TestRound(kGetProxyAuth, kServerChallenge, OK), | |
| 11929 TestRound(kGetProxyAuth, kSuccess, OK)}}, | |
| 11863 // Non-authenticating HTTPS server with a direct connection. | 11930 // Non-authenticating HTTPS server with a direct connection. |
| 11864 {NULL, | 11931 {__LINE__, |
| 11932 nullptr, | |
| 11865 AUTH_NONE, | 11933 AUTH_NONE, |
| 11866 OK, | 11934 OK, |
| 11867 kSecureServer, | 11935 kSecureServer, |
| 11868 AUTH_NONE, | 11936 AUTH_NONE, |
| 11869 OK, | 11937 OK, |
| 11870 1, | 11938 1, |
| 11871 0, | 11939 0, |
| 11872 {TestRound(kGet, kSuccess, OK)}}, | 11940 {TestRound(kGet, kSuccess, OK)}}, |
| 11873 // Authenticating HTTPS server with a direct connection. | 11941 // Authenticating HTTPS server with a direct connection. |
| 11874 {NULL, | 11942 {__LINE__, |
| 11943 nullptr, | |
| 11875 AUTH_NONE, | 11944 AUTH_NONE, |
| 11876 OK, | 11945 OK, |
| 11877 kSecureServer, | 11946 kSecureServer, |
| 11878 AUTH_SYNC, | 11947 AUTH_SYNC, |
| 11879 OK, | 11948 OK, |
| 11880 2, | 11949 2, |
| 11881 0, | 11950 0, |
| 11882 {TestRound(kGet, kServerChallenge, OK), | 11951 {TestRound(kGet, kServerChallenge, OK), |
| 11883 TestRound(kGetAuth, kSuccess, OK)}}, | 11952 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11884 {NULL, | 11953 {__LINE__, |
| 11954 nullptr, | |
| 11885 AUTH_NONE, | 11955 AUTH_NONE, |
| 11886 OK, | 11956 OK, |
| 11887 kSecureServer, | 11957 kSecureServer, |
| 11888 AUTH_SYNC, | 11958 AUTH_SYNC, |
| 11889 ERR_INVALID_AUTH_CREDENTIALS, | 11959 ERR_INVALID_AUTH_CREDENTIALS, |
| 11890 2, | 11960 2, |
| 11891 0, | 11961 0, |
| 11892 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, | 11962 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
| 11893 {NULL, | 11963 {__LINE__, |
| 11964 nullptr, | |
| 11894 AUTH_NONE, | 11965 AUTH_NONE, |
| 11895 OK, | 11966 OK, |
| 11896 kSecureServer, | 11967 kSecureServer, |
| 11897 AUTH_ASYNC, | 11968 AUTH_ASYNC, |
| 11898 OK, | 11969 OK, |
| 11899 2, | 11970 2, |
| 11900 0, | 11971 0, |
| 11901 {TestRound(kGet, kServerChallenge, OK), | 11972 {TestRound(kGet, kServerChallenge, OK), |
| 11902 TestRound(kGetAuth, kSuccess, OK)}}, | 11973 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11903 {NULL, | 11974 {__LINE__, |
| 11975 nullptr, | |
| 11904 AUTH_NONE, | 11976 AUTH_NONE, |
| 11905 OK, | 11977 OK, |
| 11906 kSecureServer, | 11978 kSecureServer, |
| 11907 AUTH_ASYNC, | 11979 AUTH_ASYNC, |
| 11908 ERR_INVALID_AUTH_CREDENTIALS, | 11980 ERR_INVALID_AUTH_CREDENTIALS, |
| 11909 2, | 11981 2, |
| 11910 0, | 11982 0, |
| 11911 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, | 11983 {TestRound(kGet, kServerChallenge, OK), TestRound(kGet, kSuccess, OK)}}, |
| 11912 // Non-authenticating HTTPS server with a non-authenticating proxy. | 11984 // Non-authenticating HTTPS server with a non-authenticating proxy. |
| 11913 {kProxy, | 11985 {__LINE__, |
| 11986 kProxy, | |
| 11914 AUTH_NONE, | 11987 AUTH_NONE, |
| 11915 OK, | 11988 OK, |
| 11916 kSecureServer, | 11989 kSecureServer, |
| 11917 AUTH_NONE, | 11990 AUTH_NONE, |
| 11918 OK, | 11991 OK, |
| 11919 1, | 11992 1, |
| 11920 0, | 11993 0, |
| 11921 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 11994 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11922 // Authenticating HTTPS server through a non-authenticating proxy. | 11995 // Authenticating HTTPS server through a non-authenticating proxy. |
| 11923 {kProxy, | 11996 {__LINE__, |
| 11997 kProxy, | |
| 11924 AUTH_NONE, | 11998 AUTH_NONE, |
| 11925 OK, | 11999 OK, |
| 11926 kSecureServer, | 12000 kSecureServer, |
| 11927 AUTH_SYNC, | 12001 AUTH_SYNC, |
| 11928 OK, | 12002 OK, |
| 11929 2, | 12003 2, |
| 11930 0, | 12004 0, |
| 11931 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 12005 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11932 TestRound(kGetAuth, kSuccess, OK)}}, | 12006 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11933 {kProxy, | 12007 {__LINE__, |
| 12008 kProxy, | |
| 11934 AUTH_NONE, | 12009 AUTH_NONE, |
| 11935 OK, | 12010 OK, |
| 11936 kSecureServer, | 12011 kSecureServer, |
| 11937 AUTH_SYNC, | 12012 AUTH_SYNC, |
| 11938 ERR_INVALID_AUTH_CREDENTIALS, | 12013 ERR_INVALID_AUTH_CREDENTIALS, |
| 11939 2, | 12014 2, |
| 11940 0, | 12015 0, |
| 11941 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 12016 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11942 TestRound(kGet, kSuccess, OK)}}, | 12017 TestRound(kGet, kSuccess, OK)}}, |
| 11943 {kProxy, | 12018 {__LINE__, |
| 12019 kProxy, | |
| 11944 AUTH_NONE, | 12020 AUTH_NONE, |
| 11945 OK, | 12021 OK, |
| 11946 kSecureServer, | 12022 kSecureServer, |
| 11947 AUTH_ASYNC, | 12023 AUTH_ASYNC, |
| 11948 OK, | 12024 OK, |
| 11949 2, | 12025 2, |
| 11950 0, | 12026 0, |
| 11951 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 12027 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11952 TestRound(kGetAuth, kSuccess, OK)}}, | 12028 TestRound(kGetAuth, kSuccess, OK)}}, |
| 11953 {kProxy, | 12029 {__LINE__, |
| 12030 kProxy, | |
| 11954 AUTH_NONE, | 12031 AUTH_NONE, |
| 11955 OK, | 12032 OK, |
| 11956 kSecureServer, | 12033 kSecureServer, |
| 11957 AUTH_ASYNC, | 12034 AUTH_ASYNC, |
| 11958 ERR_INVALID_AUTH_CREDENTIALS, | 12035 ERR_INVALID_AUTH_CREDENTIALS, |
| 11959 2, | 12036 2, |
| 11960 0, | 12037 0, |
| 11961 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), | 12038 {TestRound(kConnect, kProxyConnected, OK, &kGet, &kServerChallenge), |
| 11962 TestRound(kGet, kSuccess, OK)}}, | 12039 TestRound(kGet, kSuccess, OK)}}, |
| 11963 // Non-Authenticating HTTPS server through an authenticating proxy. | 12040 // Non-Authenticating HTTPS server through an authenticating proxy. |
| 11964 {kProxy, | 12041 {__LINE__, |
| 12042 kProxy, | |
| 11965 AUTH_SYNC, | 12043 AUTH_SYNC, |
| 11966 OK, | 12044 OK, |
| 11967 kSecureServer, | 12045 kSecureServer, |
| 11968 AUTH_NONE, | 12046 AUTH_NONE, |
| 11969 OK, | 12047 OK, |
| 11970 2, | 12048 2, |
| 11971 1, | 12049 1, |
| 11972 {TestRound(kConnect, kProxyChallenge, OK), | 12050 {TestRound(kConnect, kProxyChallenge, OK), |
| 11973 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 12051 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11974 {kProxy, | 12052 {__LINE__, |
| 12053 kProxy, | |
| 11975 AUTH_SYNC, | 12054 AUTH_SYNC, |
| 11976 ERR_INVALID_AUTH_CREDENTIALS, | 12055 ERR_INVALID_AUTH_CREDENTIALS, |
| 11977 kSecureServer, | 12056 kSecureServer, |
| 11978 AUTH_NONE, | 12057 AUTH_NONE, |
| 11979 OK, | 12058 OK, |
| 11980 2, | 12059 2, |
| 11981 kNoSSL, | 12060 kNoSSL, |
| 11982 {TestRound(kConnect, kProxyChallenge, OK), | 12061 {TestRound(kConnect, kProxyChallenge, OK), |
| 11983 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 12062 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11984 {kProxy, | 12063 {__LINE__, |
| 12064 kProxy, | |
| 11985 AUTH_SYNC, | 12065 AUTH_SYNC, |
| 11986 ERR_UNSUPPORTED_AUTH_SCHEME, | 12066 ERR_UNSUPPORTED_AUTH_SCHEME, |
| 11987 kSecureServer, | 12067 kSecureServer, |
| 11988 AUTH_NONE, | 12068 AUTH_NONE, |
| 11989 OK, | 12069 OK, |
| 11990 2, | 12070 2, |
| 11991 kNoSSL, | 12071 kNoSSL, |
| 11992 {TestRound(kConnect, kProxyChallenge, OK), | 12072 {TestRound(kConnect, kProxyChallenge, OK), |
| 11993 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 12073 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 11994 {kProxy, | 12074 {__LINE__, |
| 12075 kProxy, | |
| 11995 AUTH_SYNC, | 12076 AUTH_SYNC, |
| 11996 ERR_UNEXPECTED, | 12077 ERR_UNEXPECTED, |
| 11997 kSecureServer, | 12078 kSecureServer, |
| 11998 AUTH_NONE, | 12079 AUTH_NONE, |
| 11999 OK, | 12080 OK, |
| 12000 2, | 12081 2, |
| 12001 kNoSSL, | 12082 kNoSSL, |
| 12002 {TestRound(kConnect, kProxyChallenge, OK), | 12083 {TestRound(kConnect, kProxyChallenge, OK), |
| 12003 TestRound(kConnect, kProxyConnected, ERR_UNEXPECTED)}}, | 12084 TestRound(kConnect, kProxyConnected, ERR_UNEXPECTED)}}, |
| 12004 {kProxy, | 12085 {__LINE__, |
| 12086 kProxy, | |
| 12005 AUTH_ASYNC, | 12087 AUTH_ASYNC, |
| 12006 OK, | 12088 OK, |
| 12007 kSecureServer, | 12089 kSecureServer, |
| 12008 AUTH_NONE, | 12090 AUTH_NONE, |
| 12009 OK, | 12091 OK, |
| 12010 2, | 12092 2, |
| 12011 1, | 12093 1, |
| 12012 {TestRound(kConnect, kProxyChallenge, OK), | 12094 {TestRound(kConnect, kProxyChallenge, OK), |
| 12013 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, | 12095 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 12014 {kProxy, | 12096 {__LINE__, |
| 12097 kProxy, | |
| 12015 AUTH_ASYNC, | 12098 AUTH_ASYNC, |
| 12016 ERR_INVALID_AUTH_CREDENTIALS, | 12099 ERR_INVALID_AUTH_CREDENTIALS, |
| 12017 kSecureServer, | 12100 kSecureServer, |
| 12018 AUTH_NONE, | 12101 AUTH_NONE, |
| 12019 OK, | 12102 OK, |
| 12020 2, | 12103 2, |
| 12021 kNoSSL, | 12104 kNoSSL, |
| 12022 {TestRound(kConnect, kProxyChallenge, OK), | 12105 {TestRound(kConnect, kProxyChallenge, OK), |
| 12023 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, | 12106 TestRound(kConnect, kProxyConnected, OK, &kGet, &kSuccess)}}, |
| 12024 // Authenticating HTTPS server through an authenticating proxy. | 12107 // Authenticating HTTPS server through an authenticating proxy. |
| 12025 {kProxy, | 12108 {__LINE__, |
| 12109 kProxy, | |
| 12026 AUTH_SYNC, | 12110 AUTH_SYNC, |
| 12027 OK, | 12111 OK, |
| 12028 kSecureServer, | 12112 kSecureServer, |
| 12029 AUTH_SYNC, | 12113 AUTH_SYNC, |
| 12030 OK, | 12114 OK, |
| 12031 3, | 12115 3, |
| 12032 1, | 12116 1, |
| 12033 {TestRound(kConnect, kProxyChallenge, OK), | 12117 {TestRound(kConnect, kProxyChallenge, OK), |
| 12034 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12118 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12035 &kServerChallenge), | 12119 &kServerChallenge), |
| 12036 TestRound(kGetAuth, kSuccess, OK)}}, | 12120 TestRound(kGetAuth, kSuccess, OK)}}, |
| 12037 {kProxy, | 12121 {__LINE__, |
| 12122 kProxy, | |
| 12038 AUTH_SYNC, | 12123 AUTH_SYNC, |
| 12039 OK, | 12124 OK, |
| 12040 kSecureServer, | 12125 kSecureServer, |
| 12041 AUTH_SYNC, | 12126 AUTH_SYNC, |
| 12042 ERR_INVALID_AUTH_CREDENTIALS, | 12127 ERR_INVALID_AUTH_CREDENTIALS, |
| 12043 3, | 12128 3, |
| 12044 1, | 12129 1, |
| 12045 {TestRound(kConnect, kProxyChallenge, OK), | 12130 {TestRound(kConnect, kProxyChallenge, OK), |
| 12046 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12131 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12047 &kServerChallenge), | 12132 &kServerChallenge), |
| 12048 TestRound(kGet, kSuccess, OK)}}, | 12133 TestRound(kGet, kSuccess, OK)}}, |
| 12049 {kProxy, | 12134 {__LINE__, |
| 12135 kProxy, | |
| 12050 AUTH_ASYNC, | 12136 AUTH_ASYNC, |
| 12051 OK, | 12137 OK, |
| 12052 kSecureServer, | 12138 kSecureServer, |
| 12053 AUTH_SYNC, | 12139 AUTH_SYNC, |
| 12054 OK, | 12140 OK, |
| 12055 3, | 12141 3, |
| 12056 1, | 12142 1, |
| 12057 {TestRound(kConnect, kProxyChallenge, OK), | 12143 {TestRound(kConnect, kProxyChallenge, OK), |
| 12058 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12144 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12059 &kServerChallenge), | 12145 &kServerChallenge), |
| 12060 TestRound(kGetAuth, kSuccess, OK)}}, | 12146 TestRound(kGetAuth, kSuccess, OK)}}, |
| 12061 {kProxy, | 12147 {__LINE__, |
| 12148 kProxy, | |
| 12062 AUTH_ASYNC, | 12149 AUTH_ASYNC, |
| 12063 OK, | 12150 OK, |
| 12064 kSecureServer, | 12151 kSecureServer, |
| 12065 AUTH_SYNC, | 12152 AUTH_SYNC, |
| 12066 ERR_INVALID_AUTH_CREDENTIALS, | 12153 ERR_INVALID_AUTH_CREDENTIALS, |
| 12067 3, | 12154 3, |
| 12068 1, | 12155 1, |
| 12069 {TestRound(kConnect, kProxyChallenge, OK), | 12156 {TestRound(kConnect, kProxyChallenge, OK), |
| 12070 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12157 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12071 &kServerChallenge), | 12158 &kServerChallenge), |
| 12072 TestRound(kGet, kSuccess, OK)}}, | 12159 TestRound(kGet, kSuccess, OK)}}, |
| 12073 {kProxy, | 12160 {__LINE__, |
| 12161 kProxy, | |
| 12074 AUTH_SYNC, | 12162 AUTH_SYNC, |
| 12075 OK, | 12163 OK, |
| 12076 kSecureServer, | 12164 kSecureServer, |
| 12077 AUTH_ASYNC, | 12165 AUTH_ASYNC, |
| 12078 OK, | 12166 OK, |
| 12079 3, | 12167 3, |
| 12080 1, | 12168 1, |
| 12081 {TestRound(kConnect, kProxyChallenge, OK), | 12169 {TestRound(kConnect, kProxyChallenge, OK), |
| 12082 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12170 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12083 &kServerChallenge), | 12171 &kServerChallenge), |
| 12084 TestRound(kGetAuth, kSuccess, OK)}}, | 12172 TestRound(kGetAuth, kSuccess, OK)}}, |
| 12085 {kProxy, | 12173 {__LINE__, |
| 12174 kProxy, | |
| 12086 AUTH_SYNC, | 12175 AUTH_SYNC, |
| 12087 OK, | 12176 OK, |
| 12088 kSecureServer, | 12177 kSecureServer, |
| 12089 AUTH_ASYNC, | 12178 AUTH_ASYNC, |
| 12090 ERR_INVALID_AUTH_CREDENTIALS, | 12179 ERR_INVALID_AUTH_CREDENTIALS, |
| 12091 3, | 12180 3, |
| 12092 1, | 12181 1, |
| 12093 {TestRound(kConnect, kProxyChallenge, OK), | 12182 {TestRound(kConnect, kProxyChallenge, OK), |
| 12094 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12183 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12095 &kServerChallenge), | 12184 &kServerChallenge), |
| 12096 TestRound(kGet, kSuccess, OK)}}, | 12185 TestRound(kGet, kSuccess, OK)}}, |
| 12097 {kProxy, | 12186 {__LINE__, |
| 12187 kProxy, | |
| 12098 AUTH_ASYNC, | 12188 AUTH_ASYNC, |
| 12099 OK, | 12189 OK, |
| 12100 kSecureServer, | 12190 kSecureServer, |
| 12101 AUTH_ASYNC, | 12191 AUTH_ASYNC, |
| 12102 OK, | 12192 OK, |
| 12103 3, | 12193 3, |
| 12104 1, | 12194 1, |
| 12105 {TestRound(kConnect, kProxyChallenge, OK), | 12195 {TestRound(kConnect, kProxyChallenge, OK), |
| 12106 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12196 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12107 &kServerChallenge), | 12197 &kServerChallenge), |
| 12108 TestRound(kGetAuth, kSuccess, OK)}}, | 12198 TestRound(kGetAuth, kSuccess, OK)}}, |
| 12109 {kProxy, | 12199 {__LINE__, |
| 12200 kProxy, | |
| 12110 AUTH_ASYNC, | 12201 AUTH_ASYNC, |
| 12111 OK, | 12202 OK, |
| 12112 kSecureServer, | 12203 kSecureServer, |
| 12113 AUTH_ASYNC, | 12204 AUTH_ASYNC, |
| 12114 ERR_INVALID_AUTH_CREDENTIALS, | 12205 ERR_INVALID_AUTH_CREDENTIALS, |
| 12115 3, | 12206 3, |
| 12116 1, | 12207 1, |
| 12117 {TestRound(kConnect, kProxyChallenge, OK), | 12208 {TestRound(kConnect, kProxyChallenge, OK), |
| 12118 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | 12209 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, |
| 12119 &kServerChallenge), | 12210 &kServerChallenge), |
| 12120 TestRound(kGet, kSuccess, OK)}}, | 12211 TestRound(kGet, kSuccess, OK)}}, |
| 12212 {__LINE__, | |
| 12213 kProxy, | |
| 12214 AUTH_ASYNC, | |
| 12215 ERR_INVALID_AUTH_CREDENTIALS, | |
| 12216 kSecureServer, | |
| 12217 AUTH_ASYNC, | |
| 12218 ERR_INVALID_AUTH_CREDENTIALS, | |
| 12219 4, | |
| 12220 2, | |
| 12221 {TestRound(kConnect, kProxyChallenge, OK), | |
| 12222 TestRound(kConnect, kProxyChallenge, OK), | |
| 12223 TestRound(kConnectProxyAuth, kProxyConnected, OK, &kGet, | |
| 12224 &kServerChallenge), | |
|
mmenke
2016/11/14 18:03:49
I don't understand what these extra reads/writes d
mmenke
2016/11/14 18:07:13
By "last test you modified", I mean the new test c
asanka
2016/11/14 18:49:53
Yeah, there's an extra "CONNECT" request in the mi
| |
| 12225 TestRound(kGet, kSuccess, OK)}}, | |
| 12121 }; | 12226 }; |
| 12122 | 12227 |
| 12123 for (size_t i = 0; i < arraysize(test_configs); ++i) { | 12228 for (const auto& test_config : test_configs) { |
| 12124 SCOPED_TRACE(::testing::Message() << "Test config " << i); | 12229 SCOPED_TRACE(::testing::Message() << "Test config at " |
| 12230 << test_config.line_number); | |
| 12125 HttpAuthHandlerMock::Factory* auth_factory( | 12231 HttpAuthHandlerMock::Factory* auth_factory( |
| 12126 new HttpAuthHandlerMock::Factory()); | 12232 new HttpAuthHandlerMock::Factory()); |
| 12127 session_deps_.http_auth_handler_factory.reset(auth_factory); | 12233 session_deps_.http_auth_handler_factory.reset(auth_factory); |
| 12128 SSLInfo empty_ssl_info; | 12234 SSLInfo empty_ssl_info; |
| 12129 const TestConfig& test_config = test_configs[i]; | |
| 12130 | 12235 |
| 12131 // Set up authentication handlers as necessary. | 12236 // Set up authentication handlers as necessary. |
| 12132 if (test_config.proxy_auth_timing != AUTH_NONE) { | 12237 if (test_config.proxy_auth_timing != AUTH_NONE) { |
| 12133 for (int n = 0; n < 2; n++) { | 12238 for (int n = 0; n < 3; n++) { |
| 12134 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 12239 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
| 12135 std::string auth_challenge = "Mock realm=proxy"; | 12240 std::string auth_challenge = "Mock realm=proxy"; |
| 12136 GURL origin(test_config.proxy_url); | 12241 GURL origin(test_config.proxy_url); |
| 12137 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 12242 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
| 12138 auth_challenge.end()); | 12243 auth_challenge.end()); |
| 12139 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_PROXY, | 12244 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_PROXY, |
| 12140 empty_ssl_info, origin, | 12245 empty_ssl_info, origin, |
| 12141 NetLogWithSource()); | 12246 NetLogWithSource()); |
| 12142 auth_handler->SetGenerateExpectation( | 12247 auth_handler->SetGenerateExpectation( |
| 12143 test_config.proxy_auth_timing == AUTH_ASYNC, | 12248 test_config.proxy_auth_timing == AUTH_ASYNC, |
| 12144 test_config.proxy_auth_rv); | 12249 n == 0 ? test_config.proxy_auth_rv : OK); |
| 12145 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); | 12250 auth_factory->AddMockHandler(auth_handler, HttpAuth::AUTH_PROXY); |
| 12146 } | 12251 } |
| 12147 } | 12252 } |
| 12148 if (test_config.server_auth_timing != AUTH_NONE) { | 12253 if (test_config.server_auth_timing != AUTH_NONE) { |
| 12149 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); | 12254 HttpAuthHandlerMock* auth_handler(new HttpAuthHandlerMock()); |
| 12150 std::string auth_challenge = "Mock realm=server"; | 12255 std::string auth_challenge = "Mock realm=server"; |
| 12151 GURL origin(test_config.server_url); | 12256 GURL origin(test_config.server_url); |
| 12152 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), | 12257 HttpAuthChallengeTokenizer tokenizer(auth_challenge.begin(), |
| 12153 auth_challenge.end()); | 12258 auth_challenge.end()); |
| 12154 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, | 12259 auth_handler->InitFromChallenge(&tokenizer, HttpAuth::AUTH_SERVER, |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12359 // First round of authentication. | 12464 // First round of authentication. |
| 12360 auth_handler->SetGenerateExpectation(false, OK); | 12465 auth_handler->SetGenerateExpectation(false, OK); |
| 12361 rv = trans.Start(&request, callback.callback(), NetLogWithSource()); | 12466 rv = trans.Start(&request, callback.callback(), NetLogWithSource()); |
| 12362 if (rv == ERR_IO_PENDING) | 12467 if (rv == ERR_IO_PENDING) |
| 12363 rv = callback.WaitForResult(); | 12468 rv = callback.WaitForResult(); |
| 12364 EXPECT_THAT(rv, IsOk()); | 12469 EXPECT_THAT(rv, IsOk()); |
| 12365 response = trans.GetResponseInfo(); | 12470 response = trans.GetResponseInfo(); |
| 12366 ASSERT_TRUE(response); | 12471 ASSERT_TRUE(response); |
| 12367 EXPECT_TRUE(response->auth_challenge); | 12472 EXPECT_TRUE(response->auth_challenge); |
| 12368 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); | 12473 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
| 12474 EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, | |
| 12475 auth_handler->state()); | |
| 12369 | 12476 |
| 12370 // In between rounds, another request comes in for the same domain. | 12477 // In between rounds, another request comes in for the same domain. |
| 12371 // It should not be able to grab the TCP socket that trans has already | 12478 // It should not be able to grab the TCP socket that trans has already |
| 12372 // claimed. | 12479 // claimed. |
| 12373 HttpNetworkTransaction trans_compete(DEFAULT_PRIORITY, session.get()); | 12480 HttpNetworkTransaction trans_compete(DEFAULT_PRIORITY, session.get()); |
| 12374 TestCompletionCallback callback_compete; | 12481 TestCompletionCallback callback_compete; |
| 12375 rv = trans_compete.Start(&request, callback_compete.callback(), | 12482 rv = trans_compete.Start(&request, callback_compete.callback(), |
| 12376 NetLogWithSource()); | 12483 NetLogWithSource()); |
| 12377 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 12484 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
| 12378 // callback_compete.WaitForResult at this point would stall forever, | 12485 // callback_compete.WaitForResult at this point would stall forever, |
| 12379 // since the HttpNetworkTransaction does not release the request back to | 12486 // since the HttpNetworkTransaction does not release the request back to |
| 12380 // the pool until after authentication completes. | 12487 // the pool until after authentication completes. |
| 12381 | 12488 |
| 12382 // Second round of authentication. | 12489 // Second round of authentication. |
| 12383 auth_handler->SetGenerateExpectation(false, OK); | 12490 auth_handler->SetGenerateExpectation(false, OK); |
| 12384 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); | 12491 rv = trans.RestartWithAuth(AuthCredentials(kFoo, kBar), callback.callback()); |
| 12385 if (rv == ERR_IO_PENDING) | 12492 if (rv == ERR_IO_PENDING) |
| 12386 rv = callback.WaitForResult(); | 12493 rv = callback.WaitForResult(); |
| 12387 EXPECT_THAT(rv, IsOk()); | 12494 EXPECT_THAT(rv, IsOk()); |
| 12388 response = trans.GetResponseInfo(); | 12495 response = trans.GetResponseInfo(); |
| 12389 ASSERT_TRUE(response); | 12496 ASSERT_TRUE(response); |
| 12390 EXPECT_FALSE(response->auth_challenge); | 12497 EXPECT_FALSE(response->auth_challenge); |
| 12391 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); | 12498 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
| 12499 EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, | |
| 12500 auth_handler->state()); | |
| 12392 | 12501 |
| 12393 // Third round of authentication. | 12502 // Third round of authentication. |
| 12394 auth_handler->SetGenerateExpectation(false, OK); | 12503 auth_handler->SetGenerateExpectation(false, OK); |
| 12395 rv = trans.RestartWithAuth(AuthCredentials(), callback.callback()); | 12504 rv = trans.RestartWithAuth(AuthCredentials(), callback.callback()); |
| 12396 if (rv == ERR_IO_PENDING) | 12505 if (rv == ERR_IO_PENDING) |
| 12397 rv = callback.WaitForResult(); | 12506 rv = callback.WaitForResult(); |
| 12398 EXPECT_THAT(rv, IsOk()); | 12507 EXPECT_THAT(rv, IsOk()); |
| 12399 response = trans.GetResponseInfo(); | 12508 response = trans.GetResponseInfo(); |
| 12400 ASSERT_TRUE(response); | 12509 ASSERT_TRUE(response); |
| 12401 EXPECT_FALSE(response->auth_challenge); | 12510 EXPECT_FALSE(response->auth_challenge); |
| 12402 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); | 12511 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
| 12512 EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_GENERATE_AUTH_TOKEN, | |
| 12513 auth_handler->state()); | |
| 12403 | 12514 |
| 12404 // Fourth round of authentication, which completes successfully. | 12515 // Fourth round of authentication, which completes successfully. |
| 12405 auth_handler->SetGenerateExpectation(false, OK); | 12516 auth_handler->SetGenerateExpectation(false, OK); |
| 12406 rv = trans.RestartWithAuth(AuthCredentials(), callback.callback()); | 12517 rv = trans.RestartWithAuth(AuthCredentials(), callback.callback()); |
| 12407 if (rv == ERR_IO_PENDING) | 12518 if (rv == ERR_IO_PENDING) |
| 12408 rv = callback.WaitForResult(); | 12519 rv = callback.WaitForResult(); |
| 12409 EXPECT_THAT(rv, IsOk()); | 12520 EXPECT_THAT(rv, IsOk()); |
| 12410 response = trans.GetResponseInfo(); | 12521 response = trans.GetResponseInfo(); |
| 12411 ASSERT_TRUE(response); | 12522 ASSERT_TRUE(response); |
| 12412 EXPECT_FALSE(response->auth_challenge); | 12523 EXPECT_FALSE(response->auth_challenge); |
| 12413 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); | 12524 EXPECT_EQ(0, transport_pool->IdleSocketCountInGroup(kSocketGroup)); |
| 12414 | 12525 |
| 12526 // In WAIT_FOR_CHALLENGE, although in reality the auth handler is done. A real | |
| 12527 // auth handler should transition to a DONE state in concert with the remote | |
| 12528 // server. But that's not something we can test here with a mock handler. | |
| 12529 EXPECT_EQ(HttpAuthHandlerMock::State::WAIT_FOR_CHALLENGE, | |
| 12530 auth_handler->state()); | |
| 12531 | |
| 12415 // Read the body since the fourth round was successful. This will also | 12532 // Read the body since the fourth round was successful. This will also |
| 12416 // release the socket back to the pool. | 12533 // release the socket back to the pool. |
| 12417 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(50)); | 12534 scoped_refptr<IOBufferWithSize> io_buf(new IOBufferWithSize(50)); |
| 12418 rv = trans.Read(io_buf.get(), io_buf->size(), callback.callback()); | 12535 rv = trans.Read(io_buf.get(), io_buf->size(), callback.callback()); |
| 12419 if (rv == ERR_IO_PENDING) | 12536 if (rv == ERR_IO_PENDING) |
| 12420 rv = callback.WaitForResult(); | 12537 rv = callback.WaitForResult(); |
| 12421 EXPECT_EQ(3, rv); | 12538 EXPECT_EQ(3, rv); |
| 12422 rv = trans.Read(io_buf.get(), io_buf->size(), callback.callback()); | 12539 rv = trans.Read(io_buf.get(), io_buf->size(), callback.callback()); |
| 12423 EXPECT_EQ(0, rv); | 12540 EXPECT_EQ(0, rv); |
| 12424 // There are still 0 idle sockets, since the trans_compete transaction | 12541 // There are still 0 idle sockets, since the trans_compete transaction |
| (...skipping 3971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 16396 base::RunLoop().RunUntilIdle(); | 16513 base::RunLoop().RunUntilIdle(); |
| 16397 | 16514 |
| 16398 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); | 16515 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); |
| 16399 HttpRequestHeaders headers; | 16516 HttpRequestHeaders headers; |
| 16400 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 16517 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 16401 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); | 16518 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); |
| 16402 } | 16519 } |
| 16403 #endif // !defined(OS_IOS) | 16520 #endif // !defined(OS_IOS) |
| 16404 | 16521 |
| 16405 } // namespace net | 16522 } // namespace net |
| OLD | NEW |