[tor-commits] [pluggable-transports/snowflake] 03/31: Add Bridge List Holder Test

gitolite role git at cupani.torproject.org
Thu Jun 16 17:03:50 UTC 2022


This is an automated email from the git hooks/post-receive script.

shelikhoo pushed a commit to branch main
in repository pluggable-transports/snowflake.

commit 5578b4dd76339cbf76ee8fced30d08e02a424d3b
Author: Shelikhoo <xiaokangwang at outlook.com>
AuthorDate: Tue Mar 29 14:06:05 2022 +0100

    Add Bridge List Holder Test
---
 broker/bridge-list_test.go | 59 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list