mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-20 11:42:43 +00:00
38 lines
873 B
Go
38 lines
873 B
Go
package manager
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"math/rand"
|
|
"net/http"
|
|
"testing"
|
|
"time"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func TestHTTPServer(t *testing.T) {
|
|
Convey("HTTP server should work", t, func() {
|
|
s := makeHTTPServer(false)
|
|
So(s, ShouldNotBeNil)
|
|
port := rand.Intn(10000) + 20000
|
|
go func() {
|
|
s.Run(fmt.Sprintf("127.0.0.1:%d", port))
|
|
}()
|
|
time.Sleep(50 * time.Microsecond)
|
|
resp, err := http.Get(fmt.Sprintf("http://127.0.0.1:%d/ping", port))
|
|
So(err, ShouldBeNil)
|
|
So(resp.StatusCode, ShouldEqual, http.StatusOK)
|
|
So(resp.Header.Get("Content-Type"), ShouldEqual, "application/json; charset=utf-8")
|
|
defer resp.Body.Close()
|
|
body, err := ioutil.ReadAll(resp.Body)
|
|
So(err, ShouldBeNil)
|
|
var p map[string]string
|
|
err = json.Unmarshal(body, &p)
|
|
So(err, ShouldBeNil)
|
|
So(p["msg"], ShouldEqual, "pong")
|
|
})
|
|
|
|
}
|