WebApp webApp = parse("security/web3.xml");
WebAppInfoBuilder webAppInfoBuilder = new WebAppInfoBuilder(webApp, new DefaultWebAppInfoFactory());
webAppInfoBuilder.build();
SpecSecurityBuilder builder = new SpecSecurityBuilder(webAppInfoBuilder.getWebAppInfo());
ComponentPermissions permissions = builder.buildSpecSecurityConfig();
Permission p = new WebResourcePermission("/Test/Foo", "GET,POST");
assertTrue(implies(p, permissions, "Admin"));
assertFalse(implies(p, permissions, null));
p = new WebResourcePermission("/Test/Bar/Foo", "GET,POST");
assertFalse(implies(p, permissions, "Admin"));
assertFalse(implies(p, permissions, null));
// check only GET method excluded here.
p = new WebResourcePermission("/Test/Baz/Foo", "GET");
assertFalse(implies(p, permissions, "Admin"));
p = new WebResourcePermission("/Test/Baz/Foo", "POST");
assertTrue(implies(p, permissions, "Admin"));
// test excluding longer path than allowed
p = new WebResourcePermission("/Foo/Baz", "GET");
assertTrue(implies(p, permissions, "Admin"));
assertFalse(implies(p, permissions, "Peon"));
p = new WebResourcePermission("/Foo/Bar/Foo", "POST");
assertTrue(implies(p, permissions, "Admin"));
assertFalse(implies(p, permissions, "Peon"));
p = new WebResourcePermission("/Foo/Bar/Foo", "GET");
assertFalse(implies(p, permissions, "Admin"));
assertFalse(implies(p, permissions, "Peon"));
}