#define SQUID_UNIT_TEST 1
-#include "squid.h"
#include "testAuth.h"
+#include "squid.h"
#include "authenticate.h"
#include "AuthUserRequest.h"
#include "AuthScheme.h"
CPPUNIT_TEST_SUITE_REGISTRATION( testAuth );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthConfig );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthUserRequest );
+#ifdef HAVE_AUTH_MODULE_BASIC
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthBasicUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_DIGEST
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthDigestUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NTLM
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNTLMUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNegotiateUserRequest );
+#endif
/* Instantiate all auth framework types */
void
AuthScheme *theScheme;
if ((theScheme = AuthScheme::Find(type_str)) == NULL) {
- fatalf("Unknown authentication scheme '%s'.\n", type_str);
+ return NULL;
+ //fatalf("Unknown authentication scheme '%s'.\n", type_str);
}
config.push_back(theScheme->createConfig());
{"negotiate", negotiate_parms, 1}
};
- for (unsigned scheme=0; scheme < 4; scheme++)
- setup_scheme(getConfig(params[scheme].name), params[scheme].params, params[scheme].paramlength);
+ for (unsigned scheme=0; scheme < 4; scheme++) {
+ AuthConfig *schemeConfig;
+ schemeConfig = getConfig(params[scheme].name);
+ if (schemeConfig != NULL)
+ setup_scheme (schemeConfig, params[scheme].params,
+ params[scheme].paramlength);
+ else
+ fprintf(stderr,"Skipping unknown authentication scheme '%s'.\n",
+ params[scheme].name);
+ }
authenticateInit(&config);
}
}
+#ifdef HAVE_AUTH_MODULE_BASIC
#include "auth/basic/auth_basic.h"
/* AuthBasicUserRequest::AuthBasicUserRequest works
*/
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_BASIC */
+#ifdef HAVE_AUTH_MODULE_DIGEST
#include "auth/digest/auth_digest.h"
/* AuthDigestUserRequest::AuthDigestUserRequest works
*/
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_DIGEST */
+#ifdef HAVE_AUTH_MODULE_NTLM
#include "auth/ntlm/auth_ntlm.h"
/* AuthNTLMUserRequest::AuthNTLMUserRequest works
*/
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+#endif /* HAVE_AUTH_MODULE_NTLM */
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
#include "auth/negotiate/auth_negotiate.h"
/* AuthNegotiateUserRequest::AuthNegotiateUserRequest works
*/
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
delete temp;
}
+
+#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
#define SQUID_SRC_TEST_AUTH_H
#include <cppunit/extensions/HelperMacros.h>
+#include "config.h"
/*
* test the auth Config framework
void construction();
};
+#ifdef HAVE_AUTH_MODULE_BASIC
class testAuthBasicUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthBasicUserRequest );
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_DIGEST
class testAuthDigestUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthDigestUserRequest );
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_NTLM
class testAuthNTLMUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthNTLMUserRequest );
void construction();
void username();
};
+#endif
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
class testAuthNegotiateUserRequest : public CPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE( testAuthNegotiateUserRequest );
void construction();
void username();
};
+#endif
#endif