]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/tests/testACLMaxUserIP.cc
Source Format Enforcement (#763)
[thirdparty/squid.git] / src / tests / testACLMaxUserIP.cc
index d112b3f5b765d0282e5dde6b0e4901a03a9d2132..7adcbf8500790359641931a09bd375a68c037c3d 100644 (file)
@@ -1,19 +1,29 @@
-#define SQUID_UNIT_TEST 1
+/*
+ * Copyright (C) 1996-2021 The Squid Software Foundation and contributors
+ *
+ * Squid software is distributed under GPLv2+ license and includes
+ * contributions from numerous individuals and organizations.
+ * Please see the COPYING and CONTRIBUTORS files for details.
+ */
 
 #include "squid.h"
 
 #if USE_AUTH
 
+#include "acl/Acl.h"
 #include "auth/AclMaxUserIp.h"
+#include "auth/UserRequest.h"
 #include "ConfigParser.h"
-#include "testACLMaxUserIP.h"
+#include "tests/testACLMaxUserIP.h"
+#include "unitTestMain.h"
 
-#if HAVE_STDEXCEPT
 #include <stdexcept>
-#endif
 
 CPPUNIT_TEST_SUITE_REGISTRATION( testACLMaxUserIP );
 
+/* globals required to resolve link issues */
+AnyP::PortCfgPointer HttpPortList;
+
 void
 testACLMaxUserIP::testDefaults()
 {
@@ -21,26 +31,40 @@ testACLMaxUserIP::testDefaults()
     /* 0 is not a valid maximum, so we start at 0 */
     CPPUNIT_ASSERT_EQUAL(0,anACL.getMaximum());
     /* and we have no option to turn strict OFF, so start ON. */
-    CPPUNIT_ASSERT_EQUAL(0,anACL.getStrict());
+    CPPUNIT_ASSERT_EQUAL(false, static_cast<bool>(anACL.beStrict));
     /* an unparsed acl must not be valid - there is no sane default */
     CPPUNIT_ASSERT_EQUAL(false,anACL.valid());
 }
 
+void
+testACLMaxUserIP::setUp()
+{
+    CPPUNIT_NS::TestFixture::setUp();
+    Acl::RegisterMaker("max_user_ip", [](Acl::TypeName name)->ACL* { return new ACLMaxUserIP(name); });
+}
+
 void
 testACLMaxUserIP::testParseLine()
 {
     /* a config line to pass with a lead-in token to seed the parser. */
-    char * line = xstrdup("-s 1");
+    char * line = xstrdup("test max_user_ip -s 1");
     /* seed the parser */
     ConfigParser::SetCfgLine(line);
-    ACLMaxUserIP anACL("max_user_ip");
-    anACL.parse();
-    /* we want a maximum of one, and strict to be true */
-    CPPUNIT_ASSERT_EQUAL(1,anACL.getMaximum());
-    CPPUNIT_ASSERT_EQUAL(1,anACL.getStrict());
-    /* the acl must be vaid */
-    CPPUNIT_ASSERT_EQUAL(true,anACL.valid());
+    ACL *anACL = NULL;
+    ConfigParser LegacyParser;
+    ACL::ParseAclLine(LegacyParser, &anACL);
+    ACLMaxUserIP *maxUserIpACL = dynamic_cast<ACLMaxUserIP *>(anACL);
+    CPPUNIT_ASSERT(maxUserIpACL);
+    if (maxUserIpACL) {
+        /* we want a maximum of one, and strict to be true */
+        CPPUNIT_ASSERT_EQUAL(1, maxUserIpACL->getMaximum());
+        CPPUNIT_ASSERT_EQUAL(true, static_cast<bool>(maxUserIpACL->beStrict));
+        /* the acl must be vaid */
+        CPPUNIT_ASSERT_EQUAL(true, maxUserIpACL->valid());
+    }
+    delete anACL;
     xfree(line);
 }
 
 #endif /* USE_AUTH */
+