1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.rest.annotation;
18
19 import org.apache.juneau.*;
20 import org.apache.juneau.http.annotation.*;
21 import org.apache.juneau.rest.*;
22 import org.apache.juneau.rest.mock.*;
23 import org.junit.jupiter.api.*;
24
25 class HasFormData_Test extends TestBase {
26
27
28
29
30
31 @Rest
32 public static class A {
33 @RestPost
34 public String a(RestRequest req, @HasFormData("p1") boolean p1, @HasFormData("p2") Boolean p2) throws Exception {
35 var f = req.getFormParams();
36 return "p1=["+p1+","+f.contains("p1")+"],p2=["+p2+","+f.contains("p2")+"]";
37 }
38 }
39
40 @Test void a01_basic() throws Exception {
41 var a = MockRestClient.build(A.class);
42 a.post("/a", "p1=p1&p2=2").run().assertContent("p1=[true,true],p2=[true,true]");
43 a.post("/a", "p1&p2").run().assertContent("p1=[true,true],p2=[true,true]");
44 a.post("/a", "p1=&p2=").run().assertContent("p1=[true,true],p2=[true,true]");
45 a.post("/a", null).run().assertContent("p1=[false,false],p2=[false,false]");
46 a.post("/a", "p1").run().assertContent("p1=[true,true],p2=[false,false]");
47 a.post("/a", "p1=").run().assertContent("p1=[true,true],p2=[false,false]");
48 a.post("/a", "p2").run().assertContent("p1=[false,false],p2=[true,true]");
49 a.post("/a", "p2=").run().assertContent("p1=[false,false],p2=[true,true]");
50 a.post("/a", "p1=foo&p2").run().assertContent("p1=[true,true],p2=[true,true]");
51 a.post("/a", "p1&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
52 String x = "a%2Fb%25c%3Dd+e";
53 a.post("/a", "p1="+x+"&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
54 }
55 }