@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 2020 the original author or authors .
* Copyright 2012 - 2021 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 .
@ -17,6 +17,7 @@
@@ -17,6 +17,7 @@
package org.springframework.boot.autoconfigure.web.reactive.error ;
import java.util.Collections ;
import java.util.List ;
import java.util.Map ;
import org.junit.jupiter.api.Test ;
@ -28,9 +29,12 @@ import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWeb
@@ -28,9 +29,12 @@ import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWeb
import org.springframework.boot.web.reactive.error.ErrorAttributes ;
import org.springframework.context.ApplicationContext ;
import org.springframework.http.MediaType ;
import org.springframework.http.codec.HttpMessageReader ;
import org.springframework.http.codec.ServerCodecConfigurer ;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest ;
import org.springframework.mock.web.server.MockServerWebExchange ;
import org.springframework.test.util.ReflectionTestUtils ;
import org.springframework.web.reactive.function.server.ServerRequest ;
import org.springframework.web.reactive.result.view.View ;
import org.springframework.web.reactive.result.view.ViewResolver ;
import org.springframework.web.server.ServerWebExchange ;
@ -42,7 +46,7 @@ import static org.mockito.BDDMockito.given;
@@ -42,7 +46,7 @@ import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock ;
/ * *
* Tests for { @link Abstrac tErrorWebExceptionHandler} .
* Tests for { @link Defaul tErrorWebExceptionHandler} .
*
* @author Phillip Webb
* @author Madhura Bhave
@ -62,10 +66,10 @@ class DefaultErrorWebExceptionHandlerTests {
@@ -62,10 +66,10 @@ class DefaultErrorWebExceptionHandlerTests {
@Test
void nonStandardErrorStatusCodeShouldNotFail ( ) {
ErrorAttributes errorAttributes = mock ( ErrorAttributes . class ) ;
given ( errorAttributes . getErrorAttributes ( any ( ) , any ( ) ) ) . willReturn ( getErrorAttributes ( ) ) ;
Resources resourceProperties = new Resources ( ) ;
ErrorProperties errorProperties = new ErrorProperties ( ) ;
ApplicationContext context = new AnnotationConfigReactiveWebApplicationContext ( ) ;
given ( errorAttributes . getErrorAttributes ( any ( ) , any ( ) ) ) . willReturn ( getErrorAttributes ( ) ) ;
DefaultErrorWebExceptionHandler exceptionHandler = new DefaultErrorWebExceptionHandler ( errorAttributes ,
resourceProperties , errorProperties , context ) ;
setupViewResolver ( exceptionHandler ) ;
@ -86,4 +90,20 @@ class DefaultErrorWebExceptionHandlerTests {
@@ -86,4 +90,20 @@ class DefaultErrorWebExceptionHandlerTests {
exceptionHandler . setViewResolvers ( Collections . singletonList ( viewResolver ) ) ;
}
@Test
void acceptsTextHtmlShouldNotConsiderMediaAllEvenWithQuality ( ) {
ErrorAttributes errorAttributes = mock ( ErrorAttributes . class ) ;
Resources resourceProperties = new Resources ( ) ;
ErrorProperties errorProperties = new ErrorProperties ( ) ;
ApplicationContext context = new AnnotationConfigReactiveWebApplicationContext ( ) ;
DefaultErrorWebExceptionHandler exceptionHandler = new DefaultErrorWebExceptionHandler ( errorAttributes ,
resourceProperties , errorProperties , context ) ;
MediaType allWithQuality = new MediaType ( MediaType . ALL . getType ( ) , MediaType . ALL . getSubtype ( ) , 0 . 9 ) ;
MockServerWebExchange exchange = MockServerWebExchange
. from ( MockServerHttpRequest . get ( "/test" ) . accept ( allWithQuality ) ) ;
List < HttpMessageReader < ? > > readers = ServerCodecConfigurer . create ( ) . getReaders ( ) ;
ServerRequest request = ServerRequest . create ( exchange , readers ) ;
assertThat ( exceptionHandler . acceptsTextHtml ( ) . test ( request ) ) . isFalse ( ) ;
}
}