summaryrefslogtreecommitdiffhomepage
path: root/test/go
diff options
context:
space:
mode:
authorAndrey Zelenkov <zelenkov@nginx.com>2018-06-08 18:32:55 +0300
committerAndrey Zelenkov <zelenkov@nginx.com>2018-06-08 18:32:55 +0300
commitf2a856aa3b0ea0e0d892a9a3865c54de83c71a74 (patch)
treebcc68a2f5790bb6c46ec1fa56bac2bee9ba00114 /test/go
parent2b39ed5dfb56fa01e38ee8540973f4eb42a1ff82 (diff)
downloadunit-f2a856aa3b0ea0e0d892a9a3865c54de83c71a74.tar.gz
unit-f2a856aa3b0ea0e0d892a9a3865c54de83c71a74.tar.bz2
Tests: Go application tests.
Diffstat (limited to 'test/go')
-rw-r--r--test/go/404/404.html6
-rw-r--r--test/go/404/app.go22
-rw-r--r--test/go/command_line_arguments/app.go23
-rw-r--r--test/go/cookies/app.go19
-rw-r--r--test/go/empty/app.go13
-rw-r--r--test/go/get_variables/app.go17
-rw-r--r--test/go/mirror/app.go21
-rw-r--r--test/go/post_variables/app.go19
-rw-r--r--test/go/variables/app.go30
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)
+}