diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d5ff852..023289fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ - [4474](https://github.com/beego/beego/pull/4474) - [4479](https://github.com/beego/beego/pull/4479) - [4639](https://github.com/beego/beego/pull/4639) +- [4668](https://github.com/beego/beego/pull/4668) ## Fix lint and format code diff --git a/adapter/config/fake.go b/adapter/config/fake.go index a2b53167..b87ead34 100644 --- a/adapter/config/fake.go +++ b/adapter/config/fake.go @@ -20,6 +20,6 @@ import ( // NewFakeConfig return a fake Configer func NewFakeConfig() Configer { - new := config.NewFakeConfig() - return &newToOldConfigerAdapter{delegate: new} + config := config.NewFakeConfig() + return &newToOldConfigerAdapter{delegate: config} } diff --git a/client/orm/filter/bean/default_value_filter.go b/client/orm/filter/bean/default_value_filter.go index f8b2e8fc..5d1fc2a1 100644 --- a/client/orm/filter/bean/default_value_filter.go +++ b/client/orm/filter/bean/default_value_filter.go @@ -80,13 +80,10 @@ func (d *DefaultValueFilterChainBuilder) FilterChain(next orm.Filter) orm.Filter switch inv.Method { case "Insert", "InsertWithCtx": d.handleInsert(ctx, inv) - break case "InsertOrUpdate", "InsertOrUpdateWithCtx": d.handleInsertOrUpdate(ctx, inv) - break case "InsertMulti", "InsertMultiWithCtx": d.handleInsertMulti(ctx, inv) - break } return next(ctx, inv) } diff --git a/client/orm/orm_test.go b/client/orm/orm_test.go index 12fb9492..eb8108db 100644 --- a/client/orm/orm_test.go +++ b/client/orm/orm_test.go @@ -308,7 +308,6 @@ func TestDataTypes(t *testing.T) { case "DateTime": case "Time": assert.True(t, vu.(time.Time).In(DefaultTimeLoc).Sub(value.(time.Time).In(DefaultTimeLoc)) <= time.Second) - break default: assert.Equal(t, value, vu) } @@ -1842,12 +1841,10 @@ func TestRawQueryRow(t *testing.T) { switch col { case "id": throwFail(t, AssertIs(id, 1)) - break case "time", "datetime": v = v.(time.Time).In(DefaultTimeLoc) value := dataValues[col].(time.Time).In(DefaultTimeLoc) assert.True(t, v.(time.Time).Sub(value) <= time.Second) - break case "date": default: throwFail(t, AssertIs(v, dataValues[col])) @@ -1942,7 +1939,6 @@ func TestQueryRows(t *testing.T) { case "Date": case "DateTime": assert.True(t, vu.(time.Time).In(DefaultTimeLoc).Sub(value.(time.Time).In(DefaultTimeLoc)) <= time.Second) - break default: assert.Equal(t, value, vu) } @@ -1966,7 +1962,6 @@ func TestQueryRows(t *testing.T) { case "Date": case "DateTime": assert.True(t, vu.(time.Time).In(DefaultTimeLoc).Sub(value.(time.Time).In(DefaultTimeLoc)) <= time.Second) - break default: assert.Equal(t, value, vu) } diff --git a/server/web/session/session_config.go b/server/web/session/session_config.go index 13c6d660..d9514003 100644 --- a/server/web/session/session_config.go +++ b/server/web/session/session_config.go @@ -45,9 +45,9 @@ func CfgCookieName(cookieName string) ManagerConfigOpt { } // CfgCookieName set len of session id -func CfgSessionIdLength(len int64) ManagerConfigOpt { +func CfgSessionIdLength(length int64) ManagerConfigOpt { return func(config *ManagerConfig) { - config.SessionIDLength = len + config.SessionIDLength = length } } diff --git a/server/web/tree_test.go b/server/web/tree_test.go index 00d8bc27..2e7fa6ce 100644 --- a/server/web/tree_test.go +++ b/server/web/tree_test.go @@ -50,80 +50,83 @@ func notMatchTestInfo(pattern, url string) testInfo { } func init() { - routers = make([]testInfo, 0, 128) - // match example - routers = append(routers, matchTestInfo("/topic/?:auth:int", "/topic", nil)) - routers = append(routers, matchTestInfo("/topic/?:auth:int", "/topic/123", map[string]string{":auth": "123"})) - routers = append(routers, matchTestInfo("/topic/:id/?:auth", "/topic/1", map[string]string{":id": "1"})) - routers = append(routers, matchTestInfo("/topic/:id/?:auth", "/topic/1/2", map[string]string{":id": "1", ":auth": "2"})) - routers = append(routers, matchTestInfo("/topic/:id/?:auth:int", "/topic/1", map[string]string{":id": "1"})) - routers = append(routers, matchTestInfo("/topic/:id/?:auth:int", "/topic/1/123", map[string]string{":id": "1", ":auth": "123"})) - routers = append(routers, matchTestInfo("/:id", "/123", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/hello/?:id", "/hello", map[string]string{":id": ""})) - routers = append(routers, matchTestInfo("/", "/", nil)) - routers = append(routers, matchTestInfo("/customer/login", "/customer/login", nil)) - routers = append(routers, matchTestInfo("/customer/login", "/customer/login.json", map[string]string{":ext": "json"})) - routers = append(routers, matchTestInfo("/*", "/http://customer/123/", map[string]string{":splat": "http://customer/123/"})) - routers = append(routers, matchTestInfo("/*", "/customer/2009/12/11", map[string]string{":splat": "customer/2009/12/11"})) - routers = append(routers, matchTestInfo("/aa/*/bb", "/aa/2009/bb", map[string]string{":splat": "2009"})) - routers = append(routers, matchTestInfo("/cc/*/dd", "/cc/2009/11/dd", map[string]string{":splat": "2009/11"})) - routers = append(routers, matchTestInfo("/cc/:id/*", "/cc/2009/11/dd", map[string]string{":id": "2009", ":splat": "11/dd"})) - routers = append(routers, matchTestInfo("/ee/:year/*/ff", "/ee/2009/11/ff", map[string]string{":year": "2009", ":splat": "11"})) - routers = append(routers, matchTestInfo("/thumbnail/:size/uploads/*", "/thumbnail/100x100/uploads/items/2014/04/20/dPRCdChkUd651t1Hvs18.jpg", map[string]string{":size": "100x100", ":splat": "items/2014/04/20/dPRCdChkUd651t1Hvs18.jpg"})) - routers = append(routers, matchTestInfo("/*.*", "/nice/api.json", map[string]string{":path": "nice/api", ":ext": "json"})) - routers = append(routers, matchTestInfo("/:name/*.*", "/nice/api.json", map[string]string{":name": "nice", ":path": "api", ":ext": "json"})) - routers = append(routers, matchTestInfo("/:name/test/*.*", "/nice/test/api.json", map[string]string{":name": "nice", ":path": "api", ":ext": "json"})) - routers = append(routers, matchTestInfo("/dl/:width:int/:height:int/*.*", "/dl/48/48/05ac66d9bda00a3acf948c43e306fc9a.jpg", map[string]string{":width": "48", ":height": "48", ":ext": "jpg", ":path": "05ac66d9bda00a3acf948c43e306fc9a"})) - routers = append(routers, matchTestInfo("/v1/shop/:id:int", "/v1/shop/123", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(a)", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(b)", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(c)", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/:year:int/:month:int/:id/:endid", "/1111/111/aaa/aaa", map[string]string{":year": "1111", ":month": "111", ":id": "aaa", ":endid": "aaa"})) - routers = append(routers, matchTestInfo("/v1/shop/:id/:name", "/v1/shop/123/nike", map[string]string{":id": "123", ":name": "nike"})) - routers = append(routers, matchTestInfo("/v1/shop/:id/account", "/v1/shop/123/account", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/:name:string", "/v1/shop/nike", map[string]string{":name": "nike"})) - routers = append(routers, matchTestInfo("/v1/shop/:id([0-9]+)", "/v1/shop//123", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/:id([0-9]+)_:name", "/v1/shop/123_nike", map[string]string{":id": "123", ":name": "nike"})) - routers = append(routers, matchTestInfo("/v1/shop/:id(.+)_cms.html", "/v1/shop/123_cms.html", map[string]string{":id": "123"})) - routers = append(routers, matchTestInfo("/v1/shop/cms_:id(.+)_:page(.+).html", "/v1/shop/cms_123_1.html", map[string]string{":id": "123", ":page": "1"})) - routers = append(routers, matchTestInfo("/v1/:v/cms/aaa_:id(.+)_:page(.+).html", "/v1/2/cms/aaa_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"})) - routers = append(routers, matchTestInfo("/v1/:v/cms_:id(.+)_:page(.+).html", "/v1/2/cms_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"})) - routers = append(routers, matchTestInfo("/v1/:v(.+)_cms/ttt_:id(.+)_:page(.+).html", "/v1/2_cms/ttt_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"})) - routers = append(routers, matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members", map[string]string{":pid": "1"})) - routers = append(routers, matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members/2", map[string]string{":pid": "1", ":mid": "2"})) - routers = append(routers, matchTestInfo("/?:year/?:month/?:day", "/2020/11/10", map[string]string{":year": "2020", ":month": "11", ":day": "10"})) - routers = append(routers, matchTestInfo("/?:year/?:month/?:day", "/2020/11", map[string]string{":year": "2020", ":month": "11"})) - routers = append(routers, matchTestInfo("/?:year", "/2020", map[string]string{":year": "2020"})) - routers = append(routers, matchTestInfo("/?:year([0-9]+)/?:month([0-9]+)/mid/?:day([0-9]+)/?:hour([0-9]+)", "/2020/11/mid/10/24", map[string]string{":year": "2020", ":month": "11", ":day": "10", ":hour": "24"})) - routers = append(routers, matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/2020/mid/10", map[string]string{":year": "2020", ":day": "10"})) - routers = append(routers, matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/2020/11/mid", map[string]string{":year": "2020", ":month": "11"})) - routers = append(routers, matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/mid/10/24", map[string]string{":day": "10", ":hour": "24"})) - routers = append(routers, matchTestInfo("/?:year([0-9]+)/:month([0-9]+)/mid/:day([0-9]+)/?:hour([0-9]+)", "/2020/11/mid/10/24", map[string]string{":year": "2020", ":month": "11", ":day": "10", ":hour": "24"})) - routers = append(routers, matchTestInfo("/?:year/:month/mid/:day/?:hour", "/11/mid/10/24", map[string]string{":month": "11", ":day": "10"})) - routers = append(routers, matchTestInfo("/?:year/:month/mid/:day/?:hour", "/2020/11/mid/10", map[string]string{":year": "2020", ":month": "11", ":day": "10"})) - routers = append(routers, matchTestInfo("/?:year/:month/mid/:day/?:hour", "/11/mid/10", map[string]string{":month": "11", ":day": "10"})) - // not match example + const ( + abcHTML = "/suffix/abc.html" + abcSuffix = "/abc/suffix/*" + ) - // https://github.com/beego/beego/v2/issues/3865 - routers = append(routers, notMatchTestInfo("/read_:id:int\\.htm", "/read_222htm")) - routers = append(routers, notMatchTestInfo("/read_:id:int\\.htm", "/read_222_htm")) - routers = append(routers, notMatchTestInfo("/read_:id:int\\.htm", " /read_262shtm")) + routers = []testInfo{ + // match example + matchTestInfo("/topic/?:auth:int", "/topic", nil), + matchTestInfo("/topic/?:auth:int", "/topic/123", map[string]string{":auth": "123"}), + matchTestInfo("/topic/:id/?:auth", "/topic/1", map[string]string{":id": "1"}), + matchTestInfo("/topic/:id/?:auth", "/topic/1/2", map[string]string{":id": "1", ":auth": "2"}), + matchTestInfo("/topic/:id/?:auth:int", "/topic/1", map[string]string{":id": "1"}), + matchTestInfo("/topic/:id/?:auth:int", "/topic/1/123", map[string]string{":id": "1", ":auth": "123"}), + matchTestInfo("/:id", "/123", map[string]string{":id": "123"}), + matchTestInfo("/hello/?:id", "/hello", map[string]string{":id": ""}), + matchTestInfo("/", "/", nil), + matchTestInfo("/customer/login", "/customer/login", nil), + matchTestInfo("/customer/login", "/customer/login.json", map[string]string{":ext": "json"}), + matchTestInfo("/*", "/http://customer/123/", map[string]string{":splat": "http://customer/123/"}), + matchTestInfo("/*", "/customer/2009/12/11", map[string]string{":splat": "customer/2009/12/11"}), + matchTestInfo("/aa/*/bb", "/aa/2009/bb", map[string]string{":splat": "2009"}), + matchTestInfo("/cc/*/dd", "/cc/2009/11/dd", map[string]string{":splat": "2009/11"}), + matchTestInfo("/cc/:id/*", "/cc/2009/11/dd", map[string]string{":id": "2009", ":splat": "11/dd"}), + matchTestInfo("/ee/:year/*/ff", "/ee/2009/11/ff", map[string]string{":year": "2009", ":splat": "11"}), + matchTestInfo("/thumbnail/:size/uploads/*", "/thumbnail/100x100/uploads/items/2014/04/20/dPRCdChkUd651t1Hvs18.jpg", map[string]string{":size": "100x100", ":splat": "items/2014/04/20/dPRCdChkUd651t1Hvs18.jpg"}), + matchTestInfo("/*.*", "/nice/api.json", map[string]string{":path": "nice/api", ":ext": "json"}), + matchTestInfo("/:name/*.*", "/nice/api.json", map[string]string{":name": "nice", ":path": "api", ":ext": "json"}), + matchTestInfo("/:name/test/*.*", "/nice/test/api.json", map[string]string{":name": "nice", ":path": "api", ":ext": "json"}), + matchTestInfo("/dl/:width:int/:height:int/*.*", "/dl/48/48/05ac66d9bda00a3acf948c43e306fc9a.jpg", map[string]string{":width": "48", ":height": "48", ":ext": "jpg", ":path": "05ac66d9bda00a3acf948c43e306fc9a"}), + matchTestInfo("/v1/shop/:id:int", "/v1/shop/123", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(a)", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(b)", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/:id\\((a|b|c)\\)", "/v1/shop/123(c)", map[string]string{":id": "123"}), + matchTestInfo("/:year:int/:month:int/:id/:endid", "/1111/111/aaa/aaa", map[string]string{":year": "1111", ":month": "111", ":id": "aaa", ":endid": "aaa"}), + matchTestInfo("/v1/shop/:id/:name", "/v1/shop/123/nike", map[string]string{":id": "123", ":name": "nike"}), + matchTestInfo("/v1/shop/:id/account", "/v1/shop/123/account", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/:name:string", "/v1/shop/nike", map[string]string{":name": "nike"}), + matchTestInfo("/v1/shop/:id([0-9]+)", "/v1/shop//123", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/:id([0-9]+)_:name", "/v1/shop/123_nike", map[string]string{":id": "123", ":name": "nike"}), + matchTestInfo("/v1/shop/:id(.+)_cms.html", "/v1/shop/123_cms.html", map[string]string{":id": "123"}), + matchTestInfo("/v1/shop/cms_:id(.+)_:page(.+).html", "/v1/shop/cms_123_1.html", map[string]string{":id": "123", ":page": "1"}), + matchTestInfo("/v1/:v/cms/aaa_:id(.+)_:page(.+).html", "/v1/2/cms/aaa_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"}), + matchTestInfo("/v1/:v/cms_:id(.+)_:page(.+).html", "/v1/2/cms_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"}), + matchTestInfo("/v1/:v(.+)_cms/ttt_:id(.+)_:page(.+).html", "/v1/2_cms/ttt_123_1.html", map[string]string{":v": "2", ":id": "123", ":page": "1"}), + matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members", map[string]string{":pid": "1"}), + matchTestInfo("/api/projects/:pid/members/?:mid", "/api/projects/1/members/2", map[string]string{":pid": "1", ":mid": "2"}), + matchTestInfo("/?:year/?:month/?:day", "/2020/11/10", map[string]string{":year": "2020", ":month": "11", ":day": "10"}), + matchTestInfo("/?:year/?:month/?:day", "/2020/11", map[string]string{":year": "2020", ":month": "11"}), + matchTestInfo("/?:year", "/2020", map[string]string{":year": "2020"}), + matchTestInfo("/?:year([0-9]+)/?:month([0-9]+)/mid/?:day([0-9]+)/?:hour([0-9]+)", "/2020/11/mid/10/24", map[string]string{":year": "2020", ":month": "11", ":day": "10", ":hour": "24"}), + matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/2020/mid/10", map[string]string{":year": "2020", ":day": "10"}), + matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/2020/11/mid", map[string]string{":year": "2020", ":month": "11"}), + matchTestInfo("/?:year/?:month/mid/?:day/?:hour", "/mid/10/24", map[string]string{":day": "10", ":hour": "24"}), + matchTestInfo("/?:year([0-9]+)/:month([0-9]+)/mid/:day([0-9]+)/?:hour([0-9]+)", "/2020/11/mid/10/24", map[string]string{":year": "2020", ":month": "11", ":day": "10", ":hour": "24"}), + matchTestInfo("/?:year/:month/mid/:day/?:hour", "/11/mid/10/24", map[string]string{":month": "11", ":day": "10"}), + matchTestInfo("/?:year/:month/mid/:day/?:hour", "/2020/11/mid/10", map[string]string{":year": "2020", ":month": "11", ":day": "10"}), + matchTestInfo("/?:year/:month/mid/:day/?:hour", "/11/mid/10", map[string]string{":month": "11", ":day": "10"}), - // test .html, .json not suffix - const abcHtml = "/suffix/abc.html" - routers = append(routers, notMatchTestInfo(abcHtml, "/suffix.html/abc")) - routers = append(routers, matchTestInfo("/suffix/abc", abcHtml, nil)) - routers = append(routers, matchTestInfo("/suffix/*", abcHtml, nil)) - routers = append(routers, notMatchTestInfo("/suffix/*", "/suffix.html/a")) - const abcSuffix = "/abc/suffix/*" - routers = append(routers, notMatchTestInfo(abcSuffix, "/abc/suffix.html/a")) - routers = append(routers, matchTestInfo(abcSuffix, "/abc/suffix/a", nil)) - routers = append(routers, notMatchTestInfo(abcSuffix, "/abc.j/suffix/a")) + // not match example + // https://github.com/beego/beego/v2/issues/3865 + notMatchTestInfo("/read_:id:int\\.htm", "/read_222htm"), + notMatchTestInfo("/read_:id:int\\.htm", "/read_222_htm"), + notMatchTestInfo("/read_:id:int\\.htm", " /read_262shtm"), + + // test .html, .json not suffix + notMatchTestInfo(abcHTML, "/suffix.html/abc"), + matchTestInfo("/suffix/abc", abcHTML, nil), + matchTestInfo("/suffix/*", abcHTML, nil), + notMatchTestInfo("/suffix/*", "/suffix.html/a"), + notMatchTestInfo(abcSuffix, "/abc/suffix.html/a"), + matchTestInfo(abcSuffix, "/abc/suffix/a", nil), + notMatchTestInfo(abcSuffix, "/abc.j/suffix/a"), + } } func TestTreeRouters(t *testing.T) { for _, r := range routers { - shouldMatch := r.shouldMatchOrNot tr := NewTree() tr.AddRouter(r.pattern, "astaxie") diff --git a/test/bindata.go b/test/bindata.go index 1b996b53..632f5a47 100644 --- a/test/bindata.go +++ b/test/bindata.go @@ -92,7 +92,7 @@ func viewsBlocksBlockTpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "views/blocks/block.tpl", size: 50, mode: os.FileMode(436), modTime: time.Unix(1541431067, 0)} + info := bindataFileInfo{name: "views/blocks/block.tpl", size: 50, mode: os.FileMode(0o664), modTime: time.Unix(1541431067, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -112,7 +112,7 @@ func viewsHeaderTpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "views/header.tpl", size: 52, mode: os.FileMode(436), modTime: time.Unix(1541431067, 0)} + info := bindataFileInfo{name: "views/header.tpl", size: 52, mode: os.FileMode(0o664), modTime: time.Unix(1541431067, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -132,7 +132,7 @@ func viewsIndexTpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "views/index.tpl", size: 255, mode: os.FileMode(436), modTime: time.Unix(1541434906, 0)} + info := bindataFileInfo{name: "views/index.tpl", size: 255, mode: os.FileMode(0o664), modTime: time.Unix(1541434906, 0)} a := &asset{bytes: bytes, info: info} return a, nil }