Skip to content

Commit 94e5936

Browse files
author
Vishal Rana
committed
Fixed test cases
Signed-off-by: Vishal Rana <[email protected]>
1 parent 4f57582 commit 94e5936

File tree

11 files changed

+101
-69
lines changed

11 files changed

+101
-69
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ package main
1010

1111
import (
1212
"github.com/labstack/echo"
13-
"github.com/labstack/echo/engine/fasthttp"
13+
// "github.com/labstack/echo/engine/fasthttp"
14+
"github.com/labstack/echo/engine/standard"
1415
mw "github.com/labstack/echo/middleware"
1516
)
1617

@@ -25,10 +26,10 @@ func main() {
2526
})
2627

2728
// FastHTTP
28-
e.Run(fasthttp.New(":4444", e))
29+
// e.Run(fasthttp.New(":4444"))
2930

3031
// Standard
31-
// e.Run(standard.New(":4444"))
32+
e.Run(standard.New(":4444"))
3233
}
3334
```
3435

context.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"time"
99

1010
"github.com/labstack/echo/engine"
11+
"github.com/labstack/echo/logger"
1112

1213
"net/url"
1314

@@ -45,7 +46,7 @@ type (
4546
NoContent(int) error
4647
Redirect(int, string) error
4748
Error(err error)
48-
Logger() Logger
49+
Logger() logger.Logger
4950
Object() *context
5051
}
5152

@@ -302,7 +303,7 @@ func (c *context) Error(err error) {
302303
}
303304

304305
// Logger returns the `Logger` instance.
305-
func (c *context) Logger() Logger {
306+
func (c *context) Logger() logger.Logger {
306307
return c.echo.logger
307308
}
308309

echo.go

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"encoding/xml"
1818

1919
"github.com/labstack/echo/engine"
20+
"github.com/labstack/echo/logger"
2021
"github.com/labstack/gommon/log"
2122
)
2223

@@ -35,7 +36,7 @@ type (
3536
hook engine.HandlerFunc
3637
autoIndex bool
3738
router *Router
38-
logger Logger
39+
logger logger.Logger
3940
}
4041

4142
Route struct {
@@ -81,24 +82,6 @@ type (
8182
Renderer interface {
8283
Render(w io.Writer, name string, data interface{}) error
8384
}
84-
85-
// Logger is the interface that declares Echo's logging system.
86-
Logger interface {
87-
Debug(...interface{})
88-
Debugf(string, ...interface{})
89-
90-
Info(...interface{})
91-
Infof(string, ...interface{})
92-
93-
Warn(...interface{})
94-
Warnf(string, ...interface{})
95-
96-
Error(...interface{})
97-
Errorf(string, ...interface{})
98-
99-
Fatal(...interface{})
100-
Fatalf(string, ...interface{})
101-
}
10285
)
10386

10487
const (
@@ -242,12 +225,12 @@ func (e *Echo) Router() *Router {
242225
}
243226

244227
// SetLogger sets the logger instance.
245-
func (e *Echo) SetLogger(l Logger) {
228+
func (e *Echo) SetLogger(l logger.Logger) {
246229
e.logger = l
247230
}
248231

249232
// Logger returns the logger instance.
250-
func (e *Echo) Logger() Logger {
233+
func (e *Echo) Logger() logger.Logger {
251234
return e.logger
252235
}
253236

@@ -560,8 +543,10 @@ func (e *Echo) ServeHTTP(req engine.Request, res engine.Response) {
560543
// }
561544

562545
// Run starts the HTTP engine.
563-
func (*Echo) Run(e engine.Engine) {
564-
e.Start()
546+
func (e *Echo) Run(eng engine.Engine) {
547+
eng.SetHandler(e.ServeHTTP)
548+
eng.SetLogger(e.logger)
549+
eng.Start()
565550
}
566551

567552
func NewHTTPError(code int, msg ...string) *HTTPError {

echo_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ func TestEchoNotFound(t *testing.T) {
308308
e := New()
309309
req := test.NewRequest(GET, "/files", nil)
310310
rec := test.NewResponseRecorder()
311-
e.Handle(req, rec)
311+
e.ServeHTTP(req, rec)
312312
assert.Equal(t, http.StatusNotFound, rec.Status())
313313
}
314314

@@ -319,7 +319,7 @@ func TestEchoMethodNotAllowed(t *testing.T) {
319319
})
320320
req := test.NewRequest(POST, "/", nil)
321321
rec := test.NewResponseRecorder()
322-
e.Handle(req, rec)
322+
e.ServeHTTP(req, rec)
323323
assert.Equal(t, http.StatusMethodNotAllowed, rec.Status())
324324
}
325325

@@ -350,7 +350,7 @@ func TestEchoHook(t *testing.T) {
350350
})
351351
req := test.NewRequest(GET, "/test/", nil)
352352
rec := test.NewResponseRecorder()
353-
e.Handle(req, rec)
353+
e.ServeHTTP(req, rec)
354354
assert.Equal(t, req.URL().Path(), "/test")
355355
}
356356

@@ -371,6 +371,6 @@ func testMethod(t *testing.T, method, path string, e *Echo) {
371371
func request(method, path string, e *Echo) (int, string) {
372372
req := test.NewRequest(method, path, nil)
373373
rec := test.NewResponseRecorder()
374-
e.Handle(req, rec)
374+
e.ServeHTTP(req, rec)
375375
return rec.Status(), rec.Body.String()
376376
}

engine/engine.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@ package engine
33
import (
44
"io"
55
"time"
6+
7+
"github.com/labstack/echo/logger"
68
)
79

810
type (
911
HandlerFunc func(Request, Response)
1012

1113
Engine interface {
14+
SetHandler(HandlerFunc)
15+
SetLogger(logger.Logger)
1216
Start()
1317
}
1418

engine/fasthttp/response.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ package fasthttp
55
import (
66
"io"
77

8-
"github.com/labstack/echo"
98
"github.com/labstack/echo/engine"
9+
"github.com/labstack/echo/logger"
10+
"github.com/labstack/gommon/log"
1011
"github.com/valyala/fasthttp"
1112
)
1213

@@ -18,16 +19,16 @@ type (
1819
size int64
1920
committed bool
2021
writer io.Writer
21-
logger echo.Logger
22+
logger logger.Logger
2223
}
2324
)
2425

25-
func NewResponse(c *fasthttp.RequestCtx, l echo.Logger) *Response {
26+
func _NewResponse(c *fasthttp.RequestCtx) *Response {
2627
return &Response{
2728
context: c,
2829
header: &ResponseHeader{c.Response.Header},
2930
writer: c,
30-
logger: l,
31+
logger: log.New("test"),
3132
}
3233
}
3334

engine/fasthttp/server.go

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ package fasthttp
55
import (
66
"net/http"
77

8-
"github.com/labstack/echo"
98
"github.com/labstack/echo/engine"
9+
"github.com/labstack/echo/logger"
10+
"github.com/labstack/gommon/log"
1011
"github.com/valyala/fasthttp"
1112
)
1213

@@ -15,31 +16,42 @@ type (
1516
*http.Server
1617
config *engine.Config
1718
handler engine.HandlerFunc
18-
logger echo.Logger
19+
logger logger.Logger
1920
}
2021
)
2122

22-
func New(addr string, e *echo.Echo) *Server {
23+
func New(addr string) *Server {
2324
c := &engine.Config{Address: addr}
24-
return NewConfig(c, e)
25+
return NewConfig(c)
2526
}
2627

27-
func NewTLS(addr, certfile, keyfile string, e *echo.Echo) *Server {
28+
func NewTLS(addr, certfile, keyfile string) *Server {
2829
c := &engine.Config{
2930
Address: addr,
3031
TLSCertfile: certfile,
3132
TLSKeyfile: keyfile,
3233
}
33-
return NewConfig(c, e)
34+
return NewConfig(c)
3435
}
3536

36-
func NewConfig(c *engine.Config, e *echo.Echo) *Server {
37-
return &Server{
38-
Server: new(http.Server),
39-
config: c,
40-
handler: e.ServeHTTP,
41-
logger: e.Logger(),
37+
func NewConfig(c *engine.Config) (s *Server) {
38+
s = &Server{
39+
Server: new(http.Server),
40+
config: c,
41+
handler: func(req engine.Request, res engine.Response) {
42+
s.logger.Info("handler not set")
43+
},
44+
logger: log.New("echo"),
4245
}
46+
return
47+
}
48+
49+
func (s *Server) SetHandler(h engine.HandlerFunc) {
50+
s.handler = h
51+
}
52+
53+
func (s *Server) SetLogger(l logger.Logger) {
54+
s.logger = l
4355
}
4456

4557
func (s *Server) Start() {

engine/standard/response.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"io"
55
"net/http"
66

7-
"github.com/labstack/echo"
87
"github.com/labstack/echo/engine"
8+
"github.com/labstack/echo/logger"
99
)
1010

1111
type (
@@ -16,11 +16,11 @@ type (
1616
size int64
1717
committed bool
1818
writer io.Writer
19-
logger echo.Logger
19+
logger logger.Logger
2020
}
2121
)
2222

23-
func NewResponse(w http.ResponseWriter, l echo.Logger) *Response {
23+
func NewResponse(w http.ResponseWriter, l logger.Logger) *Response {
2424
return &Response{
2525
response: w,
2626
header: &Header{w.Header()},

engine/standard/server.go

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import (
44
"net/http"
55
"sync"
66

7-
"github.com/labstack/echo"
87
"github.com/labstack/echo/engine"
8+
"github.com/labstack/echo/logger"
9+
"github.com/labstack/gommon/log"
910
)
1011

1112
type (
@@ -14,7 +15,7 @@ type (
1415
config *engine.Config
1516
handler engine.HandlerFunc
1617
pool *Pool
17-
logger echo.Logger
18+
logger logger.Logger
1819
}
1920

2021
Pool struct {
@@ -25,25 +26,24 @@ type (
2526
}
2627
)
2728

28-
func New(addr string, e *echo.Echo) *Server {
29+
func New(addr string) *Server {
2930
c := &engine.Config{Address: addr}
30-
return NewConfig(c, e)
31+
return NewConfig(c)
3132
}
3233

33-
func NewTLS(addr, certfile, keyfile string, e *echo.Echo) *Server {
34+
func NewTLS(addr, certfile, keyfile string) *Server {
3435
c := &engine.Config{
3536
Address: addr,
3637
TLSCertfile: certfile,
3738
TLSKeyfile: keyfile,
3839
}
39-
return NewConfig(c, e)
40+
return NewConfig(c)
4041
}
4142

42-
func NewConfig(c *engine.Config, e *echo.Echo) *Server {
43-
return &Server{
44-
Server: new(http.Server),
45-
config: c,
46-
handler: e.ServeHTTP,
43+
func NewConfig(c *engine.Config) (s *Server) {
44+
s = &Server{
45+
Server: new(http.Server),
46+
config: c,
4747
pool: &Pool{
4848
request: sync.Pool{
4949
New: func() interface{} {
@@ -52,7 +52,7 @@ func NewConfig(c *engine.Config, e *echo.Echo) *Server {
5252
},
5353
response: sync.Pool{
5454
New: func() interface{} {
55-
return &Response{logger: e.Logger()}
55+
return &Response{logger: s.logger}
5656
},
5757
},
5858
header: sync.Pool{
@@ -66,8 +66,20 @@ func NewConfig(c *engine.Config, e *echo.Echo) *Server {
6666
},
6767
},
6868
},
69-
logger: e.Logger(),
69+
handler: func(req engine.Request, res engine.Response) {
70+
s.logger.Info("handler not set")
71+
},
72+
logger: log.New("echo"),
7073
}
74+
return
75+
}
76+
77+
func (s *Server) SetHandler(h engine.HandlerFunc) {
78+
s.handler = h
79+
}
80+
81+
func (s *Server) SetLogger(l logger.Logger) {
82+
s.logger = l
7183
}
7284

7385
func (s *Server) Start() {

logger/logger.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package logger
2+
3+
type (
4+
// Logger is the interface that declares Echo's logging system.
5+
Logger interface {
6+
Debug(...interface{})
7+
Debugf(string, ...interface{})
8+
9+
Info(...interface{})
10+
Infof(string, ...interface{})
11+
12+
Warn(...interface{})
13+
Warnf(string, ...interface{})
14+
15+
Error(...interface{})
16+
Errorf(string, ...interface{})
17+
18+
Fatal(...interface{})
19+
Fatalf(string, ...interface{})
20+
}
21+
)

0 commit comments

Comments
 (0)