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

Side by Side Diff: net/http/http_auth_sspi_win_unittest.cc

Issue 1408433006: Support tls-server-end-point channel bindings for HTTP authentication. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Narrower dependencies, update comments, address review comments. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/base/net_errors.h" 5 #include "net/base/net_errors.h"
6 #include "net/http/http_auth_challenge_tokenizer.h" 6 #include "net/http/http_auth_challenge_tokenizer.h"
7 #include "net/http/http_auth_sspi_win.h" 7 #include "net/http/http_auth_sspi_win.h"
8 #include "net/http/mock_sspi_library_win.h" 8 #include "net/http/mock_sspi_library_win.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 NEGOSSP_NAME, kMaxTokenLength); 82 NEGOSSP_NAME, kMaxTokenLength);
83 std::string first_challenge_text = "Negotiate"; 83 std::string first_challenge_text = "Negotiate";
84 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), 84 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
85 first_challenge_text.end()); 85 first_challenge_text.end());
86 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, 86 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
87 auth_sspi.ParseChallenge(&first_challenge)); 87 auth_sspi.ParseChallenge(&first_challenge));
88 88
89 // Generate an auth token and create another thing. 89 // Generate an auth token and create another thing.
90 std::string auth_token; 90 std::string auth_token;
91 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", 91 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com",
92 &auth_token, 92 std::string(), &auth_token,
93 base::Bind(&UnexpectedCallback))); 93 base::Bind(&UnexpectedCallback)));
94 94
95 std::string second_challenge_text = "Negotiate Zm9vYmFy"; 95 std::string second_challenge_text = "Negotiate Zm9vYmFy";
96 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), 96 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(),
97 second_challenge_text.end()); 97 second_challenge_text.end());
98 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, 98 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
99 auth_sspi.ParseChallenge(&second_challenge)); 99 auth_sspi.ParseChallenge(&second_challenge));
100 } 100 }
101 101
102 TEST(HttpAuthSSPITest, ParseChallenge_UnexpectedTokenFirstRound) { 102 TEST(HttpAuthSSPITest, ParseChallenge_UnexpectedTokenFirstRound) {
(...skipping 16 matching lines...) Expand all
119 HttpAuthSSPI auth_sspi(&mock_library, "Negotiate", 119 HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
120 NEGOSSP_NAME, kMaxTokenLength); 120 NEGOSSP_NAME, kMaxTokenLength);
121 std::string first_challenge_text = "Negotiate"; 121 std::string first_challenge_text = "Negotiate";
122 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), 122 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
123 first_challenge_text.end()); 123 first_challenge_text.end());
124 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, 124 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
125 auth_sspi.ParseChallenge(&first_challenge)); 125 auth_sspi.ParseChallenge(&first_challenge));
126 126
127 std::string auth_token; 127 std::string auth_token;
128 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", 128 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com",
129 &auth_token, 129 std::string(), &auth_token,
130 base::Bind(&UnexpectedCallback))); 130 base::Bind(&UnexpectedCallback)));
131 std::string second_challenge_text = "Negotiate"; 131 std::string second_challenge_text = "Negotiate";
132 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), 132 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(),
133 second_challenge_text.end()); 133 second_challenge_text.end());
134 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT, 134 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT,
135 auth_sspi.ParseChallenge(&second_challenge)); 135 auth_sspi.ParseChallenge(&second_challenge));
136 } 136 }
137 137
138 TEST(HttpAuthSSPITest, ParseChallenge_NonBase64EncodedToken) { 138 TEST(HttpAuthSSPITest, ParseChallenge_NonBase64EncodedToken) {
139 // If a later-round challenge has an invalid base64 encoded token, it should 139 // If a later-round challenge has an invalid base64 encoded token, it should
140 // be treated as an invalid challenge. 140 // be treated as an invalid challenge.
141 MockSSPILibrary mock_library; 141 MockSSPILibrary mock_library;
142 HttpAuthSSPI auth_sspi(&mock_library, "Negotiate", 142 HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
143 NEGOSSP_NAME, kMaxTokenLength); 143 NEGOSSP_NAME, kMaxTokenLength);
144 std::string first_challenge_text = "Negotiate"; 144 std::string first_challenge_text = "Negotiate";
145 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(), 145 HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
146 first_challenge_text.end()); 146 first_challenge_text.end());
147 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT, 147 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
148 auth_sspi.ParseChallenge(&first_challenge)); 148 auth_sspi.ParseChallenge(&first_challenge));
149 149
150 std::string auth_token; 150 std::string auth_token;
151 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com", 151 EXPECT_EQ(OK, auth_sspi.GenerateAuthToken(NULL, "HTTP/intranet.google.com",
152 &auth_token, 152 std::string(), &auth_token,
153 base::Bind(&UnexpectedCallback))); 153 base::Bind(&UnexpectedCallback)));
154 std::string second_challenge_text = "Negotiate =happyjoy="; 154 std::string second_challenge_text = "Negotiate =happyjoy=";
155 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(), 155 HttpAuthChallengeTokenizer second_challenge(second_challenge_text.begin(),
156 second_challenge_text.end()); 156 second_challenge_text.end());
157 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID, 157 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID,
158 auth_sspi.ParseChallenge(&second_challenge)); 158 auth_sspi.ParseChallenge(&second_challenge));
159 } 159 }
160 160
161 } // namespace net 161 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698