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

Unified Diff: net/http/http_auth_handler_basic_unittest.cc

Issue 1393693002: [net/http auth] Split HttpAuthHandler creation from initialization. Base URL: https://chromium.googlesource.com/chromium/src.git@rename-auth-handler-methods
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_auth_handler_basic.cc ('k') | net/http/http_auth_handler_digest.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_auth_handler_basic_unittest.cc
diff --git a/net/http/http_auth_handler_basic_unittest.cc b/net/http/http_auth_handler_basic_unittest.cc
index de173cb0b64db7a06110ebed8fb8f9d5a2c3b6c5..0c2f1297ea1e937eb14b4920b56fe75a64347e51 100644
--- a/net/http/http_auth_handler_basic_unittest.cc
+++ b/net/http/http_auth_handler_basic_unittest.cc
@@ -35,9 +35,12 @@ TEST(HttpAuthHandlerBasicTest, GenerateAuthToken) {
HttpAuthHandlerBasic::Factory factory;
for (size_t i = 0; i < arraysize(tests); ++i) {
std::string challenge = "Basic realm=\"Atlantis\"";
- scoped_ptr<HttpAuthHandler> basic;
- EXPECT_EQ(OK, factory.CreateAuthHandlerFromString(
- challenge, HttpAuth::AUTH_SERVER, origin, BoundNetLog(), &basic));
+ scoped_ptr<HttpAuthHandler> basic =
+ factory.CreateAuthHandlerForScheme("basic");
+ ASSERT_TRUE(basic);
+ HttpAuthChallengeTokenizer tokenizer(challenge.begin(), challenge.end());
+ EXPECT_EQ(OK, basic->HandleInitialChallenge(
+ tokenizer, HttpAuth::AUTH_SERVER, origin, BoundNetLog()));
AuthCredentials credentials(base::ASCIIToUTF16(tests[i].username),
base::ASCIIToUTF16(tests[i].password));
HttpRequestInfo request_info;
@@ -87,10 +90,13 @@ TEST(HttpAuthHandlerBasicTest, HandleAnotherChallenge) {
GURL origin("http://www.example.com");
HttpAuthHandlerBasic::Factory factory;
- scoped_ptr<HttpAuthHandler> basic;
- EXPECT_EQ(OK, factory.CreateAuthHandlerFromString(
- tests[0].challenge, HttpAuth::AUTH_SERVER, origin,
- BoundNetLog(), &basic));
+ scoped_ptr<HttpAuthHandler> basic =
+ factory.CreateAuthHandlerForScheme("basic");
+ std::string initial_challenge(tests[0].challenge);
+ HttpAuthChallengeTokenizer tokenizer(initial_challenge.begin(),
+ initial_challenge.end());
+ EXPECT_EQ(OK, basic->HandleInitialChallenge(tokenizer, HttpAuth::AUTH_SERVER,
+ origin, BoundNetLog()));
for (size_t i = 0; i < arraysize(tests); ++i) {
std::string challenge(tests[i].challenge);
@@ -160,13 +166,6 @@ TEST(HttpAuthHandlerBasicTest, HandleInitialChallenge) {
},
#endif
- // The parser fails when the first token is not "Basic".
- {
- "Negotiate",
- ERR_INVALID_RESPONSE,
- ""
- },
-
// Although RFC 2617 isn't explicit about this case, if there is
// more than one realm directive, we pick the last one.
{
@@ -187,13 +186,48 @@ TEST(HttpAuthHandlerBasicTest, HandleInitialChallenge) {
GURL origin("http://www.example.com");
for (size_t i = 0; i < arraysize(tests); ++i) {
std::string challenge = tests[i].challenge;
- scoped_ptr<HttpAuthHandler> basic;
- int rv = factory.CreateAuthHandlerFromString(
- challenge, HttpAuth::AUTH_SERVER, origin, BoundNetLog(), &basic);
+ scoped_ptr<HttpAuthHandler> basic =
+ factory.CreateAuthHandlerForScheme("basic");
+ HttpAuthChallengeTokenizer tokenizer(challenge.begin(), challenge.end());
+ int rv = basic->HandleInitialChallenge(tokenizer, HttpAuth::AUTH_SERVER,
+ origin, BoundNetLog());
EXPECT_EQ(tests[i].expected_rv, rv);
if (rv == OK)
EXPECT_EQ(tests[i].expected_realm, basic->realm());
}
}
+TEST(HttpAuthHandlerBasicTest, CreateAuthHandlerForScheme) {
+ HttpAuthHandlerBasic::Factory basic_factory;
+
+ EXPECT_TRUE(basic_factory.CreateAuthHandlerForScheme("basic"));
+ EXPECT_FALSE(basic_factory.CreateAuthHandlerForScheme("bogus"));
+}
+
+TEST(HttpAuthHandlerBasicTest, CreateAndInitPreemptiveAuthHandler_Valid) {
+ HttpAuthHandlerBasic::Factory digest_factory;
+ HttpAuthCache auth_cache;
+ std::string challenge("basic realm=\"Foo\"");
+ HttpAuthChallengeTokenizer tokenizer(challenge.begin(), challenge.end());
+
+ HttpAuthCache::Entry* entry =
+ auth_cache.Add(GURL("http://example.com/foo").GetOrigin(), "foo", "basic",
+ challenge, AuthCredentials(), "/foo");
+ EXPECT_TRUE(digest_factory.CreateAndInitPreemptiveAuthHandler(
+ entry, tokenizer, HttpAuth::AUTH_SERVER, BoundNetLog()));
+}
+
+TEST(HttpAuthHandlerBasicTest, CreateAndInitPreemptiveAuthHandler_Invalid) {
+ HttpAuthHandlerBasic::Factory digest_factory;
+ HttpAuthCache auth_cache;
+ std::string challenge("digest realm=\"foo\"");
+ HttpAuthChallengeTokenizer tokenizer(challenge.begin(), challenge.end());
+
+ HttpAuthCache::Entry* entry =
+ auth_cache.Add(GURL("http://example.com").GetOrigin(), "bar", "digest",
+ challenge, AuthCredentials(), "/bar");
+ EXPECT_FALSE(digest_factory.CreateAndInitPreemptiveAuthHandler(
+ entry, tokenizer, HttpAuth::AUTH_SERVER, BoundNetLog()));
+}
+
} // namespace net
« no previous file with comments | « net/http/http_auth_handler_basic.cc ('k') | net/http/http_auth_handler_digest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698