Author: markt Date: Thu Jun 20 12:51:45 2013 New Revision: 1494963 URL: http://svn.apache.org/r1494963 Log: Some simple unit tests
Modified: tomcat/trunk/test/org/apache/catalina/deploy/TestSecurityConstraint.java Modified: tomcat/trunk/test/org/apache/catalina/deploy/TestSecurityConstraint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/deploy/TestSecurityConstraint.java?rev=1494963&r1=1494962&r2=1494963&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/deploy/TestSecurityConstraint.java (original) +++ tomcat/trunk/test/org/apache/catalina/deploy/TestSecurityConstraint.java Thu Jun 20 12:51:45 2013 @@ -30,13 +30,60 @@ import static org.junit.Assert.assertFal import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import org.junit.Assert; import org.junit.Test; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; + public class TestSecurityConstraint { private static final String URL_PATTERN = "/test"; private static final String ROLE1 = "R1"; + private static final Log DUMMY_LOG = LogFactory.getLog("DUMMY"); + + private static final SecurityConstraint GET_ONLY; + private static final SecurityConstraint POST_ONLY; + + private static final SecurityConstraint GET_OMIT; + private static final SecurityConstraint POST_OMIT; + + static { + // Configure the constraints to use in the tests + GET_ONLY = new SecurityConstraint(); + GET_ONLY.addAuthRole(ROLE1); + SecurityCollection scGetOnly = new SecurityCollection(); + scGetOnly.addMethod("GET"); + scGetOnly.addPattern(URL_PATTERN); + scGetOnly.setName("GET-ONLY"); + GET_ONLY.addCollection(scGetOnly); + + POST_ONLY = new SecurityConstraint(); + POST_ONLY.addAuthRole(ROLE1); + SecurityCollection scPostOnly = new SecurityCollection(); + scPostOnly.addMethod("POST"); + scPostOnly.addPattern(URL_PATTERN); + scPostOnly.setName("POST_ONLY"); + POST_ONLY.addCollection(scPostOnly); + + GET_OMIT = new SecurityConstraint(); + GET_OMIT.addAuthRole(ROLE1); + SecurityCollection scGetOmit = new SecurityCollection(); + scGetOmit.addOmittedMethod("GET"); + scGetOmit.addPattern(URL_PATTERN); + scGetOmit.setName("GET_OMIT"); + GET_OMIT.addCollection(scGetOmit); + + POST_OMIT = new SecurityConstraint(); + POST_OMIT.addAuthRole(ROLE1); + SecurityCollection scPostOmit = new SecurityCollection(); + scPostOmit.addOmittedMethod("POST"); + scPostOmit.addPattern(URL_PATTERN); + scPostOmit.setName("POST_OMIT"); + POST_OMIT.addCollection(scPostOmit); + } + /** * Uses the examples in SRV.13.4 as the basis for these tests */ @@ -205,4 +252,115 @@ public class TestSecurityConstraint { // Example 13-9 is the same as 13-7 } + + @Test + public void testFindUncoveredHttpMethods01() { + // No new constraints if denyUncoveredHttpMethods is false + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {GET_ONLY}, false, DUMMY_LOG); + Assert.assertEquals(0, result.length); + } + + + @Test + public void testFindUncoveredHttpMethods02() { + // No new constraints if denyUncoveredHttpMethods is false + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {GET_OMIT}, false, DUMMY_LOG); + Assert.assertEquals(0, result.length); + } + + + @Test + public void testFindUncoveredHttpMethods03() { + // No new constraints if denyUncoveredHttpMethods is false + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {POST_ONLY}, false, DUMMY_LOG); + Assert.assertEquals(0, result.length); + } + + + @Test + public void testFindUncoveredHttpMethods04() { + // No new constraints if denyUncoveredHttpMethods is false + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {POST_OMIT}, false, DUMMY_LOG); + Assert.assertEquals(0, result.length); + } + + + @Test + public void testFindUncoveredHttpMethods05() { + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {GET_ONLY}, true, DUMMY_LOG); + Assert.assertEquals(1, result.length); + // Should be a deny constraint + Assert.assertTrue(result[0].getAuthConstraint()); + // Should have a single collection + Assert.assertEquals(1, result[0].findCollections().length); + SecurityCollection sc = result[0].findCollections()[0]; + // Should list GET as an omitted method + Assert.assertEquals(0, sc.findMethods().length); + Assert.assertEquals(1, sc.findOmittedMethods().length); + Assert.assertEquals("GET", sc.findOmittedMethods()[0]); + } + + + @Test + public void testFindUncoveredHttpMethods06() { + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {POST_ONLY}, true, DUMMY_LOG); + Assert.assertEquals(1, result.length); + // Should be a deny constraint + Assert.assertTrue(result[0].getAuthConstraint()); + // Should have a single collection + Assert.assertEquals(1, result[0].findCollections().length); + SecurityCollection sc = result[0].findCollections()[0]; + // Should list POST as an omitted method + Assert.assertEquals(0, sc.findMethods().length); + Assert.assertEquals(1, sc.findOmittedMethods().length); + Assert.assertEquals("POST", sc.findOmittedMethods()[0]); + } + + + @Test + public void testFindUncoveredHttpMethods07() { + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {GET_OMIT}, true, DUMMY_LOG); + Assert.assertEquals(1, result.length); + // Should be a deny constraint + Assert.assertTrue(result[0].getAuthConstraint()); + // Should have a single collection + Assert.assertEquals(1, result[0].findCollections().length); + SecurityCollection sc = result[0].findCollections()[0]; + // Should list GET as an method + Assert.assertEquals(0, sc.findOmittedMethods().length); + Assert.assertEquals(1, sc.findMethods().length); + Assert.assertEquals("GET", sc.findMethods()[0]); + } + + + @Test + public void testFindUncoveredHttpMethods08() { + SecurityConstraint[] result = + SecurityConstraint.findUncoveredHttpMethods( + new SecurityConstraint[] {POST_OMIT}, true, DUMMY_LOG); + Assert.assertEquals(1, result.length); + // Should be a deny constraint + Assert.assertTrue(result[0].getAuthConstraint()); + // Should have a single collection + Assert.assertEquals(1, result[0].findCollections().length); + SecurityCollection sc = result[0].findCollections()[0]; + // Should list POST as an method + Assert.assertEquals(0, sc.findOmittedMethods().length); + Assert.assertEquals(1, sc.findMethods().length); + Assert.assertEquals("POST", sc.findMethods()[0]); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org