Browse Source

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
pull/232/merge
Rob Winch 9 years ago
parent
commit
52c6e3cf89
  1. 42
      test/src/test/java/org/springframework/security/test/web/servlet/response/RedirectMatcher.java
  2. 6
      test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java
  3. 4
      test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java
  4. 5
      test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java

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

@ -0,0 +1,42 @@ @@ -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);
}
};
}
}

6
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/AuthenticationTests.java

@ -16,6 +16,7 @@ @@ -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 { @@ -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 { @@ -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

4
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomConfigAuthenticationTests.java

@ -64,7 +64,7 @@ public class CustomConfigAuthenticationTests { @@ -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 { @@ -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());
}

5
test/src/test/java/org/springframework/security/test/web/servlet/showcase/login/CustomLoginRequestBuilderAuthenticationTests.java

@ -15,6 +15,7 @@ @@ -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 { @@ -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 { @@ -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());
}

Loading…
Cancel
Save