| package prooftoken |
|
|
| import ( |
| "strings" |
| "testing" |
| ) |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| func TestSolveProofOfWork_FallbackFormat(t *testing.T) { |
| |
| tok := (&Config{}).SolveProofOfWork("", "") |
| if tok != PrefixProof+Suffix { |
| t.Fatalf("empty inputs should short-circuit to %q, got %q", PrefixProof+Suffix, tok) |
| } |
|
|
| |
| |
| tok = BuildFailToken("") |
| if !strings.HasPrefix(tok, PrefixProof+ErrorPrefix) { |
| t.Fatalf("BuildFailToken prefix wrong: %q", tok) |
| } |
| if !strings.HasSuffix(tok, Suffix) { |
| t.Fatalf("BuildFailToken suffix wrong: %q", tok) |
| } |
| |
| mid := tok[len(PrefixProof+ErrorPrefix) : len(tok)-len(Suffix)] |
| if mid != DefaultErrorPayload { |
| t.Fatalf("BuildFailToken middle = %q, want %q (= base64(JSON.stringify(\"e\")))", mid, DefaultErrorPayload) |
| } |
|
|
| |
| tok = BuildFailToken("hash error") |
| if !strings.HasPrefix(tok, PrefixProof+ErrorPrefix) { |
| t.Fatalf("BuildFailToken(err) prefix wrong: %q", tok) |
| } |
| if !strings.HasSuffix(tok, Suffix) { |
| t.Fatalf("BuildFailToken(err) suffix wrong: %q", tok) |
| } |
| mid = tok[len(PrefixProof+ErrorPrefix) : len(tok)-len(Suffix)] |
| wantMid := EncodeString("hash error") |
| if mid != wantMid { |
| t.Fatalf("BuildFailToken(err) middle = %q, want %q", mid, wantMid) |
| } |
| } |
|
|
| |
| |
| |
| func TestEncodeString(t *testing.T) { |
| if got := EncodeString("e"); got != "ImUi" { |
| t.Fatalf("EncodeString(\"e\") = %q, want %q", got, "ImUi") |
| } |
| if got := EncodeString("hello"); got != "ImhlbGxvIg==" { |
| t.Fatalf("EncodeString(\"hello\") = %q, want %q", got, "ImhlbGxvIg==") |
| } |
| } |
|
|