Fix up unit test cases - SIDP-397
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 3 Aug 2010 08:06:08 +0000 (08:06 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 3 Aug 2010 08:06:08 +0000 (08:06 +0000)
Update logging configuration files

git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/branches/REL_2@2934 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

doc/RELEASE-NOTES.txt
src/installer/resources/conf-tmpl/logging.xml
src/test/java/edu/internet2/middleware/shibboleth/idp/TestCaseBase.java [moved from src/test/java/edu/internet2/middleware/shibboleth/idp/BaseTestCase.java with 97% similarity]
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/BaseConf1TestCase.java
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/SAML1ArtifactResolutionTest.java
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/SAML1AttributeQueryTestCase.java
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/SAML2ArtifactResolutionTest.java
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/SAML2SSOTestCase.java
src/test/java/edu/internet2/middleware/shibboleth/idp/system/conf1/ShibbolethSSOTestCase.java
src/test/resources/data/conf1/internal.xml
src/test/resources/logback.xml

index dbb854b..ac9ab6f 100644 (file)
@@ -1,5 +1,6 @@
 Changes in Release 2.2.0
 =============================================
+[SIDP-397] - Remove any unit test that won't be fixed in the 2.X branch, fix the rest
 [SIDP-388] - Add eduPersonAssurance attribute to attribute-resolver.xml config example
 [SIDP-384] - Incorrect error message set for expired request in Shibboleth SSO Profile Handler
 [SIDP-382] - Less verbose logging for failed attribute queries due to missing name-id
index 6658a2e..445eb35 100644 (file)
@@ -7,25 +7,17 @@
         Levels: OFF, ERROR, WARN, INFO, DEBUG, TRACE, ALL
     -->
     <!-- Logs IdP, but not OpenSAML, messages -->
-    <logger name="edu.internet2.middleware.shibboleth">
-        <level value="INFO" />
-    </logger>
+    <logger name="edu.internet2.middleware.shibboleth" level="INFO" />
 
     <!-- Logs OpenSAML, but not IdP, messages -->
-    <logger name="org.opensaml">
-        <level value="WARN" />
-    </logger>
+    <logger name="org.opensaml" level="WARN" />
     
     <!-- Logs LDAP related messages -->
-    <logger name="edu.vt.middleware.ldap">
-        <level value="WARN"/>
-    </logger>
+    <logger name="edu.vt.middleware.ldap" level="WARN" />
     
     <!-- Logs inbound and outbound protocols messages at DEBUG level -->
     <!--
-    <logger name="PROTOCOL_MESSAGE">
-        <level value="DEBUG" />
-    </logger>
+    <logger name="PROTOCOL_MESSAGE" level="DEBUG" />
     -->
     
     <!-- 
             <FileNamePattern>$IDP_HOME$/logs/idp-access-%d{yyyy-MM-dd}.log</FileNamePattern>
         </rollingPolicy>
 
-        <layout class="ch.qos.logback.classic.PatternLayout">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <charset>UTF-8</charset>
             <Pattern>%msg%n</Pattern>
-        </layout>
+        </encoder>
     </appender>
 
     <appender name="IDP_AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
             <FileNamePattern>$IDP_HOME$/logs/idp-audit-%d{yyyy-MM-dd}.log</FileNamePattern>
         </rollingPolicy>
 
-        <layout class="ch.qos.logback.classic.PatternLayout">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <charset>UTF-8</charset>
             <Pattern>%msg%n</Pattern>
-        </layout>
+        </encoder>
     </appender>
 
     <appender name="IDP_PROCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -73,7 +67,8 @@
             <FileNamePattern>$IDP_HOME$/logs/idp-process-%d{yyyy-MM-dd}.log</FileNamePattern>
         </rollingPolicy>
 
-        <layout class="ch.qos.logback.classic.PatternLayout">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <charset>UTF-8</charset>
             <!-- General logging pattern -->
             <Pattern>%date{HH:mm:ss.SSS} - %level [%logger:%line] - %msg%n</Pattern>
             
             <Pattern>%date{HH:mm:ss.SSS} - %level [%logger:%line] - [%t:%mdc{principalName}] - %msg%n</Pattern>
              -->
             
-        </layout>
+        </encoder>
     </appender>
   
-    <logger name="Shibboleth-Access">
-        <level value="ALL" />
+    <logger name="Shibboleth-Access" level="ALL">
         <appender-ref ref="IDP_ACCESS" />
     </logger>
     
-    <logger name="Shibboleth-Audit">
-        <level value="ALL" />
+    <logger name="Shibboleth-Audit" level="ALL">
         <appender-ref ref="IDP_AUDIT" />
     </logger>
         
-    <logger name="org.springframework">
-        <level value="OFF" />
-    </logger>
+    <logger name="org.springframework" level="OFF" />
     
-    <logger name="org.apache.catalina">
-        <level value="ERROR" />
-    </logger>    
+    <logger name="org.apache.catalina" level="ERROR" />
 
-    <root>
-        <level value="ERROR" />
+    <root level="ERROR">
         <appender-ref ref="IDP_PROCESS" />
     </root>
 
@@ -48,7 +48,7 @@ import edu.internet2.middleware.shibboleth.common.config.SpringConfigurationUtil
 /**
  * Base unit test case for Spring configuration tests.
  */
-public class BaseTestCase extends XMLTestCase {
+public abstract class TestCaseBase extends XMLTestCase {
 
     /** Parser manager used to parse XML. */
     protected static BasicParserPool parser;
@@ -63,7 +63,7 @@ public class BaseTestCase extends XMLTestCase {
     protected UnmarshallerFactory unmarshallerFactory;
 
     /** Class logger. */
-    private static Logger log = LoggerFactory.getLogger(BaseTestCase.class);
+    private static Logger log = LoggerFactory.getLogger(TestCaseBase.class);
 
     /** Configuration resources to be loaded for all unit tests. */
     private List<Resource> configResources;
@@ -197,7 +197,7 @@ public class BaseTestCase extends XMLTestCase {
      */
     protected XMLObject unmarshallElement(String elementFile) {
         try {
-            Document doc = parser.parse(BaseTestCase.class.getResourceAsStream(elementFile));
+            Document doc = parser.parse(TestCaseBase.class.getResourceAsStream(elementFile));
             Element samlElement = doc.getDocumentElement();
 
             Unmarshaller unmarshaller = Configuration.getUnmarshallerFactory().getUnmarshaller(samlElement);
index 4834264..ab57d7c 100644 (file)
@@ -3,12 +3,12 @@ package edu.internet2.middleware.shibboleth.idp.system.conf1;
 
 import org.springframework.context.ApplicationContext;
 
-import edu.internet2.middleware.shibboleth.idp.BaseTestCase;
+import edu.internet2.middleware.shibboleth.idp.TestCaseBase;
 
 /**
  * Base unit test case for Spring configuration tests.
  */
-public class BaseConf1TestCase extends BaseTestCase {
+public abstract class BaseConf1TestCase extends TestCaseBase {
     
     /** Application context containing the loaded IdP configuration. */
     private ApplicationContext appCtx;
index 1c4d4d3..729249d 100644 (file)
@@ -71,8 +71,8 @@ public class SAML1ArtifactResolutionTest extends BaseConf1TestCase {
         handler.processRequest(profileRequest, profileResponse);
 
         String response = servletResponse.getContentAsString();
-        assertTrue(response.contains("samlp:Success"));
-        assertTrue(response.contains("saml:Assertion"));
+        assertTrue(response.contains("saml1p:Success"));
+        assertTrue(response.contains("saml1:Assertion"));
     }
     
     public void testWithoutConfiguration() throws Exception {
@@ -98,8 +98,8 @@ public class SAML1ArtifactResolutionTest extends BaseConf1TestCase {
         handler.processRequest(profileRequest, profileResponse);
 
         String response = servletResponse.getContentAsString();
-        assertTrue(response.contains("samlp:Success"));
-        assertTrue(response.contains("samlp:RequestDenied"));
+        assertTrue(response.contains("saml1p:Success"));
+        assertTrue(response.contains("saml1p:RequestDenied"));
     }
 
     @SuppressWarnings("unchecked")
index f2329ed..59b55d9 100644 (file)
@@ -69,7 +69,7 @@ public class SAML1AttributeQueryTestCase extends BaseConf1TestCase {
         handler.processRequest(profileRequest, profileResponse);
 
         String response = servletResponse.getContentAsString();
-        assertTrue(response.contains("samlp:Success"));
+        assertTrue(response.contains("saml1p:Success"));
         assertTrue(response.contains("AttributeName=\"urn:mace:dir:attribute-def:eduPersonEntitlement\""));
         assertTrue(response.contains("urn:example.org:entitlement:entitlement1"));
     }
@@ -97,8 +97,8 @@ public class SAML1AttributeQueryTestCase extends BaseConf1TestCase {
         handler.processRequest(profileRequest, profileResponse);
             
         String response = servletResponse.getContentAsString();
-        assertTrue(response.contains("samlp:Responder"));
-        assertTrue(response.contains("samlp:RequestDenied"));
+        assertTrue(response.contains("saml1p:Responder"));
+        assertTrue(response.contains("saml1p:RequestDenied"));
     }
 
     /**
index 7778256..2fffb06 100644 (file)
@@ -74,9 +74,9 @@ public class SAML2ArtifactResolutionTest extends BaseConf1TestCase {
         handler.processRequest(profileRequest, profileResponse);
 
         String response = servletResponse.getContentAsString();
-        assertTrue(response.contains("samlp:ArtifactResponse"));
+        assertTrue(response.contains("saml2p:ArtifactResponse"));
         assertTrue(response.contains("urn:oasis:names:tc:SAML:2.0:status:Success"));
-        assertTrue(response.contains("saml:Assertion"));
+        assertTrue(response.contains("saml2:Assertion"));
     }
     
     public void testWithoutConfiguration() throws Exception{
index 0b1d965..9bf3601 100644 (file)
@@ -43,6 +43,7 @@ import edu.internet2.middleware.shibboleth.idp.authn.Saml2LoginContext;
 import edu.internet2.middleware.shibboleth.idp.authn.UsernamePrincipal;
 import edu.internet2.middleware.shibboleth.idp.session.AuthenticationMethodInformation;
 import edu.internet2.middleware.shibboleth.idp.session.impl.AuthenticationMethodInformationImpl;
+import edu.internet2.middleware.shibboleth.idp.util.HttpServletHelper;
 
 /**
  * 
@@ -52,7 +53,6 @@ public class SAML2SSOTestCase extends BaseConf1TestCase {
     /** Tests initial leg of the SSO request where request is decoded and sent to the authentication engine. */
     public void testFirstAuthenticationLeg() throws Exception {
         MockHttpServletRequest servletRequest = buildServletRequest("urn:example.org:sp1");
-        servletRequest.setMethod("POST");
         MockHttpServletResponse servletResponse = new MockHttpServletResponse();
 
         ProfileHandlerManager handlerManager = (ProfileHandlerManager) getApplicationContext().getBean(
@@ -65,8 +65,7 @@ public class SAML2SSOTestCase extends BaseConf1TestCase {
         HTTPOutTransport profileResponse = new HttpServletResponseAdapter(servletResponse, false);
         handler.processRequest(profileRequest, profileResponse);
 
-        Saml2LoginContext loginContext = (Saml2LoginContext) servletRequest
-                .getAttribute(Saml2LoginContext.LOGIN_CONTEXT_KEY);
+        Saml2LoginContext loginContext = (Saml2LoginContext) HttpServletHelper.getLoginContext(servletRequest);
 
         assertNotNull(loginContext);
         assertEquals(false, loginContext.getAuthenticationAttempted());
@@ -85,7 +84,7 @@ public class SAML2SSOTestCase extends BaseConf1TestCase {
         MockHttpServletRequest servletRequest = buildServletRequest("urn:example.org:sp1");
         MockHttpServletResponse servletResponse = new MockHttpServletResponse();
 
-        servletRequest.setAttribute(Saml2LoginContext.LOGIN_CONTEXT_KEY, buildLoginContext("urn:example.org:sp1"));
+        HttpServletHelper.bindLoginContext(buildLoginContext("urn:example.org:sp1"), servletRequest);
 
         ProfileHandlerManager handlerManager = (ProfileHandlerManager) getApplicationContext().getBean(
                 "shibboleth.HandlerManager");
@@ -129,6 +128,7 @@ public class SAML2SSOTestCase extends BaseConf1TestCase {
         String authnRequestString = getSamlRequestString(authnRequest);
         
         MockHttpServletRequest servletRequest = new MockHttpServletRequest();
+        servletRequest.setMethod("POST");
         servletRequest.setPathInfo("/saml2/POST/SSO");
         servletRequest.setParameter("SAMLRequest", Base64.encodeBytes(authnRequestString.getBytes()));
 
index 974eff8..67b8fc6 100644 (file)
@@ -35,6 +35,7 @@ import edu.internet2.middleware.shibboleth.idp.authn.ShibbolethSSOLoginContext;
 import edu.internet2.middleware.shibboleth.idp.authn.UsernamePrincipal;
 import edu.internet2.middleware.shibboleth.idp.session.AuthenticationMethodInformation;
 import edu.internet2.middleware.shibboleth.idp.session.impl.AuthenticationMethodInformationImpl;
+import edu.internet2.middleware.shibboleth.idp.util.HttpServletHelper;
 
 /**
  * Unit test for Shibboleth SSO requests.
@@ -56,8 +57,8 @@ public class ShibbolethSSOTestCase extends BaseConf1TestCase {
         HTTPOutTransport profileResponse = new HttpServletResponseAdapter(servletResponse, false);
         handler.processRequest(profileRequest, profileResponse);
 
-        ShibbolethSSOLoginContext loginContext = (ShibbolethSSOLoginContext) servletRequest
-                .getAttribute(ShibbolethSSOLoginContext.LOGIN_CONTEXT_KEY);
+        ShibbolethSSOLoginContext loginContext = (ShibbolethSSOLoginContext) HttpServletHelper
+                .getLoginContext(servletRequest);
 
         assertNotNull(loginContext);
         assertEquals(false, loginContext.getAuthenticationAttempted());
@@ -78,7 +79,7 @@ public class ShibbolethSSOTestCase extends BaseConf1TestCase {
         MockHttpServletRequest servletRequest = buildServletRequest();
         MockHttpServletResponse servletResponse = new MockHttpServletResponse();
 
-        servletRequest.setAttribute(ShibbolethSSOLoginContext.LOGIN_CONTEXT_KEY, buildLoginContext());
+        HttpServletHelper.bindLoginContext(buildLoginContext(), servletRequest);
 
         ProfileHandlerManager handlerManager = (ProfileHandlerManager) getApplicationContext().getBean(
                 "shibboleth.HandlerManager");
index ee456d0..7db0dc1 100644 (file)
@@ -9,11 +9,8 @@
         <constructor-arg value="true" type="boolean" />
     </bean>
     
-    <bean id="shibboleth.LogbackLogging" class="edu.internet2.middleware.shibboleth.common.log.LogbackLoggingService" depends-on="shibboleth.TaskTimer">
-        <constructor-arg ref="shibboleth.TaskTimer" />
-        <constructor-arg value="$IDP_HOME$/conf/logging.xml" />
-        <constructor-arg value="600000" />
-    </bean>
+    <!-- Nothing ever checks the type of this object and the logging config is loaded from the classpath for the test suite. -->
+    <bean id="shibboleth.LogbackLogging" class="java.lang.Object" depends-on="shibboleth.TaskTimer" />
     
     <!-- Spring configuration file that bootstraps OpenSAML -->
     <bean id="shibboleth.OpensamlConfig" class="edu.internet2.middleware.shibboleth.common.config.OpensamlConfigBean" depends-on="shibboleth.LogbackLogging">
index ec2b214..061191b 100644 (file)
@@ -2,28 +2,22 @@
 
 <configuration>
 
-    <logger name="edu.internet2.middleware.shibboleth">
-        <level value="DEBUG" />
-    </logger>
+    <logger name="edu.internet2.middleware.shibboleth" level="DEBUG" />
 
-    <logger name="org.opensaml">
-        <level value="WARN" />
-    </logger>
+    <logger name="org.opensaml" level="WARN" />
 
     <!--
-        <logger name="PROTOCOL_MESSAGE">
-        <level value="DEBUG" />
-        </logger>
+        <logger name="PROTOCOL_MESSAGE" level="DEBUG" />
     -->
 
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.PatternLayout">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <Pattern>%date{HH:mm:ss.SSS} - %level [%logger:%line] - %msg%n</Pattern>
-        </layout>
+            <charset>UTF-8</charset>
+        </encoder>
     </appender>
 
-    <root>
-        <level value="warn" />
+    <root level="WARN" >
         <appender-ref ref="STDOUT" />
     </root>