1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
package api
import (
"testing"
"github.com/NebulousLabs/Sia/build"
"github.com/NebulousLabs/Sia/modules/gateway"
)
// TestGatewayStatus checks that the /gateway/status call is returning a corect
// peerlist.
func TestGatewayStatus(t *testing.T) {
if testing.Short() {
t.SkipNow()
}
t.Parallel()
st, err := createServerTester(t.Name())
if err != nil {
t.Fatal(err)
}
defer st.server.panicClose()
var info GatewayGET
st.getAPI("/gateway", &info)
if len(info.Peers) != 0 {
t.Fatal("/gateway gave bad peer list:", info.Peers)
}
}
// TestGatewayPeerConnect checks that /gateway/connect is adding a peer to the
// gateway's peerlist.
func TestGatewayPeerConnect(t *testing.T) {
if testing.Short() {
t.SkipNow()
}
t.Parallel()
st, err := createServerTester(t.Name())
if err != nil {
t.Fatal(err)
}
defer st.server.panicClose()
peer, err := gateway.New("localhost:0", false, build.TempDir("api", t.Name()+"2", "gateway"))
if err != nil {
t.Fatal(err)
}
defer func() {
err := peer.Close()
if err != nil {
panic(err)
}
}()
err = st.stdPostAPI("/gateway/connect/"+string(peer.Address()), nil)
if err != nil {
t.Fatal(err)
}
var info GatewayGET
err = st.getAPI("/gateway", &info)
if err != nil {
t.Fatal(err)
}
if len(info.Peers) != 1 || info.Peers[0].NetAddress != peer.Address() {
t.Fatal("/gateway/connect did not connect to peer", peer.Address())
}
}
// TestGatewayPeerDisconnect checks that /gateway/disconnect removes the
// correct peer from the gateway's peerlist.
func TestGatewayPeerDisconnect(t *testing.T) {
if testing.Short() {
t.SkipNow()
}
t.Parallel()
st, err := createServerTester(t.Name())
if err != nil {
t.Fatal(err)
}
defer st.server.panicClose()
peer, err := gateway.New("localhost:0", false, build.TempDir("api", t.Name()+"2", "gateway"))
if err != nil {
t.Fatal(err)
}
defer func() {
err := peer.Close()
if err != nil {
panic(err)
}
}()
err = st.stdPostAPI("/gateway/connect/"+string(peer.Address()), nil)
if err != nil {
t.Fatal(err)
}
var info GatewayGET
st.getAPI("/gateway", &info)
if len(info.Peers) != 1 || info.Peers[0].NetAddress != peer.Address() {
t.Fatal("/gateway/connect did not connect to peer", peer.Address())
}
err = st.stdPostAPI("/gateway/disconnect/"+string(peer.Address()), nil)
if err != nil {
t.Fatal(err)
}
err = st.getAPI("/gateway", &info)
if err != nil {
t.Fatal(err)
}
if len(info.Peers) != 0 {
t.Fatal("/gateway/disconnect did not disconnect from peer", peer.Address())
}
}
|