mirror of
https://github.com/astaxie/beego.git
synced 2024-12-23 08:20:49 +00:00
beego:1.2.0
This commit is contained in:
parent
b45f0b9bf6
commit
03080b3ef2
@ -797,14 +797,9 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
||||
}
|
||||
|
||||
if len(route.params) > 0 {
|
||||
//add url parameters to the query param map
|
||||
values := r.URL.Query()
|
||||
for i, match := range matches[1:] {
|
||||
values.Add(route.params[i], match)
|
||||
params[route.params[i]] = match
|
||||
}
|
||||
//reassemble query params and add to RawQuery
|
||||
r.URL.RawQuery = url.Values(values).Encode()
|
||||
}
|
||||
runMethod = p.getRunMethod(r.Method, context, route)
|
||||
if runMethod != "" {
|
||||
|
@ -43,6 +43,15 @@ func (this *TestController) GetUrl() {
|
||||
this.Ctx.Output.Body([]byte(this.UrlFor(".Myext")))
|
||||
}
|
||||
|
||||
func (t *TestController) GetParams() {
|
||||
t.Ctx.WriteString(t.Ctx.Input.Query(":last") + "+" +
|
||||
t.Ctx.Input.Query(":first") + "+" + t.Ctx.Input.Query("learn"))
|
||||
}
|
||||
|
||||
func (t *TestController) GetManyRouter() {
|
||||
t.Ctx.WriteString(t.Ctx.Input.Query(":id") + t.Ctx.Input.Query(":page"))
|
||||
}
|
||||
|
||||
type ResStatus struct {
|
||||
Code int
|
||||
Msg string
|
||||
@ -147,21 +156,11 @@ func TestRouteOk(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
|
||||
handler := NewControllerRegistor()
|
||||
handler.Add("/person/:last/:first", &TestController{})
|
||||
handler.Add("/person/:last/:first", &TestController{}, "get:GetParams")
|
||||
handler.ServeHTTP(w, r)
|
||||
|
||||
lastNameParam := r.URL.Query().Get(":last")
|
||||
firstNameParam := r.URL.Query().Get(":first")
|
||||
learnParam := r.URL.Query().Get("learn")
|
||||
|
||||
if lastNameParam != "anderson" {
|
||||
t.Errorf("url param set to [%s]; want [%s]", lastNameParam, "anderson")
|
||||
}
|
||||
if firstNameParam != "thomas" {
|
||||
t.Errorf("url param set to [%s]; want [%s]", firstNameParam, "thomas")
|
||||
}
|
||||
if learnParam != "kungfu" {
|
||||
t.Errorf("url param set to [%s]; want [%s]", learnParam, "kungfu")
|
||||
body := w.Body.String()
|
||||
if body != "anderson+thomas+kungfu" {
|
||||
t.Errorf("url param set to [%s];", body)
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,17 +170,13 @@ func TestManyRoute(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
|
||||
handler := NewControllerRegistor()
|
||||
handler.Add("/beego:id([0-9]+)-:page([0-9]+).html", &TestController{})
|
||||
handler.Add("/beego:id([0-9]+)-:page([0-9]+).html", &TestController{}, "get:GetManyRouter")
|
||||
handler.ServeHTTP(w, r)
|
||||
|
||||
id := r.URL.Query().Get(":id")
|
||||
page := r.URL.Query().Get(":page")
|
||||
body := w.Body.String()
|
||||
|
||||
if id != "32" {
|
||||
t.Errorf("url param set to [%s]; want [%s]", id, "32")
|
||||
}
|
||||
if page != "12" {
|
||||
t.Errorf("url param set to [%s]; want [%s]", page, "12")
|
||||
if body != "3212" {
|
||||
t.Errorf("url param set to [%s];", body)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,24 +64,30 @@ func GrepFile(patten string, filename string) (lines []string, err error) {
|
||||
lines = make([]string, 0)
|
||||
reader := bufio.NewReader(fd)
|
||||
prefix := ""
|
||||
isLongLine := false
|
||||
for {
|
||||
byteLine, isPrefix, er := reader.ReadLine()
|
||||
if er != nil && er != io.EOF {
|
||||
return nil, er
|
||||
}
|
||||
if er == io.EOF {
|
||||
break
|
||||
}
|
||||
line := string(byteLine)
|
||||
if isPrefix {
|
||||
prefix += line
|
||||
continue
|
||||
} else {
|
||||
isLongLine = true
|
||||
}
|
||||
|
||||
line = prefix + line
|
||||
if isLongLine {
|
||||
prefix = ""
|
||||
}
|
||||
if re.MatchString(line) {
|
||||
lines = append(lines, line)
|
||||
}
|
||||
if er == io.EOF {
|
||||
break
|
||||
}
|
||||
}
|
||||
return lines, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user