| Index: net/http/mock_gssapi_library_posix.h
|
| diff --git a/net/http/mock_gssapi_library_posix.h b/net/http/mock_gssapi_library_posix.h
|
| index 15e14f2deec5ace8a92fd0cd83dddc48c3aaa42e..f0652d36652f8458733d6e11050e173f0972e88d 100644
|
| --- a/net/http/mock_gssapi_library_posix.h
|
| +++ b/net/http/mock_gssapi_library_posix.h
|
| @@ -45,10 +45,61 @@ class GssContextMockImpl {
|
| // the system GSSAPI library calls.
|
| class MockGSSAPILibrary : public GSSAPILibrary {
|
| public:
|
| + // Unit tests need access to this. "Friend"ing didn't help.
|
| + struct SecurityContextQuery {
|
| + std::string expected_package;
|
| + OM_uint32 response_code;
|
| + OM_uint32 minor_response_code;
|
| + test::GssContextMockImpl context_info;
|
| + gss_buffer_desc expected_input_token;
|
| + gss_buffer_desc output_token;
|
| + };
|
|
|
| MockGSSAPILibrary();
|
| virtual ~MockGSSAPILibrary();
|
|
|
| + // Establishes an expectation for a |init_sec_context()| call.
|
| + //
|
| + // Each expectation established by |ExpectSecurityContext()| must be
|
| + // matched by a call to |init_sec_context()| during the lifetime of
|
| + // the MockGSSAPILibrary. The |expected_package| argument must equal the
|
| + // value associated with the |target_name| argument to |init_sec_context()|
|
| + // for there to be a match. The expectations also establish an explicit
|
| + // ordering.
|
| + //
|
| + // For example, this sequence will be successful.
|
| + // MockGSSAPILibrary lib;
|
| + // lib.ExpectSecurityContext("NTLM", ...)
|
| + // lib.ExpectSecurityContext("Negotiate", ...)
|
| + // lib.init_sec_context("NTLM", ...)
|
| + // lib.init_sec_context("Negotiate", ...)
|
| + //
|
| + // This sequence will fail since the queries do not occur in the order
|
| + // established by the expectations.
|
| + // MockGSSAPILibrary lib;
|
| + // lib.ExpectSecurityContext("NTLM", ...)
|
| + // lib.ExpectSecurityContext("Negotiate", ...)
|
| + // lib.init_sec_context("Negotiate", ...)
|
| + // lib.init_sec_context("NTLM", ...)
|
| + //
|
| + // This sequence will fail because there were not enough queries.
|
| + // MockGSSAPILibrary lib;
|
| + // lib.ExpectSecurityContext("NTLM", ...)
|
| + // lib.ExpectSecurityContext("Negotiate", ...)
|
| + // lib.init_sec_context("NTLM", ...)
|
| + //
|
| + // |response_code| is used as the return value for |init_sec_context()|.
|
| + // If |response_code| is GSS_S_COMPLETE,
|
| + //
|
| + // |context_info| is the expected value of the |**context_handle| in after
|
| + // |init_sec_context()| returns.
|
| + void ExpectSecurityContext(const std::string& expected_package,
|
| + OM_uint32 response_code,
|
| + OM_uint32 minor_response_code,
|
| + const test::GssContextMockImpl& context_info,
|
| + const gss_buffer_desc& expected_input_token,
|
| + const gss_buffer_desc& output_token);
|
| +
|
| // GSSAPILibrary methods:
|
|
|
| // Initializes the library, including any necessary dynamic libraries.
|
| @@ -116,58 +167,6 @@ class MockGSSAPILibrary : public GSSAPILibrary {
|
| int* locally_initiated,
|
| int* open);
|
|
|
| - // Establishes an expectation for a |init_sec_context()| call.
|
| - //
|
| - // Each expectation established by |ExpectSecurityContext()| must be
|
| - // matched by a call to |init_sec_context()| during the lifetime of
|
| - // the MockGSSAPILibrary. The |expected_package| argument must equal the
|
| - // value associated with the |target_name| argument to |init_sec_context()|
|
| - // for there to be a match. The expectations also establish an explicit
|
| - // ordering.
|
| - //
|
| - // For example, this sequence will be successful.
|
| - // MockGSSAPILibrary lib;
|
| - // lib.ExpectSecurityContext("NTLM", ...)
|
| - // lib.ExpectSecurityContext("Negotiate", ...)
|
| - // lib.init_sec_context("NTLM", ...)
|
| - // lib.init_sec_context("Negotiate", ...)
|
| - //
|
| - // This sequence will fail since the queries do not occur in the order
|
| - // established by the expectations.
|
| - // MockGSSAPILibrary lib;
|
| - // lib.ExpectSecurityContext("NTLM", ...)
|
| - // lib.ExpectSecurityContext("Negotiate", ...)
|
| - // lib.init_sec_context("Negotiate", ...)
|
| - // lib.init_sec_context("NTLM", ...)
|
| - //
|
| - // This sequence will fail because there were not enough queries.
|
| - // MockGSSAPILibrary lib;
|
| - // lib.ExpectSecurityContext("NTLM", ...)
|
| - // lib.ExpectSecurityContext("Negotiate", ...)
|
| - // lib.init_sec_context("NTLM", ...)
|
| - //
|
| - // |response_code| is used as the return value for |init_sec_context()|.
|
| - // If |response_code| is GSS_S_COMPLETE,
|
| - //
|
| - // |context_info| is the expected value of the |**context_handle| in after
|
| - // |init_sec_context()| returns.
|
| - void ExpectSecurityContext(const std::string& expected_package,
|
| - OM_uint32 response_code,
|
| - OM_uint32 minor_response_code,
|
| - const test::GssContextMockImpl& context_info,
|
| - const gss_buffer_desc& expected_input_token,
|
| - const gss_buffer_desc& output_token);
|
| -
|
| - // Unit tests need access to this. "Friend"ing didn't help.
|
| - struct SecurityContextQuery {
|
| - std::string expected_package;
|
| - OM_uint32 response_code;
|
| - OM_uint32 minor_response_code;
|
| - test::GssContextMockImpl context_info;
|
| - gss_buffer_desc expected_input_token;
|
| - gss_buffer_desc output_token;
|
| - };
|
| -
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(HttpAuthGSSAPIPOSIXTest, GSSAPICycle);
|
|
|
|
|