mirror of https://github.com/cbeuw/Cloak
Add tests
This commit is contained in:
parent
53b6b96262
commit
05972863b5
|
|
@ -0,0 +1,46 @@
|
||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/hex"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMakeGREASE(t *testing.T) {
|
||||||
|
a := hex.EncodeToString(makeGREASE())
|
||||||
|
if a[1] != 'a' || a[3] != 'a' {
|
||||||
|
t.Errorf("GREASE got %v", a)
|
||||||
|
}
|
||||||
|
|
||||||
|
var GREASEs []string
|
||||||
|
for i := 0; i < 50; i++ {
|
||||||
|
GREASEs = append(GREASEs, hex.EncodeToString(makeGREASE()))
|
||||||
|
}
|
||||||
|
var eqCount int
|
||||||
|
for _, g := range GREASEs {
|
||||||
|
if a == g {
|
||||||
|
eqCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if eqCount > 40 {
|
||||||
|
t.Error("GREASE is not random", GREASEs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestComposeExtension(t *testing.T) {
|
||||||
|
serverName := "cdn.bizible.com"
|
||||||
|
keyShare, _ := hex.DecodeString("010a8896b68fb16e2a245ed87be2699348ab72068bb326eac5beaa00fa56ff17")
|
||||||
|
|
||||||
|
result := (&Chrome{}).composeExtensions(serverName, keyShare)
|
||||||
|
target, _ := hex.DecodeString("5a5a000000000014001200000f63646e2e62697a69626c652e636f6d00170000ff01000100000a000a0008fafa001d00170018000b00020100002300000010000e000c02683208687474702f312e31000500050100000000000d00140012040308040401050308050501080606010201001200000033002b0029fafa000100001d0020010a8896b68fb16e2a245ed87be2699348ab72068bb326eac5beaa00fa56ff17002d00020101002b000b0aaaaa0304030303020301001b0003020002eaea000100001500c9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
|
||||||
|
for p := 0; p < len(result); {
|
||||||
|
// skip GREASEs
|
||||||
|
if p == 0 || p == 43 || p == 122 || p == 174 || p == 191 {
|
||||||
|
p += 2
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if result[p] != target[p] {
|
||||||
|
t.Errorf("inequality at %v", p)
|
||||||
|
}
|
||||||
|
p += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,9 +6,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSSVtoJson(t *testing.T) {
|
func TestSSVtoJson(t *testing.T) {
|
||||||
ssv := "UID=iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=;PublicKey=IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=;ServerName=www.bing.com;TicketTimeHint=3600;NumConn=4;MaskBrowser=chrome;"
|
ssv := "UID=iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=;PublicKey=IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=;ServerName=www.bing.com;NumConn=4;MaskBrowser=chrome;"
|
||||||
json := ssvToJson(ssv)
|
json := ssvToJson(ssv)
|
||||||
expected := []byte(`{"UID":"iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=","PublicKey":"IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=","ServerName":"www.bing.com","TicketTimeHint":3600,"NumConn":4,"MaskBrowser":"chrome"}`)
|
expected := []byte(`{"UID":"iGAO85zysIyR4c09CyZSLdNhtP/ckcYu7nIPI082AHA=","PublicKey":"IYoUzkle/T/kriE+Ufdm7AHQtIeGnBWbhhlTbmDpUUI=","ServerName":"www.bing.com","NumConn":4,"MaskBrowser":"chrome"}`)
|
||||||
if !bytes.Equal(expected, json) {
|
if !bytes.Equal(expected, json) {
|
||||||
t.Error(
|
t.Error(
|
||||||
"For", "ssvToJson",
|
"For", "ssvToJson",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue