From be1b5f115ed16d0a2e26076f517c501b371df47d Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 12 Feb 2015 18:32:03 +0000 Subject: [PATCH] Add test apps for form encoding See file.txt for example of how to test manually (or just use the UI at /ui) --- .../src/main/resources/application.properties | 4 +- .../src/test/java/apps/UiApplication.java | 43 +++++++++++++++++++ .../java/demo/ZuulProxyApplicationTests.java | 4 +- zuul-proxy/src/test/resources/file.txt | 14 ++++++ zuul-proxy/src/test/resources/ui.properties | 3 ++ 5 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 zuul-proxy/src/test/java/apps/UiApplication.java create mode 100644 zuul-proxy/src/test/resources/file.txt create mode 100644 zuul-proxy/src/test/resources/ui.properties diff --git a/zuul-proxy/src/main/resources/application.properties b/zuul-proxy/src/main/resources/application.properties index 5f0bfd1..1b1354d 100644 --- a/zuul-proxy/src/main/resources/application.properties +++ b/zuul-proxy/src/main/resources/application.properties @@ -1,2 +1,4 @@ spring.application.name: zuulproxy -server.port: 9900 \ No newline at end of file +server.port: 9900 +zuul.routes.ui.path: /ui/** +zuul.routes.ui.url: http://localhost:8080 \ No newline at end of file diff --git a/zuul-proxy/src/test/java/apps/UiApplication.java b/zuul-proxy/src/test/java/apps/UiApplication.java new file mode 100644 index 0000000..d1c0388 --- /dev/null +++ b/zuul-proxy/src/test/java/apps/UiApplication.java @@ -0,0 +1,43 @@ +package apps; + +import java.io.IOException; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.support.ServletUriComponentsBuilder; + +@SpringBootApplication +@RestController +public class UiApplication { + + @RequestMapping("/") + public String home() { + return "Hello World"; + } + + @RequestMapping(value = "/upload", method = RequestMethod.GET) + public String upload() { + ServletUriComponentsBuilder builder = ServletUriComponentsBuilder + .fromCurrentContextPath(); + return "" + + "
" + + "File to upload: " + + "
" + ""; + } + + @RequestMapping(value = "/upload", method = RequestMethod.POST) + public String accept(@RequestParam MultipartFile file) throws IOException { + return new String(file.getBytes()); + } + + public static void main(String[] args) { + new SpringApplicationBuilder(UiApplication.class).properties( + "spring.config.name:ui").run(args); + } +} diff --git a/zuul-proxy/src/test/java/demo/ZuulProxyApplicationTests.java b/zuul-proxy/src/test/java/demo/ZuulProxyApplicationTests.java index 3bef448..3fa22c9 100644 --- a/zuul-proxy/src/test/java/demo/ZuulProxyApplicationTests.java +++ b/zuul-proxy/src/test/java/demo/ZuulProxyApplicationTests.java @@ -11,8 +11,10 @@ import org.springframework.cloud.client.discovery.noop.NoopDiscoveryClient; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import apps.UiApplication; + @RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = ZuulProxyApplication.class) +@SpringApplicationConfiguration(classes = UiApplication.class) @DirtiesContext public class ZuulProxyApplicationTests { diff --git a/zuul-proxy/src/test/resources/file.txt b/zuul-proxy/src/test/resources/file.txt new file mode 100644 index 0000000..44ea73f --- /dev/null +++ b/zuul-proxy/src/test/resources/file.txt @@ -0,0 +1,14 @@ +--FOO +Content-Disposition: form-data; name="file"; filename="foo.txt" +Content-Type: text/plain + +POST this file to the proxy to test multipart file data: + +$ curl -v -H "Content-Type: multipart/form-data; boundary=FOO" --data-binary @thisfile + + +--FOO +Content-Disposition: form-data; name="name" + +Dave +--FOO-- diff --git a/zuul-proxy/src/test/resources/ui.properties b/zuul-proxy/src/test/resources/ui.properties new file mode 100644 index 0000000..04b145f --- /dev/null +++ b/zuul-proxy/src/test/resources/ui.properties @@ -0,0 +1,3 @@ +spring.application.name: ui +multipart.maxFileSize: 128KB +multipart.maxRequestSize: 128KB \ No newline at end of file