summaryrefslogtreecommitdiff
path: root/tests/plugins/http/plugin_middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/plugins/http/plugin_middleware.go')
-rw-r--r--tests/plugins/http/plugin_middleware.go69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/plugins/http/plugin_middleware.go b/tests/plugins/http/plugin_middleware.go
new file mode 100644
index 00000000..00640b69
--- /dev/null
+++ b/tests/plugins/http/plugin_middleware.go
@@ -0,0 +1,69 @@
+package http
+
+import (
+ "net/http"
+
+ "github.com/spiral/roadrunner/v2/plugins/config"
+)
+
+// PluginMiddleware test
+type PluginMiddleware struct {
+ config config.Configurer
+}
+
+// Init test
+func (p *PluginMiddleware) Init(cfg config.Configurer) error {
+ p.config = cfg
+ return nil
+}
+
+// Middleware test
+func (p *PluginMiddleware) Middleware(next http.Handler) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path == "/halt" {
+ w.WriteHeader(500)
+ _, err := w.Write([]byte("halted"))
+ if err != nil {
+ panic("error writing the data to the http reply")
+ }
+ } else {
+ next.ServeHTTP(w, r)
+ }
+ }
+}
+
+// Name test
+func (p *PluginMiddleware) Name() string {
+ return "pluginMiddleware"
+}
+
+// PluginMiddleware2 test
+type PluginMiddleware2 struct {
+ config config.Configurer
+}
+
+// Init test
+func (p *PluginMiddleware2) Init(cfg config.Configurer) error {
+ p.config = cfg
+ return nil
+}
+
+// Middleware test
+func (p *PluginMiddleware2) Middleware(next http.Handler) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path == "/boom" {
+ w.WriteHeader(555)
+ _, err := w.Write([]byte("boom"))
+ if err != nil {
+ panic("error writing the data to the http reply")
+ }
+ } else {
+ next.ServeHTTP(w, r)
+ }
+ }
+}
+
+// Name test
+func (p *PluginMiddleware2) Name() string {
+ return "pluginMiddleware2"
+}