diff --git a/initializr/src/test/groovy/io/spring/initializr/web/AbstractInitializrControllerIntegrationTests.groovy b/initializr/src/test/groovy/io/spring/initializr/web/AbstractInitializrControllerIntegrationTests.groovy index 7b9ef8c6..eada1bbc 100644 --- a/initializr/src/test/groovy/io/spring/initializr/web/AbstractInitializrControllerIntegrationTests.groovy +++ b/initializr/src/test/groovy/io/spring/initializr/web/AbstractInitializrControllerIntegrationTests.groovy @@ -107,18 +107,22 @@ abstract class AbstractInitializrControllerIntegrationTests { restTemplate.getForObject(createUrl(context), byte[]) } - protected ResponseEntity invokeHome(String userAgentHeader, String acceptHeader) { - execute('/', String, userAgentHeader, acceptHeader) + protected ResponseEntity invokeHome(String userAgentHeader, String... acceptHeaders) { + execute('/', String, userAgentHeader, acceptHeaders) } protected ResponseEntity execute(String contextPath, Class responseType, - String userAgentHeader, String acceptHeader) { + String userAgentHeader, String... acceptHeaders) { HttpHeaders headers = new HttpHeaders(); if (userAgentHeader) { headers.set("User-Agent", userAgentHeader); } - if (acceptHeader) { - headers.setAccept(Collections.singletonList(MediaType.parseMediaType(acceptHeader))) + if (acceptHeaders) { + List mediaTypes = new ArrayList<>() + for (String acceptHeader : acceptHeaders) { + mediaTypes.add(MediaType.parseMediaType(acceptHeader)) + } + headers.setAccept(mediaTypes) } else { headers.setAccept(Collections.emptyList()) } diff --git a/initializr/src/test/groovy/io/spring/initializr/web/MainControllerIntegrationTests.groovy b/initializr/src/test/groovy/io/spring/initializr/web/MainControllerIntegrationTests.groovy index 78f709dd..14ca28dd 100644 --- a/initializr/src/test/groovy/io/spring/initializr/web/MainControllerIntegrationTests.groovy +++ b/initializr/src/test/groovy/io/spring/initializr/web/MainControllerIntegrationTests.groovy @@ -173,6 +173,14 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra validateCurrentMetadata(new JSONObject(response.body)) } + @Test + void metadataWithSeveralAcceptHeader() { + ResponseEntity response = invokeHome(null, + 'application/vnd.initializr.v2.1+json', 'application/vnd.initializr.v2+json') + validateContentType(response, CURRENT_METADATA_MEDIA_TYPE) + validateCurrentMetadata(new JSONObject(response.body)) + } + @Test void metadataWithUnknownAcceptHeader() { try {