12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package scan
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- )
- var (
- handler, _ = NewHandler("")
- ts = httptest.NewServer(handler)
- )
- func TestBadRequest(t *testing.T) {
- // Test request with no host
- req, _ := http.NewRequest("GET", ts.URL, nil)
- resp, _ := http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusBadRequest {
- t.Fatal(resp.Status)
- }
- }
- func TestScanRESTfulVerbs(t *testing.T) {
- // GET should work
- req, _ := http.NewRequest("GET", ts.URL, nil)
- data := req.URL.Query()
- data.Add("host", "cloudflare.com")
- req.URL.RawQuery = data.Encode()
- resp, _ := http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusOK {
- t.Fatal(resp.Status)
- }
- // POST, PUT, DELETE, WHATEVER should return 400 errors
- req, _ = http.NewRequest("POST", ts.URL, nil)
- resp, _ = http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusMethodNotAllowed {
- t.Fatal(resp.Status)
- }
- req, _ = http.NewRequest("DELETE", ts.URL, nil)
- resp, _ = http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusMethodNotAllowed {
- t.Fatal(resp.Status)
- }
- req, _ = http.NewRequest("PUT", ts.URL, nil)
- resp, _ = http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusMethodNotAllowed {
- t.Fatal(resp.Status)
- }
- req, _ = http.NewRequest("WHATEVER", ts.URL, nil)
- resp, _ = http.DefaultClient.Do(req)
- if resp.StatusCode != http.StatusMethodNotAllowed {
- t.Fatal(resp.Status)
- }
- }
- func TestNewInfoHandler(t *testing.T) {
- handler := NewInfoHandler()
- if handler == nil {
- t.Fatal("Handler error")
- }
- }
|