diff options
Diffstat (limited to 'tests/plugins/http/plugin_middleware.go')
-rw-r--r-- | tests/plugins/http/plugin_middleware.go | 69 |
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" +} |