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

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

Issue 1128043007: Support Kerberos on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Android GN build Created 5 years, 6 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/http/http_auth_challenge_tokenizer.h"
6 #include "net/http/http_auth_handler_negotiate_parse.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace net {
10
11 TEST(HttpAuthHandlerNegotiateParseTest, ParseFirstNegotiateChallenge) {
12 // The first round should just consist of an unadorned header with the scheme
13 // name.
14 std::string challenge_text = "DummyScheme";
15 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
16 challenge_text.end());
17 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
18 ParseFirstNegotiateChallenge("dummyscheme", &challenge));
19 }
20
21 TEST(HttpAuthHandlerNegotiateParseTest,
22 ParseFirstNegotiateChallenge_UnexpectedToken) {
23 // If the first round challenge has an additional authentication token, it
24 // should be treated as an invalid challenge from the server.
25 std::string challenge_text = "Negotiate Zm9vYmFy";
26 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
27 challenge_text.end());
28 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID,
29 ParseFirstNegotiateChallenge("negotiate", &challenge));
30 }
31
32 TEST(HttpAuthHandlerNegotiateParseTest,
33 ParseFirstNegotiateChallenge_BadScheme) {
34 std::string challenge_text = "DummyScheme";
35 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
36 challenge_text.end());
37 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID,
38 ParseFirstNegotiateChallenge("negotiate", &challenge));
39 }
40
41 TEST(HttpAuthHandlerNegotiateParseTest, ParseAnotherNegotiateChallenge) {
42 // Later rounds should always have a Base64 encoded token.
43 std::string challenge_text = "Negotiate Zm9vYmFy";
44 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
45 challenge_text.end());
46 std::string encoded_token;
47 std::string decoded_token;
48 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_ACCEPT,
49 ParseAnotherNegotiateChallenge("negotiate", &challenge,
50 &encoded_token, &decoded_token));
51 EXPECT_EQ("Zm9vYmFy", encoded_token);
52 EXPECT_EQ("foobar", decoded_token);
53 }
54
55 TEST(HttpAuthHandlerNegotiateParseTest,
56 ParseAnotherNegotiateChallenge_MissingToken) {
57 std::string challenge_text = "Negotiate";
58 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
59 challenge_text.end());
60 std::string encoded_token;
61 std::string decoded_token;
62 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_REJECT,
63 ParseAnotherNegotiateChallenge("negotiate", &challenge,
64 &encoded_token, &decoded_token));
65 }
66
67 TEST(HttpAuthHandlerNegotiateParseTest,
68 ParseAnotherNegotiateChallenge_InvalidToken) {
69 std::string challenge_text = "Negotiate ***";
70 HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
71 challenge_text.end());
72 std::string encoded_token;
73 std::string decoded_token;
74 EXPECT_EQ(HttpAuth::AUTHORIZATION_RESULT_INVALID,
75 ParseAnotherNegotiateChallenge("negotiate", &challenge,
76 &encoded_token, &decoded_token));
77 }
78 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698