TODO: test 完善, Workflow Query的测试
This commit is contained in:
parent
3a355fdd3a
commit
ec9b0614e6
|
@ -32,13 +32,17 @@ func TestFromHTTPResponse(t *testing.T) {
|
|||
t.Error("esp.GetSrcResponse().Header == nil")
|
||||
}
|
||||
|
||||
if resp.GetStatue() != "200 OK" && resp.GetStatueCode() != 200 {
|
||||
if resp.GetStatue() != "200 OK" || resp.GetStatueCode() != 200 {
|
||||
t.Error(" resp.GetStatue() != 200 OK")
|
||||
}
|
||||
|
||||
if len(resp.GetHeader()["Content-Length"]) != 1 {
|
||||
t.Error("resp.GetHeader() is error ?")
|
||||
}
|
||||
|
||||
if int64(len(resp.Content())) != resp.GetContentLength() {
|
||||
t.Error("content len is not equal")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResponseDeflate(t *testing.T) {
|
||||
|
|
|
@ -287,7 +287,7 @@ func (ses *Session) GetQuery() url.Values {
|
|||
return ses.Query
|
||||
}
|
||||
|
||||
// SetHeader 设置set Header的值
|
||||
// SetHeader 设置set Header的值, 必须符合规范 HaHa -> Haha 如果真要HaHa,只能这样 Ha-Ha
|
||||
func (ses *Session) SetHeader(header http.Header) {
|
||||
ses.Header = header
|
||||
}
|
||||
|
|
|
@ -466,8 +466,11 @@ func TestSession_SetQuery(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if gjson.Get(resp.Content(), "url").String() != "http://httpbin.org/get?query=a&query=b" {
|
||||
t.Error("url", resp.Content())
|
||||
query := gjson.Get(resp.Content(), "args.query").Array()
|
||||
for _, q := range query {
|
||||
if !(q.String() == "a" || q.String() == "b") {
|
||||
t.Error("query error, ", resp.Content())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -34,13 +34,13 @@ func (wf *Workflow) SwitchSession(ses *Session) {
|
|||
wf.session = ses
|
||||
}
|
||||
|
||||
// AddHeader 添加头信息 Get方法从Header参数上获取
|
||||
// AddHeader 添加头信息 Get方法从Header参数上获取 必须符合规范 HaHa -> Haha 如果真要HaHa,只能这样 Ha-Ha
|
||||
func (wf *Workflow) AddHeader(key, value string) *Workflow {
|
||||
wf.Header[key] = append(wf.Header[key], value)
|
||||
return wf
|
||||
}
|
||||
|
||||
// SetHeader 设置完全替换原有Header
|
||||
// SetHeader 设置完全替换原有Header 必须符合规范 HaHa -> Haha 如果真要HaHa,只能这样 Ha-Ha
|
||||
func (wf *Workflow) SetHeader(header http.Header) *Workflow {
|
||||
wf.Header = make(http.Header)
|
||||
for k, HValues := range header {
|
||||
|
@ -192,7 +192,7 @@ func (wf *Workflow) GetURLRawPath() string {
|
|||
// return wf
|
||||
// }
|
||||
|
||||
// SetURLRawPath 设置Pa晚上参数
|
||||
// SetURLRawPath 设置 参数 eg. /get = http:// hostname + /get
|
||||
func (wf *Workflow) SetURLRawPath(path string) *Workflow {
|
||||
wf.ParsedURL.Path = path
|
||||
return wf
|
||||
|
|
144
workflow_test.go
144
workflow_test.go
|
@ -1,6 +1,8 @@
|
|||
package requests
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
|
@ -59,3 +61,145 @@ func TestWorkflow(t *testing.T) {
|
|||
})
|
||||
|
||||
}
|
||||
|
||||
func TestWorkflow_SetHeader(t *testing.T) {
|
||||
ses := NewSession()
|
||||
wf := ses.Get("http://httpbin.org/headers")
|
||||
var header http.Header
|
||||
header = make(http.Header)
|
||||
header["Eson"] = []string{"Bad"}
|
||||
header["HaHa"] = []string{"xixi"}
|
||||
wf.SetHeader(header)
|
||||
|
||||
resp, err := wf.Execute()
|
||||
if err == nil && gjson.Get(resp.Content(), "headers.Eson").String() != "Bad" {
|
||||
t.Error("wf header error", resp.Content())
|
||||
}
|
||||
|
||||
if err == nil && gjson.Get(resp.Content(), "headers.Haha").String() != "xixi" {
|
||||
t.Error("wf header error", resp.Content())
|
||||
}
|
||||
|
||||
// 输入不符合规范不 会自动转换
|
||||
if wf.GetHeader()["HaHa"][0] != "xixi" {
|
||||
t.Error("Header 错误")
|
||||
}
|
||||
|
||||
if len(ses.GetHeader()) != 0 {
|
||||
t.Error("session header should be zero")
|
||||
}
|
||||
|
||||
delete(header, "HaHa")
|
||||
ses.SetHeader(header)
|
||||
wf = ses.Get("http://httpbin.org/headers")
|
||||
wf.AddHeader("Hello", "Hehe")
|
||||
|
||||
resp, err = wf.Execute()
|
||||
if err != nil || gjson.Get(resp.Content(), "headers.Eson").String() != "Bad" {
|
||||
t.Error("wf header error", resp.Content())
|
||||
}
|
||||
|
||||
if err != nil || gjson.Get(resp.Content(), "headers.Hello").String() != "Hehe" {
|
||||
t.Error("wf header error", resp.Content())
|
||||
}
|
||||
|
||||
if len(wf.GetHeader()) != 1 || wf.GetHeader()["Hello"][0] != "Hehe" {
|
||||
t.Error("session header should be 1")
|
||||
}
|
||||
|
||||
cheader := wf.GetCombineHeader()
|
||||
if len(cheader) != 2 || cheader["Eson"][0] != "Bad" {
|
||||
t.Error("GetCombineHeader error")
|
||||
}
|
||||
|
||||
resp, err = wf.DelHeader("Hello").Execute()
|
||||
if err != nil {
|
||||
t.Error(err, resp.Content())
|
||||
}
|
||||
|
||||
if gjson.Get(resp.Content(), "headers.Hello").Exists() {
|
||||
t.Error(" wf.DelHeader error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkflow_Cookies(t *testing.T) {
|
||||
ses := NewSession()
|
||||
u, err := url.Parse("http://httpbin.org")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
ses.SetCookies(u, []*http.Cookie{&http.Cookie{Name: "Request", Value: "Cookiejar"}})
|
||||
wf := ses.Get("http://httpbin.org/cookies")
|
||||
wf.AddCookie(&http.Cookie{Name: "eson", Value: "Bad"})
|
||||
|
||||
resp, _ := wf.Execute()
|
||||
if gjson.Get(resp.Content(), "cookies.Request").String() != "Cookiejar" {
|
||||
t.Error(" wf.AddCookie error")
|
||||
}
|
||||
|
||||
if gjson.Get(resp.Content(), "cookies.eson").String() != "Bad" {
|
||||
t.Error(" wf.AddCookie error")
|
||||
}
|
||||
|
||||
wf.DelCookie("eson")
|
||||
resp, _ = wf.Execute()
|
||||
if gjson.Get(resp.Content(), "cookies.Request").String() != "Cookiejar" {
|
||||
t.Error(" wf.AddCookie error")
|
||||
}
|
||||
if gjson.Get(resp.Content(), "cookies.eson").Exists() {
|
||||
t.Error(" wf.DelCookie error")
|
||||
}
|
||||
|
||||
wf.AddCookies([]*http.Cookie{&http.Cookie{Name: "A", Value: "AA"}, &http.Cookie{Name: "B", Value: "BB"}})
|
||||
|
||||
resp, _ = wf.Execute()
|
||||
if gjson.Get(resp.Content(), "cookies.Request").String() != "Cookiejar" {
|
||||
t.Error(" wf.AddCookie error")
|
||||
}
|
||||
if gjson.Get(resp.Content(), "cookies.A").String() != "AA" {
|
||||
t.Error(" wf.AddCookies error")
|
||||
}
|
||||
|
||||
if gjson.Get(resp.Content(), "cookies.B").String() != "BB" {
|
||||
t.Error(" wf.AddCookies error")
|
||||
}
|
||||
|
||||
wf.DelCookie(&http.Cookie{Name: "A", Value: "AA"})
|
||||
resp, _ = wf.Execute()
|
||||
if gjson.Get(resp.Content(), "cookies.A").Exists() {
|
||||
t.Error(" wf.AddCookies error")
|
||||
}
|
||||
|
||||
if gjson.Get(resp.Content(), "cookies.B").String() != "BB" {
|
||||
t.Error(" wf.AddCookies error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkflow_URL(t *testing.T) {
|
||||
ses := NewSession()
|
||||
wf := ses.Get("http://httpbin.org/")
|
||||
u, err := url.Parse("http://httpbin.org/get")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
wf.SetParsedURL(u)
|
||||
resp, _ := wf.Execute()
|
||||
if gjson.Get(resp.Content(), "url").String() != "http://httpbin.org/get" {
|
||||
t.Error("SetParsedURL ", resp.Content())
|
||||
}
|
||||
|
||||
if wf.GetParsedURL().String() != "http://httpbin.org/get" {
|
||||
t.Error("SetParsedURL ", resp.Content())
|
||||
}
|
||||
|
||||
wf = ses.Get("http://httpbin.org/")
|
||||
|
||||
resp, _ = wf.SetURLRawPath("/get").Execute()
|
||||
if gjson.Get(resp.Content(), "url").String() != "http://httpbin.org/get" {
|
||||
t.Error("SetParsedURL ", resp.Content())
|
||||
}
|
||||
|
||||
if wf.GetURLRawPath() != "/get" {
|
||||
t.Error("SetParsedURL ", resp.Content())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user