| Index: net/http/http_auth_handler_negotiate_unittest.cc
|
| diff --git a/net/http/http_auth_handler_negotiate_unittest.cc b/net/http/http_auth_handler_negotiate_unittest.cc
|
| index eaee8e5f40a6ace0affe30fd5813ee21eb17f9f0..49ebdad62adb5173e02d99f1bd679bcb662e4cad 100644
|
| --- a/net/http/http_auth_handler_negotiate_unittest.cc
|
| +++ b/net/http/http_auth_handler_negotiate_unittest.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "net/http/http_auth_handler_negotiate.h"
|
|
|
| +#include <string>
|
| +
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "net/base/net_errors.h"
|
| @@ -11,7 +13,9 @@
|
| #include "net/dns/mock_host_resolver.h"
|
| #include "net/http/http_request_info.h"
|
| #include "net/http/mock_allow_url_security_manager.h"
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_ANDROID)
|
| +#include "net/android/dummy_spnego_authenticator.h"
|
| +#elif defined(OS_WIN)
|
| #include "net/http/mock_sspi_library_win.h"
|
| #elif defined(OS_POSIX)
|
| #include "net/http/mock_gssapi_library_posix.h"
|
| @@ -21,7 +25,9 @@
|
|
|
| namespace net {
|
|
|
| -#if defined(OS_WIN)
|
| +#if defined(OS_ANDROID)
|
| +typedef net::android::DummySpnegoAuthenticator MockAuthLibrary;
|
| +#elif defined(OS_WIN)
|
| typedef MockSSPILibrary MockAuthLibrary;
|
| #elif defined(OS_POSIX)
|
| typedef test::MockGSSAPILibrary MockAuthLibrary;
|
| @@ -38,10 +44,22 @@ class HttpAuthHandlerNegotiateTest : public PlatformTest {
|
| url_security_manager_.reset(new MockAllowURLSecurityManager());
|
| factory_.reset(new HttpAuthHandlerNegotiate::Factory());
|
| factory_->set_url_security_manager(url_security_manager_.get());
|
| +#if defined(OS_ANDROID)
|
| + std::string* authenticator =
|
| + new std::string("org.chromium.test.DummySpnegoAuthenticator");
|
| + factory_->set_library(authenticator);
|
| + MockAuthLibrary::EnsureTestAccountExists();
|
| +#endif
|
| +#if defined(OS_WIN) || (defined(OS_POSIX) && !defined(OS_ANDROID))
|
| factory_->set_library(auth_library_);
|
| +#endif
|
| factory_->set_host_resolver(resolver_.get());
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| + void TearDown() override { MockAuthLibrary::RemoveTestAccounts(); }
|
| +#endif
|
| +
|
| void SetupMocks(MockAuthLibrary* mock_library) {
|
| #if defined(OS_WIN)
|
| security_package_.reset(new SecPkgInfoW);
|
| @@ -113,21 +131,21 @@ class HttpAuthHandlerNegotiateTest : public PlatformTest {
|
| 0, // Context flags
|
| 1, // Locally initiated
|
| 1); // Open
|
| - test::MockGSSAPILibrary::SecurityContextQuery queries[] = {
|
| - test::MockGSSAPILibrary::SecurityContextQuery(
|
| - "Negotiate", // Package name
|
| - GSS_S_CONTINUE_NEEDED, // Major response code
|
| - 0, // Minor response code
|
| - context1, // Context
|
| - NULL, // Expected input token
|
| - kAuthResponse), // Output token
|
| - test::MockGSSAPILibrary::SecurityContextQuery(
|
| - "Negotiate", // Package name
|
| - GSS_S_COMPLETE, // Major response code
|
| - 0, // Minor response code
|
| - context2, // Context
|
| - kAuthResponse, // Expected input token
|
| - kAuthResponse) // Output token
|
| + MockAuthLibrary::SecurityContextQuery queries[] = {
|
| + MockAuthLibrary::SecurityContextQuery(
|
| + "Negotiate", // Package name
|
| + GSS_S_CONTINUE_NEEDED, // Major response code
|
| + 0, // Minor response code
|
| + context1, // Context
|
| + NULL, // Expected input token
|
| + kAuthResponse), // Output token
|
| + MockAuthLibrary::SecurityContextQuery(
|
| + "Negotiate", // Package name
|
| + GSS_S_COMPLETE, // Major response code
|
| + 0, // Minor response code
|
| + context2, // Context
|
| + kAuthResponse, // Expected input token
|
| + kAuthResponse) // Output token
|
| };
|
|
|
| for (size_t i = 0; i < arraysize(queries); ++i) {
|
| @@ -154,13 +172,13 @@ class HttpAuthHandlerNegotiateTest : public PlatformTest {
|
| 0, // Context flags
|
| 1, // Locally initiated
|
| 0); // Open
|
| - test::MockGSSAPILibrary::SecurityContextQuery query(
|
| - "Negotiate", // Package name
|
| - major_status, // Major response code
|
| - minor_status, // Minor response code
|
| - context, // Context
|
| - NULL, // Expected input token
|
| - NULL); // Output token
|
| + MockAuthLibrary::SecurityContextQuery query(
|
| + "Negotiate", // Package name
|
| + major_status, // Major response code
|
| + minor_status, // Minor response code
|
| + context, // Context
|
| + NULL, // Expected input token
|
| + NULL); // Output token
|
|
|
| mock_library->ExpectSecurityContext(query.expected_package,
|
| query.response_code,
|
| @@ -223,8 +241,8 @@ TEST_F(HttpAuthHandlerNegotiateTest, DisableCname) {
|
| TestCompletionCallback callback;
|
| HttpRequestInfo request_info;
|
| std::string token;
|
| - EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info,
|
| - callback.callback(), &token));
|
| + EXPECT_EQ(OK, callback.GetResult(auth_handler->GenerateAuthToken(
|
| + NULL, &request_info, callback.callback(), &token)));
|
| #if defined(OS_WIN)
|
| EXPECT_EQ("HTTP/alias", auth_handler->spn());
|
| #elif defined(OS_POSIX)
|
| @@ -241,8 +259,8 @@ TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameStandardPort) {
|
| TestCompletionCallback callback;
|
| HttpRequestInfo request_info;
|
| std::string token;
|
| - EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info,
|
| - callback.callback(), &token));
|
| + EXPECT_EQ(OK, callback.GetResult(auth_handler->GenerateAuthToken(
|
| + NULL, &request_info, callback.callback(), &token)));
|
| #if defined(OS_WIN)
|
| EXPECT_EQ("HTTP/alias", auth_handler->spn());
|
| #elif defined(OS_POSIX)
|
| @@ -259,8 +277,8 @@ TEST_F(HttpAuthHandlerNegotiateTest, DisableCnameNonstandardPort) {
|
| TestCompletionCallback callback;
|
| HttpRequestInfo request_info;
|
| std::string token;
|
| - EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info,
|
| - callback.callback(), &token));
|
| + EXPECT_EQ(OK, callback.GetResult(auth_handler->GenerateAuthToken(
|
| + NULL, &request_info, callback.callback(), &token)));
|
| #if defined(OS_WIN)
|
| EXPECT_EQ("HTTP/alias:500", auth_handler->spn());
|
| #elif defined(OS_POSIX)
|
| @@ -277,8 +295,8 @@ TEST_F(HttpAuthHandlerNegotiateTest, CnameSync) {
|
| TestCompletionCallback callback;
|
| HttpRequestInfo request_info;
|
| std::string token;
|
| - EXPECT_EQ(OK, auth_handler->GenerateAuthToken(NULL, &request_info,
|
| - callback.callback(), &token));
|
| + EXPECT_EQ(OK, callback.GetResult(auth_handler->GenerateAuthToken(
|
| + NULL, &request_info, callback.callback(), &token)));
|
| #if defined(OS_WIN)
|
| EXPECT_EQ("HTTP/canonical.example.com", auth_handler->spn());
|
| #elif defined(OS_POSIX)
|
|
|