Пример #1
0
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("エラーレスポンス構造体の生成に失敗しました。")
	}
}
Пример #2
0
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)
	}

}
Пример #3
0
func errAction(c *container551.Container) interface{} {
	return response551.Error(501, http.StatusText(501))
}