aboutsummaryrefslogtreecommitdiff
path: root/broker
diff options
context:
space:
mode:
authorShelikhoo <xiaokangwang@outlook.com>2022-03-29 14:06:05 +0100
committerShelikhoo <xiaokangwang@outlook.com>2022-06-16 13:57:00 +0100
commit5578b4dd76339cbf76ee8fced30d08e02a424d3b (patch)
treeec0fee281faa6a12bb5f8be7ee68a898c3dcb0ba /broker
parent0822c5f87b29aee159645af25d7c97c61f539315 (diff)
downloadsnowflake-5578b4dd76339cbf76ee8fced30d08e02a424d3b.tar.gz
snowflake-5578b4dd76339cbf76ee8fced30d08e02a424d3b.zip
Add Bridge List Holder Test
Diffstat (limited to 'broker')
-rw-r--r--broker/bridge-list_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/broker/bridge-list_test.go b/broker/bridge-list_test.go
new file mode 100644
index 0000000..73da43c
--- /dev/null
+++ b/broker/bridge-list_test.go
@@ -0,0 +1,59 @@
+package main
+
+import (
+ "bytes"
+ "encoding/hex"
+ . "github.com/smartystreets/goconvey/convey"
+ "testing"
+)
+
+const DefaultBridges = `{"displayName":"default", "webSocketAddress":"wss://snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80A72"}
+`
+
+const ImaginaryBridges = `{"displayName":"default", "webSocketAddress":"wss://snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80A72"}
+{"displayName":"imaginary-1", "webSocketAddress":"wss://imaginary-1-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B00"}
+{"displayName":"imaginary-2", "webSocketAddress":"wss://imaginary-2-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B01"}
+{"displayName":"imaginary-3", "webSocketAddress":"wss://imaginary-3-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B02"}
+{"displayName":"imaginary-4", "webSocketAddress":"wss://imaginary-4-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B03"}
+{"displayName":"imaginary-5", "webSocketAddress":"wss://imaginary-5-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B04"}
+{"displayName":"imaginary-6", "webSocketAddress":"wss://imaginary-6-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B05"}
+{"displayName":"imaginary-7", "webSocketAddress":"wss://imaginary-7-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B06"}
+{"displayName":"imaginary-8", "webSocketAddress":"wss://imaginary-8-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B07"}
+{"displayName":"imaginary-9", "webSocketAddress":"wss://imaginary-9-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B08"}
+{"displayName":"imaginary-10", "webSocketAddress":"wss://imaginary-10-snowflake.torproject.org", "fingerprint":"2B280B23E1107BB62ABFC40DDCC8824814F80B09"}
+`
+
+func TestBridgeLoad(t *testing.T) {
+ Convey("load default list", t, func() {
+ bridgeList := NewBridgeListHolder()
+ So(bridgeList.LoadBridgeInfo(bytes.NewReader([]byte(DefaultBridges))), ShouldBeNil)
+ {
+ bridgeFingerprint := [20]byte{}
+ {
+ n, err := hex.Decode(bridgeFingerprint[:], []byte("2B280B23E1107BB62ABFC40DDCC8824814F80A72"))
+ So(n, ShouldEqual, 20)
+ So(err, ShouldBeNil)
+ }
+ bridgeInfo, err := bridgeList.GetBridgeInfo(bridgeFingerprint)
+ So(err, ShouldBeNil)
+ So(bridgeInfo.DisplayName, ShouldEqual, "default")
+ So(bridgeInfo.WebSocketAddress, ShouldEqual, "wss://snowflake.torproject.org")
+ }
+ })
+ Convey("load imaginary list", t, func() {
+ bridgeList := NewBridgeListHolder()
+ So(bridgeList.LoadBridgeInfo(bytes.NewReader([]byte(ImaginaryBridges))), ShouldBeNil)
+ {
+ bridgeFingerprint := [20]byte{}
+ {
+ n, err := hex.Decode(bridgeFingerprint[:], []byte("2B280B23E1107BB62ABFC40DDCC8824814F80B07"))
+ So(n, ShouldEqual, 20)
+ So(err, ShouldBeNil)
+ }
+ bridgeInfo, err := bridgeList.GetBridgeInfo(bridgeFingerprint)
+ So(err, ShouldBeNil)
+ So(bridgeInfo.DisplayName, ShouldEqual, "imaginary-8")
+ So(bridgeInfo.WebSocketAddress, ShouldEqual, "wss://imaginary-8-snowflake.torproject.org")
+ }
+ })
+}