本文整理匯總了Golang中github.com/go-martini/martini.ClassicMartini.ServeHTTP方法的典型用法代碼示例。如果您正苦於以下問題:Golang ClassicMartini.ServeHTTP方法的具體用法?Golang ClassicMartini.ServeHTTP怎麽用?Golang ClassicMartini.ServeHTTP使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/go-martini/martini.ClassicMartini
的用法示例。
在下文中一共展示了ClassicMartini.ServeHTTP方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: testResponses
func testResponses(t *testing.T, m *martini.ClassicMartini, expectations ...*Expectation) {
for _, expectation := range expectations {
req, err := http.NewRequest("GET", "/test", strings.NewReader(""))
reflect.ValueOf(req).Elem().FieldByName("RemoteAddr").SetString("1.2.3.4:5000")
if err != nil {
t.Error(err)
}
time.Sleep(expectation.Wait)
recorder := httptest.NewRecorder()
m.ServeHTTP(recorder, req)
expectStatusCode(t, expectation.StatusCode, recorder.Code)
if expectation.Body != "" {
expectSame(t, recorder.Body.String(), expectation.Body)
}
expectSame(t, recorder.Header()["X-Ratelimit-Limit"][0], expectation.RateLimitLimit)
expectSame(t, recorder.Header()["X-Ratelimit-Remaining"][0], expectation.RateLimitRemaining)
resetTime, err := strconv.ParseInt(recorder.Header()["X-Ratelimit-Reset"][0], 10, 64)
if err != nil {
t.Errorf(err.Error())
}
expectApproximateTimestamp(t, resetTime, expectation.RateLimitReset)
}
}
示例2: putStatement
func putStatement(t *testing.T, mart *martini.ClassicMartini, stmt, id string) {
req, _ := http.NewRequest("PUT",
"/test/test/statements?statementId="+id,
strings.NewReader(stmt),
)
resp := httptest.NewRecorder()
req.Header.Add("X-Experience-API-Version", "1.0.2")
mart.ServeHTTP(resp, req)
if got, expected := resp.Code, http.StatusNoContent; got != expected {
t.Fatalf("Expected %v response code from put single statement; got %d", expected, got)
}
}
示例3: doRequest
func doRequest(m *martini.ClassicMartini, url string, method string, auth bool, body io.Reader) (*httptest.ResponseRecorder, *martini.ClassicMartini) {
if m == nil {
m = setup()
}
res := httptest.NewRecorder()
req, _ := http.NewRequest(method, url, body)
if auth {
req.SetBasicAuth("default", "default")
}
m.ServeHTTP(res, req)
return res, m
}
示例4: getStatementWithHeader
func getStatementWithHeader(t *testing.T, mart *martini.ClassicMartini, v *url.Values) ([]byte, http.Header) {
resp := httptest.NewRecorder()
req, err := http.NewRequest("GET", "/test/test/statements?"+v.Encode(), nil)
fatalIfError(t, err)
req.Header.Add("X-Experience-API-Version", "1.0.2")
mart.ServeHTTP(resp, req)
if got, expected := resp.Code, http.StatusOK; got != expected {
t.Fatalf("Expected %v response code from get statement(s); got %d", expected, got)
}
body, err := ioutil.ReadAll(resp.Body)
fatalIfError(t, err)
return body, resp.Header()
}
示例5:
AfterEach(func() {
// Clear the database after each test.
session.DB(dbName).DropDatabase()
})
Describe("GET /files", func() {
// Set up a new GET request before every test
// in this describe block.
BeforeEach(func() {
request, _ = http.NewRequest("GET", "/requestedFiles", nil)
})
Context("when no requestedFiles exist", func() {
It("returns a status code of 200", func() {
server.ServeHTTP(recorder, request)
Expect(recorder.Code).To(Equal(200))
})
It("returns a empty body", func() {
server.ServeHTTP(recorder, request)
Expect(recorder.Body.String()).To(Equal("[]"))
})
})
Context("when requestedFiles exist", func() {
// Insert two valid requestedFiles into the database
// before each test in this context.
BeforeEach(func() {
collection := session.DB(dbName).C("requestedFiles")
示例6:
AfterEach(func() {
// Clear the database after each test.
session.DB(dbName).DropDatabase()
})
Describe("GET /events", func() {
// Set up a new GET request before every test
// in this describe block.
BeforeEach(func() {
request, _ = http.NewRequest("GET", "/events", nil)
})
Context("when no events exist", func() {
It("returns a status code of 200", func() {
testServer.ServeHTTP(recorder, request)
Expect(recorder.Code).To(Equal(200))
})
It("returns a empty body", func() {
testServer.ServeHTTP(recorder, request)
Expect(recorder.Body.String()).To(Equal("null"))
})
})
Context("when events exist", func() {
// Insert two valid signatures into the database
// before each test in this context.
BeforeEach(func() {
collection := session.DB(dbName).C("events")
示例7: postStatementWithFile
func postStatementWithFile(t *testing.T, mart *martini.ClassicMartini, stmt, id string) (contentSHA2sum string) {
// construct content
sha2 := sha256.New()
content := bytes.NewBuffer(nil)
// write content
fmt.Fprintln(io.MultiWriter(content, sha2), "example content text")
contentSHA2sum = fmt.Sprintf("%x", sha2.Sum(nil))
// update statement
var statement map[string]interface{}
json.Unmarshal([]byte(stmt), &statement)
statement["id"] = id
statement["attachments"] = []map[string]interface{}{
{
"usageType": "http://example.com/attachment-usage/test",
"display": map[string]interface{}{
"en-US": "A test attachment",
},
"description": map[string]interface{}{
"en-US": "A test attachment (description)",
},
"contentType": "text/plain; charset=ascii",
"length": content.Len(),
"sha2": contentSHA2sum,
},
}
ustmt, _ := json.Marshal(statement)
//
// create multipart/form-data
var header textproto.MIMEHeader
buffer := bytes.NewBuffer(nil)
encoder := multipart.NewWriter(buffer)
// json field
header = make(textproto.MIMEHeader)
header.Add("Content-Type", "application/json")
jsonfield, err := encoder.CreatePart(header)
if err != nil {
t.Fatal(err)
}
fmt.Fprintln(jsonfield, string(ustmt))
// text (content) field
header = make(textproto.MIMEHeader)
header.Add("Content-Type", "text/plain")
header.Add("Content-Transfer-Encoding", "binary")
header.Add("X-Experience-API-Hash", contentSHA2sum)
textfield, err := encoder.CreatePart(header)
if err != nil {
t.Fatal(err)
}
io.Copy(textfield, content)
// finish writing
encoder.Close()
resp := httptest.NewRecorder()
req, _ := http.NewRequest("POST", "/test/test/statements", buffer)
req.Header.Add("Content-Type", "multipart/mixed; boundary="+encoder.Boundary())
req.Header.Add("X-Experience-API-Version", "1.0.2")
mart.ServeHTTP(resp, req)
if got, expected := resp.Code, http.StatusOK; got != expected {
r, _ := ioutil.ReadAll(resp.Body)
t.Fatalf("Expected %v response code from post single statement with file; got %d, %v", expected, got, string(r))
}
return
}