diff options
author | davidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-13 00:43:24 +0000 |
---|---|---|
committer | davidben@chromium.org <davidben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-13 00:43:24 +0000 |
commit | df41d0d839ab3ef1884b35a824179b9cd1a3c1b2 (patch) | |
tree | 7f75bab154a66a71bc770ca3b0022ca1b5751b28 /net/http/http_auth_unittest.cc | |
parent | 69c5613f1bc410b0fcfa5e16128c388a0e579e40 (diff) | |
download | chromium_src-df41d0d839ab3ef1884b35a824179b9cd1a3c1b2.zip chromium_src-df41d0d839ab3ef1884b35a824179b9cd1a3c1b2.tar.gz chromium_src-df41d0d839ab3ef1884b35a824179b9cd1a3c1b2.tar.bz2 |
Move HttpAuth::ChallengeTokenizer to its own file.
Avoids a circulate dependency in preparation of using this tokenizer to strip
private data from net-export logs.
BUG=349502
Review URL: https://codereview.chromium.org/191563004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256715 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_auth_unittest.cc')
-rw-r--r-- | net/http/http_auth_unittest.cc | 170 |
1 files changed, 2 insertions, 168 deletions
diff --git a/net/http/http_auth_unittest.cc b/net/http/http_auth_unittest.cc index 6f1471d..cf68fa8 100644 --- a/net/http/http_auth_unittest.cc +++ b/net/http/http_auth_unittest.cc @@ -11,6 +11,7 @@ #include "net/base/net_errors.h" #include "net/dns/mock_host_resolver.h" #include "net/http/http_auth.h" +#include "net/http/http_auth_challenge_tokenizer.h" #include "net/http/http_auth_filter.h" #include "net/http/http_auth_handler.h" #include "net/http/http_auth_handler_factory.h" @@ -28,7 +29,7 @@ HttpAuthHandlerMock* CreateMockHandler(bool connection_based) { HttpAuthHandlerMock* auth_handler = new HttpAuthHandlerMock(); auth_handler->set_connection_based(connection_based); std::string challenge_text = "Basic"; - HttpAuth::ChallengeTokenizer challenge(challenge_text.begin(), + HttpAuthChallengeTokenizer challenge(challenge_text.begin(), challenge_text.end()); GURL origin("www.example.com"); EXPECT_TRUE(auth_handler->InitFromChallenge(&challenge, @@ -245,173 +246,6 @@ TEST(HttpAuthTest, HandleChallengeResponse) { EXPECT_EQ("Mock token_a", challenge_used); } -TEST(HttpAuthTest, ChallengeTokenizer) { - std::string challenge_str = "Basic realm=\"foobar\""; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Basic"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("foobar"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a name=value property with no quote marks. -TEST(HttpAuthTest, ChallengeTokenizerNoQuotes) { - std::string challenge_str = "Basic realm=foobar@baz.com"; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Basic"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("foobar@baz.com"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a name=value property with mismatching quote marks. -TEST(HttpAuthTest, ChallengeTokenizerMismatchedQuotes) { - std::string challenge_str = "Basic realm=\"foobar@baz.com"; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Basic"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("foobar@baz.com"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a name= property without a value and with mismatching quote marks. -TEST(HttpAuthTest, ChallengeTokenizerMismatchedQuotesNoValue) { - std::string challenge_str = "Basic realm=\""; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Basic"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string(), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a name=value property with mismatching quote marks and spaces in the -// value. -TEST(HttpAuthTest, ChallengeTokenizerMismatchedQuotesSpaces) { - std::string challenge_str = "Basic realm=\"foo bar"; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Basic"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("foo bar"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use multiple name=value properties with mismatching quote marks in the last -// value. -TEST(HttpAuthTest, ChallengeTokenizerMismatchedQuotesMultiple) { - std::string challenge_str = "Digest qop=auth-int, algorithm=md5, realm=\"foo"; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Digest"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("qop"), parameters.name()); - EXPECT_EQ(std::string("auth-int"), parameters.value()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("algorithm"), parameters.name()); - EXPECT_EQ(std::string("md5"), parameters.value()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("foo"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a name= property which has no value. -TEST(HttpAuthTest, ChallengeTokenizerNoValue) { - std::string challenge_str = "Digest qop="; - HttpAuth::ChallengeTokenizer challenge( - challenge_str.begin(), challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Digest"), challenge.scheme()); - EXPECT_FALSE(parameters.GetNext()); - EXPECT_FALSE(parameters.valid()); -} - -// Specify multiple properties, comma separated. -TEST(HttpAuthTest, ChallengeTokenizerMultiple) { - std::string challenge_str = - "Digest algorithm=md5, realm=\"Oblivion\", qop=auth-int"; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("Digest"), challenge.scheme()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("algorithm"), parameters.name()); - EXPECT_EQ(std::string("md5"), parameters.value()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("realm"), parameters.name()); - EXPECT_EQ(std::string("Oblivion"), parameters.value()); - EXPECT_TRUE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("qop"), parameters.name()); - EXPECT_EQ(std::string("auth-int"), parameters.value()); - EXPECT_FALSE(parameters.GetNext()); - EXPECT_TRUE(parameters.valid()); -} - -// Use a challenge which has no property. -TEST(HttpAuthTest, ChallengeTokenizerNoProperty) { - std::string challenge_str = "NTLM"; - HttpAuth::ChallengeTokenizer challenge( - challenge_str.begin(), challenge_str.end()); - HttpUtil::NameValuePairsIterator parameters = challenge.param_pairs(); - - EXPECT_TRUE(parameters.valid()); - EXPECT_EQ(std::string("NTLM"), challenge.scheme()); - EXPECT_FALSE(parameters.GetNext()); -} - -// Use a challenge with Base64 encoded token. -TEST(HttpAuthTest, ChallengeTokenizerBase64) { - std::string challenge_str = "NTLM SGVsbG8sIFdvcmxkCg==="; - HttpAuth::ChallengeTokenizer challenge(challenge_str.begin(), - challenge_str.end()); - - EXPECT_EQ(std::string("NTLM"), challenge.scheme()); - // Notice the two equal statements below due to padding removal. - EXPECT_EQ(std::string("SGVsbG8sIFdvcmxkCg=="), challenge.base64_param()); -} - TEST(HttpAuthTest, GetChallengeHeaderName) { std::string name; |