func TestError(t *testing.T) { ret403 := response551.Error(403, "アクセスするには会員登録をおこないログインする必要があります。") ret404 := response551.Error(404, "指定されたカテゴリーは存在しません。") if ret403.Code() != 403 { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret403.Text() != http.StatusText(403) { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret403.Message() != "アクセスするには会員登録をおこないログインする必要があります。" { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret403.String() != "アクセスするには会員登録をおこないログインする必要があります。" { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret404.Code() != 404 { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret404.Text() != http.StatusText(404) { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret404.Message() != "指定されたカテゴリーは存在しません。" { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if ret404.String() != "指定されたカテゴリーは存在しません。" { t.Error("エラーレスポンス構造体の生成に失敗しました。") } if fmt.Sprint(ret404) != "指定されたカテゴリーは存在しません。" { t.Error("エラーレスポンス構造体の生成に失敗しました。") } }
func rootFunc(w http.ResponseWriter, r *http.Request) { g := Load() l := log551.New(&g.config.Framework.SystemLog) l.Open() defer l.Close() cookie := cookie551.New(w, r) sid := g.sid(cookie) l.Debugf("%s SID: %s", sid[:10], sid) session := memcache551.New(&g.config.Framework.Session.Server, sid) route := g.router.FindRouteByPathMatch(r.Method, r.URL.Path) response551.UrlFunction = g.router.Url var data interface{} = nil if route != nil { mysql := mysql551.New(&g.config.Framework.Database) mysql.Open() defer mysql.Close() l.Debugf("%s --[ Routing ]--", sid[:10]) l.Debugf("%s Path: %s", sid[:10], r.URL.Path) l.Debugf("%s Neme: %s", sid[:10], route.Name()) c := container551.New() c.SetSID(sid) c.SetResponseWriter(w) c.SetRequest(r) c.SetLogger(l) c.SetCookie(cookie) c.SetDb(mysql) c.SetSession(session) c.SetModel(g.modelManager) c.SetAuth(g.auth) c.SetUrlFunc(g.router.Url) baseUrl := "https://" + g.config.Framework.WebServerSSL.Host if g.config.Framework.WebServerSSL.Port != "443" { baseUrl = baseUrl + ":" + g.config.Framework.WebServerSSL.Port } c.SetBaseURL(baseUrl) response551.BaseUrl = baseUrl action := route.Action() data = action(c) response551.Response(w, r, data, route.PackageName(), route.Name(), c.User(), g.config.Application) } else { l.Errorf("%s --[ Route not found ]--", sid[:10]) l.Errorf("%s UA: %s", sid[:10], r.UserAgent()) l.Errorf("%s Method: %s", sid[:10], r.Method) l.Errorf("%s Path: %s", sid[:10], r.URL.Path) l.Errorf("%s --[/Route not found ]--", sid[:10]) data = response551.Error(404, "Route not found.") response551.Response(w, r, data, "", "", nil, g.config.Application) } }
func errAction(c *container551.Container) interface{} { return response551.Error(501, http.StatusText(501)) }