|
|
|
|
@ -16,16 +16,13 @@
@@ -16,16 +16,13 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.web.servlet.config.annotation; |
|
|
|
|
|
|
|
|
|
import java.nio.charset.Charset; |
|
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
|
|
|
|
|
import org.springframework.cache.concurrent.ConcurrentMapCache; |
|
|
|
|
import org.springframework.core.io.Resource; |
|
|
|
|
import org.springframework.http.CacheControl; |
|
|
|
|
import org.springframework.web.accept.ContentNegotiationManager; |
|
|
|
|
import org.springframework.web.context.support.GenericWebApplicationContext; |
|
|
|
|
@ -137,19 +134,15 @@ class ResourceHandlerRegistryTests {
@@ -137,19 +134,15 @@ class ResourceHandlerRegistryTests {
|
|
|
|
|
this.registration.resourceChain(true).addResolver(mockResolver).addTransformer(mockTransformer); |
|
|
|
|
|
|
|
|
|
ResourceHttpRequestHandler handler = getHandler("/resources/**"); |
|
|
|
|
List<ResourceResolver> resolvers = handler.getResourceResolvers(); |
|
|
|
|
assertThat(resolvers).hasSize(4); |
|
|
|
|
assertThat(resolvers).element(0).isInstanceOf(CachingResourceResolver.class); |
|
|
|
|
CachingResourceResolver cachingResolver = (CachingResourceResolver) resolvers.get(0); |
|
|
|
|
assertThat(cachingResolver.getCache()).isInstanceOf(ConcurrentMapCache.class); |
|
|
|
|
assertThat(resolvers).element(1).isEqualTo(mockResolver); |
|
|
|
|
assertThat(resolvers).element(2).isInstanceOf(WebJarsResourceResolver.class); |
|
|
|
|
assertThat(resolvers).element(3).isInstanceOf(PathResourceResolver.class); |
|
|
|
|
|
|
|
|
|
List<ResourceTransformer> transformers = handler.getResourceTransformers(); |
|
|
|
|
assertThat(transformers).hasSize(2); |
|
|
|
|
assertThat(transformers).element(0).isInstanceOf(CachingResourceTransformer.class); |
|
|
|
|
assertThat(transformers).element(1).isEqualTo(mockTransformer); |
|
|
|
|
assertThat(handler.getResourceResolvers()).satisfiesExactly( |
|
|
|
|
zero -> assertThat(zero).isInstanceOfSatisfying(CachingResourceResolver.class, |
|
|
|
|
cachingResolver -> assertThat(cachingResolver.getCache()).isInstanceOf(ConcurrentMapCache.class)), |
|
|
|
|
one -> assertThat(one).isEqualTo(mockResolver), |
|
|
|
|
two -> assertThat(two).isInstanceOf(WebJarsResourceResolver.class), |
|
|
|
|
three -> assertThat(three).isInstanceOf(PathResourceResolver.class)); |
|
|
|
|
assertThat(handler.getResourceTransformers()).satisfiesExactly( |
|
|
|
|
zero -> assertThat(zero).isInstanceOf(CachingResourceTransformer.class), |
|
|
|
|
one -> assertThat(one).isEqualTo(mockTransformer)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -157,13 +150,9 @@ class ResourceHandlerRegistryTests {
@@ -157,13 +150,9 @@ class ResourceHandlerRegistryTests {
|
|
|
|
|
this.registration.resourceChain(false); |
|
|
|
|
|
|
|
|
|
ResourceHttpRequestHandler handler = getHandler("/resources/**"); |
|
|
|
|
List<ResourceResolver> resolvers = handler.getResourceResolvers(); |
|
|
|
|
assertThat(resolvers).hasSize(2); |
|
|
|
|
assertThat(resolvers).element(0).isInstanceOf(WebJarsResourceResolver.class); |
|
|
|
|
assertThat(resolvers).element(1).isInstanceOf(PathResourceResolver.class); |
|
|
|
|
|
|
|
|
|
List<ResourceTransformer> transformers = handler.getResourceTransformers(); |
|
|
|
|
assertThat(transformers).isEmpty(); |
|
|
|
|
assertThat(handler.getResourceResolvers()).hasExactlyElementsOfTypes( |
|
|
|
|
WebJarsResourceResolver.class, PathResourceResolver.class); |
|
|
|
|
assertThat(handler.getResourceTransformers()).isEmpty(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -175,17 +164,13 @@ class ResourceHandlerRegistryTests {
@@ -175,17 +164,13 @@ class ResourceHandlerRegistryTests {
|
|
|
|
|
this.registration.resourceChain(true).addResolver(versionResolver); |
|
|
|
|
|
|
|
|
|
ResourceHttpRequestHandler handler = getHandler("/resources/**"); |
|
|
|
|
List<ResourceResolver> resolvers = handler.getResourceResolvers(); |
|
|
|
|
assertThat(resolvers).hasSize(4); |
|
|
|
|
assertThat(resolvers).element(0).isInstanceOf(CachingResourceResolver.class); |
|
|
|
|
assertThat(resolvers).element(1).isSameAs(versionResolver); |
|
|
|
|
assertThat(resolvers).element(2).isInstanceOf(WebJarsResourceResolver.class); |
|
|
|
|
assertThat(resolvers).element(3).isInstanceOf(PathResourceResolver.class); |
|
|
|
|
|
|
|
|
|
List<ResourceTransformer> transformers = handler.getResourceTransformers(); |
|
|
|
|
assertThat(transformers).hasSize(2); |
|
|
|
|
assertThat(transformers).element(0).isInstanceOf(CachingResourceTransformer.class); |
|
|
|
|
assertThat(transformers).element(1).isInstanceOf(CssLinkResourceTransformer.class); |
|
|
|
|
assertThat(handler.getResourceResolvers()).satisfiesExactly( |
|
|
|
|
zero -> assertThat(zero).isInstanceOf(CachingResourceResolver.class), |
|
|
|
|
one -> assertThat(one).isSameAs(versionResolver), |
|
|
|
|
two -> assertThat(two).isInstanceOf(WebJarsResourceResolver.class), |
|
|
|
|
three -> assertThat(three).isInstanceOf(PathResourceResolver.class)); |
|
|
|
|
assertThat(handler.getResourceTransformers()).hasExactlyElementsOfTypes( |
|
|
|
|
CachingResourceTransformer.class, CssLinkResourceTransformer.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -224,10 +209,8 @@ class ResourceHandlerRegistryTests {
@@ -224,10 +209,8 @@ class ResourceHandlerRegistryTests {
|
|
|
|
|
assertThat(handler.getUrlPathHelper()).isNotNull(); |
|
|
|
|
|
|
|
|
|
List<ResourceResolver> resolvers = handler.getResourceResolvers(); |
|
|
|
|
PathResourceResolver resolver = (PathResourceResolver) resolvers.get(resolvers.size()-1); |
|
|
|
|
Map<Resource, Charset> locationCharsets = resolver.getLocationCharsets(); |
|
|
|
|
assertThat(locationCharsets).hasSize(1); |
|
|
|
|
assertThat(locationCharsets.values()).element(0).isEqualTo(StandardCharsets.ISO_8859_1); |
|
|
|
|
PathResourceResolver resolver = (PathResourceResolver) resolvers.get(resolvers.size() - 1); |
|
|
|
|
assertThat(resolver.getLocationCharsets()).hasSize(1).containsValue(StandardCharsets.ISO_8859_1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|