2
0
Эх сурвалжийг харах

Create RedirectMatcher

This commit creates RedirectMatcher for binary backward compatability with
Spring 4.3.x and Spring 5 to ensure that the Spring IO tests pass.

Issue gh-4080
Rob Winch 9 жил өмнө
parent
commit
52c6e3cf89

+ 42 - 0
test/src/test/java/org/springframework/security/test/web/servlet/response/RedirectMatcher.java

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2002-2016 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.web.servlet.response;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.springframework.test.web.servlet.MvcResult;
+import org.springframework.test.web.servlet.ResultMatcher;
+
+/**
+ * Necessary to support binary compatibility for Spring IO Checks against Cario
+ * since Spring Framework changed the signature in Spring 5. See
+ * https://github.com/spring-projects/spring-framework/commit/
+ * a795fd47142bd3b206ce244b94b1fd1dd0adc2e9
+ *
+ * @author Rob Winch
+ */
+public class RedirectMatcher {
+
+	public static ResultMatcher redirectUrl(final String expectedUrl) {
+		return new ResultMatcher() {
+
+			@Override
+			public void match(MvcResult result) throws Exception {
+				assertThat(result.getResponse().getRedirectedUrl()).isEqualTo(expectedUrl);
+			}
+		};
+	}
+}

+ 4 - 2
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java

@@ -16,6 +16,7 @@
 package org.springframework.security.test.web.servlet.showcase.login;
 
 import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.*;
+import static org.springframework.security.test.web.servlet.response.RedirectMatcher.redirectUrl;
 import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.*;
 import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
@@ -67,7 +68,7 @@ public class AuthenticationTests {
 	@Test
 	public void authenticationSuccess() throws Exception {
 		mvc.perform(formLogin()).andExpect(status().isFound())
-				.andExpect(redirectedUrl("/"))
+				.andExpect(redirectUrl("/"))
 				.andExpect(authenticated().withUsername("user"));
 	}
 
@@ -75,7 +76,8 @@ public class AuthenticationTests {
 	public void authenticationFailed() throws Exception {
 		mvc.perform(formLogin().user("user").password("invalid"))
 				.andExpect(status().isFound())
-				.andExpect(redirectedUrl("/login?error")).andExpect(unauthenticated());
+				.andExpect(redirectUrl("/login?error"))
+				.andExpect(unauthenticated());
 	}
 
 	@EnableWebSecurity

+ 2 - 2
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java

@@ -64,7 +64,7 @@ public class CustomConfigAuthenticationTests {
 		mvc.perform(
 				formLogin("/authenticate").user("user", "user").password("pass",
 						"password")).andExpect(status().isFound())
-				.andExpect(redirectedUrl("/"))
+				.andExpect(redirectUrl("/"))
 				.andExpect(authenticated().withUsername("user"));
 	}
 
@@ -79,7 +79,7 @@ public class CustomConfigAuthenticationTests {
 		mvc.perform(
 				formLogin("/authenticate").user("user", "notfound").password("pass",
 						"invalid")).andExpect(status().isFound())
-				.andExpect(redirectedUrl("/authenticate?error"))
+				.andExpect(redirectUrl("/authenticate?error"))
 				.andExpect(unauthenticated());
 	}
 

+ 3 - 2
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java

@@ -15,6 +15,7 @@
  */
 package org.springframework.security.test.web.servlet.showcase.login;
 
+import static org.springframework.security.test.web.servlet.response.RedirectMatcher.redirectUrl;
 import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.*;
 import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@@ -55,7 +56,7 @@ public class CustomLoginRequestBuilderAuthenticationTests {
 	@Test
 	public void authenticationSuccess() throws Exception {
 		mvc.perform(login()).andExpect(status().isMovedTemporarily())
-				.andExpect(redirectedUrl("/"))
+				.andExpect(redirectUrl("/"))
 				.andExpect(authenticated().withUsername("user"));
 	}
 
@@ -63,7 +64,7 @@ public class CustomLoginRequestBuilderAuthenticationTests {
 	public void authenticationFailed() throws Exception {
 		mvc.perform(login().user("notfound").password("invalid"))
 				.andExpect(status().isMovedTemporarily())
-				.andExpect(redirectedUrl("/authenticate?error"))
+				.andExpect(redirectUrl("/authenticate?error"))
 				.andExpect(unauthenticated());
 	}