...
1 package eventsource
2
3 import (
4 "net/http"
5 "net/http/httptest"
6 "testing"
7 "time"
8 )
9
10 func TestNewServerHandlerRespondsAfterClose(t *testing.T) {
11 server := NewServer()
12 httpServer := httptest.NewServer(server.Handler("test"))
13 defer httpServer.Close()
14
15 server.Close()
16 responses := make(chan *http.Response)
17
18 go func() {
19 resp, err := http.Get(httpServer.URL)
20 if err != nil {
21 t.Fatalf("Unexpected error %s", err)
22 }
23 responses <- resp
24 }()
25
26 select {
27 case resp := <-responses:
28 if resp.StatusCode != 200 {
29 t.Errorf("Received StatusCode %d, want 200", resp.StatusCode)
30 }
31 case <-time.After(250 * time.Millisecond):
32 t.Errorf("Did not receive response in time")
33 }
34 }
35
View as plain text