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)
 | 
						|
	}
 | 
						|
}
 |