diff --git a/test/src/main/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListener.java b/test/src/main/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListener.java index 1b24f43d11..1fc684a64b 100644 --- a/test/src/main/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListener.java +++ b/test/src/main/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListener.java @@ -17,14 +17,10 @@ package org.springframework.security.test.context.support; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; -import java.lang.reflect.TypeVariable; import org.springframework.beans.BeanUtils; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.StaticApplicationContext; import org.springframework.core.GenericTypeResolver; import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.core.annotation.Order; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.test.context.TestSecurityContextHolder; @@ -32,11 +28,7 @@ import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequ import org.springframework.test.context.TestContext; import org.springframework.test.context.TestExecutionListener; import org.springframework.test.context.support.AbstractTestExecutionListener; -import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; -import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; -import org.springframework.util.ClassUtils; -import org.springframework.util.ReflectionUtils; /** * A {@link TestExecutionListener} that will find annotations that are annotated with @@ -49,7 +41,6 @@ import org.springframework.util.ReflectionUtils; * @author Rob Winch * @since 4.0 */ -@Order(1000) public class WithSecurityContextTestExecutionListener extends AbstractTestExecutionListener { @@ -115,4 +106,12 @@ public class WithSecurityContextTestExecutionListener extends public void afterTestMethod(TestContext testContext) throws Exception { TestSecurityContextHolder.clearContext(); } + + /** + * Returns {@code 1000}. + */ + @Override + public int getOrder() { + return 1000; + } } \ No newline at end of file diff --git a/test/src/test/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListenerTests.java b/test/src/test/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListenerTests.java new file mode 100644 index 0000000000..81a5826c14 --- /dev/null +++ b/test/src/test/java/org/springframework/security/test/context/support/WithSecurityContextTestExecutionListenerTests.java @@ -0,0 +1,54 @@ +/* + * Copyright 2002-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.test.context.support; + +import static org.fest.assertions.Assertions.*; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.core.annotation.AnnotationAwareOrderComparator; +import org.springframework.test.context.TestExecutionListener; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; + +/** + * @author Rob Winch + * + */ +public class WithSecurityContextTestExecutionListenerTests { + WithSecurityContextTestExecutionListener listener; + + @Before + public void setup() { + listener = new WithSecurityContextTestExecutionListener(); + } + + // SEC-2709 + @Test + public void orderOverridden() { + DependencyInjectionTestExecutionListener otherListener = new DependencyInjectionTestExecutionListener(); + + List listeners = new ArrayList(); + listeners.add(otherListener); + listeners.add(listener); + + AnnotationAwareOrderComparator.sort(listeners); + + assertThat(listeners).containsSequence(listener, otherListener); + } +}