diff options
author | Andrey Zelenkov <zelenkov@nginx.com> | 2018-06-08 18:32:55 +0300 |
---|---|---|
committer | Andrey Zelenkov <zelenkov@nginx.com> | 2018-06-08 18:32:55 +0300 |
commit | f2a856aa3b0ea0e0d892a9a3865c54de83c71a74 (patch) | |
tree | bcc68a2f5790bb6c46ec1fa56bac2bee9ba00114 /test/go | |
parent | 2b39ed5dfb56fa01e38ee8540973f4eb42a1ff82 (diff) | |
download | unit-f2a856aa3b0ea0e0d892a9a3865c54de83c71a74.tar.gz unit-f2a856aa3b0ea0e0d892a9a3865c54de83c71a74.tar.bz2 |
Tests: Go application tests.
Diffstat (limited to '')
-rw-r--r-- | test/go/404/404.html | 6 | ||||
-rw-r--r-- | test/go/404/app.go | 22 | ||||
-rw-r--r-- | test/go/command_line_arguments/app.go | 23 | ||||
-rw-r--r-- | test/go/cookies/app.go | 19 | ||||
-rw-r--r-- | test/go/empty/app.go | 13 | ||||
-rw-r--r-- | test/go/get_variables/app.go | 17 | ||||
-rw-r--r-- | test/go/mirror/app.go | 21 | ||||
-rw-r--r-- | test/go/post_variables/app.go | 19 | ||||
-rw-r--r-- | test/go/variables/app.go | 30 |
9 files changed, 170 insertions, 0 deletions
diff --git a/test/go/404/404.html b/test/go/404/404.html new file mode 100644 index 00000000..6d0c635a --- /dev/null +++ b/test/go/404/404.html @@ -0,0 +1,6 @@ +<html> +<head><title>404 Not Found</title></head> +<body bgcolor="white"> +<center><h1>404 Not Found</h1></center> +</body> +</html> diff --git a/test/go/404/app.go b/test/go/404/app.go new file mode 100644 index 00000000..abb33066 --- /dev/null +++ b/test/go/404/app.go @@ -0,0 +1,22 @@ +package main + +import ( + "io" + "io/ioutil" + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + b, e := ioutil.ReadFile("404.html") + + if e == nil { + w.WriteHeader(http.StatusNotFound) + io.WriteString(w, string(b)) + } +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/command_line_arguments/app.go b/test/go/command_line_arguments/app.go new file mode 100644 index 00000000..228e07c0 --- /dev/null +++ b/test/go/command_line_arguments/app.go @@ -0,0 +1,23 @@ +package main + +import ( + "io" + "os" + "fmt" + "strings" + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + args := strings.Join(os.Args[1:], ",") + + w.Header().Add("X-Arg-0", fmt.Sprintf("%v", os.Args[0])) + w.Header().Add("Content-Length", fmt.Sprintf("%v", len(args))) + io.WriteString(w, args) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/cookies/app.go b/test/go/cookies/app.go new file mode 100644 index 00000000..6fb9def0 --- /dev/null +++ b/test/go/cookies/app.go @@ -0,0 +1,19 @@ +package main + +import ( + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + cookie1, _ := r.Cookie("var1") + cookie2, _ := r.Cookie("var2") + + w.Header().Set("X-Cookie-1", cookie1.Value) + w.Header().Set("X-Cookie-2", cookie2.Value) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/empty/app.go b/test/go/empty/app.go new file mode 100644 index 00000000..2e07405f --- /dev/null +++ b/test/go/empty/app.go @@ -0,0 +1,13 @@ +package main + +import ( + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) {} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/get_variables/app.go b/test/go/get_variables/app.go new file mode 100644 index 00000000..563febc8 --- /dev/null +++ b/test/go/get_variables/app.go @@ -0,0 +1,17 @@ +package main + +import ( + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + w.Header().Set("X-Var-1", r.URL.Query().Get("var1")) + w.Header().Set("X-Var-2", r.URL.Query().Get("var2")) + w.Header().Set("X-Var-3", r.URL.Query().Get("var3")) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/mirror/app.go b/test/go/mirror/app.go new file mode 100644 index 00000000..82b1c92d --- /dev/null +++ b/test/go/mirror/app.go @@ -0,0 +1,21 @@ +package main + +import ( + "io" + "fmt" + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + var buf [32768]byte; + len, _ := r.Body.Read(buf[:]) + + w.Header().Add("Content-Length", fmt.Sprintf("%v", len)) + io.WriteString(w, string(buf[:len])) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/post_variables/app.go b/test/go/post_variables/app.go new file mode 100644 index 00000000..433afc62 --- /dev/null +++ b/test/go/post_variables/app.go @@ -0,0 +1,19 @@ +package main + +import ( + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + + w.Header().Set("X-Var-1", r.Form.Get("var1")) + w.Header().Set("X-Var-2", r.Form.Get("var2")) + w.Header().Set("X-Var-3", r.Form.Get("var3")) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} diff --git a/test/go/variables/app.go b/test/go/variables/app.go new file mode 100644 index 00000000..5db4ac67 --- /dev/null +++ b/test/go/variables/app.go @@ -0,0 +1,30 @@ +package main + +import ( + "io" + "fmt" + "net/http" + "nginx/unit" +) + +func handler(w http.ResponseWriter, r *http.Request) { + var buf [4096]byte; + len, _ := r.Body.Read(buf[:]) + + w.Header().Set("Request-Method", r.Method) + w.Header().Set("Request-Uri", r.RequestURI) + w.Header().Set("Server-Protocol", r.Proto) + w.Header().Set("Server-Protocol-Major", fmt.Sprintf("%v", r.ProtoMajor)) + w.Header().Set("Server-Protocol-Minor", fmt.Sprintf("%v", r.ProtoMinor)) + w.Header().Set("Content-Length", fmt.Sprintf("%v", len)) + w.Header().Set("Content-Type", r.Header.Get("Content-Type")) + w.Header().Set("Custom-Header", r.Header.Get("Custom-Header")) + w.Header().Set("Http-Host", r.Header.Get("Host")) + + io.WriteString(w, string(buf[:len])) +} + +func main() { + http.HandleFunc("/", handler) + unit.ListenAndServe(":7080", nil) +} |