Set all strategies in CNM factory bean
ContentNegotiationManagerFactoryBean now provides an option to explicitly set the strategies to use vs customizing a fixed list of default strategies. Issue: SPR-11114
This commit is contained in:
@@ -89,6 +89,25 @@ public class ContentNegotiationManagerFactoryBeanTests {
|
||||
Collections.singletonList(MediaType.IMAGE_GIF), manager.resolveMediaTypes(this.webRequest));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void explicitStrategies() throws Exception {
|
||||
Map<String, MediaType> mediaTypes = Collections.singletonMap("bar", new MediaType("application", "bar"));
|
||||
ParameterContentNegotiationStrategy strategy1 = new ParameterContentNegotiationStrategy(mediaTypes);
|
||||
HeaderContentNegotiationStrategy strategy2 = new HeaderContentNegotiationStrategy();
|
||||
List<ContentNegotiationStrategy> strategies = Arrays.asList(strategy1, strategy2);
|
||||
this.factoryBean.setStrategies(strategies);
|
||||
this.factoryBean.afterPropertiesSet();
|
||||
ContentNegotiationManager manager = this.factoryBean.getObject();
|
||||
|
||||
assertEquals(strategies, manager.getStrategies());
|
||||
|
||||
this.servletRequest.setRequestURI("/flower");
|
||||
this.servletRequest.addParameter("format", "bar");
|
||||
assertEquals(Collections.singletonList(new MediaType("application", "bar")),
|
||||
manager.resolveMediaTypes(this.webRequest));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void favorPath() throws Exception {
|
||||
this.factoryBean.setFavorPathExtension(true);
|
||||
|
||||
Reference in New Issue
Block a user