42 lines
		
	
	
		
			702 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			702 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package http
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"io/ioutil"
 | |
| 	"net/http"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func TestHTTPServer(t *testing.T) {
 | |
| 	testResponse := "hello world"
 | |
| 
 | |
| 	s := NewServer("localhost:0")
 | |
| 
 | |
| 	s.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | |
| 		fmt.Fprint(w, testResponse)
 | |
| 	}))
 | |
| 
 | |
| 	if err := s.Start(); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	rsp, err := http.Get(fmt.Sprintf("http://%s/", s.Address()))
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	defer rsp.Body.Close()
 | |
| 
 | |
| 	b, err := ioutil.ReadAll(rsp.Body)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	if string(b) != testResponse {
 | |
| 		t.Fatalf("Unexpected response, got %s, expected %s", string(b), testResponse)
 | |
| 	}
 | |
| 
 | |
| 	if err := s.Stop(); err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| }
 |