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 |