mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
amp package.
This package contains a CacheURL function that modifies a URL to be accessed through an AMP cache, and the "AMP armor" data encoding scheme for encoding data into the AMP subset of HTML.
This commit is contained in:
parent
0f34a7778f
commit
c9e0dd287f
8 changed files with 1223 additions and 0 deletions
54
common/amp/path_test.go
Normal file
54
common/amp/path_test.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package amp
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDecodePath(t *testing.T) {
|
||||
for _, test := range []struct {
|
||||
path string
|
||||
expectedData string
|
||||
expectedErrStr string
|
||||
}{
|
||||
{"", "", "missing format indicator"},
|
||||
{"0", "", "missing data"},
|
||||
{"0foobar", "", "missing data"},
|
||||
{"/0/YWJj", "", "unknown format indicator '/'"},
|
||||
|
||||
{"0/", "", ""},
|
||||
{"0foobar/", "", ""},
|
||||
{"0/YWJj", "abc", ""},
|
||||
{"0///YWJj", "abc", ""},
|
||||
{"0foobar/YWJj", "abc", ""},
|
||||
{"0/foobar/YWJj", "abc", ""},
|
||||
} {
|
||||
data, err := DecodePath(test.path)
|
||||
if test.expectedErrStr != "" {
|
||||
if err == nil || err.Error() != test.expectedErrStr {
|
||||
t.Errorf("%+q expected error %+q, got %+q",
|
||||
test.path, test.expectedErrStr, err)
|
||||
}
|
||||
} else if err != nil {
|
||||
t.Errorf("%+q expected no error, got %+q", test.path, err)
|
||||
} else if string(data) != test.expectedData {
|
||||
t.Errorf("%+q expected data %+q, got %+q",
|
||||
test.path, test.expectedData, data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPathRoundTrip(t *testing.T) {
|
||||
for _, data := range []string{
|
||||
"",
|
||||
"\x00",
|
||||
"/",
|
||||
"hello world",
|
||||
} {
|
||||
decoded, err := DecodePath(EncodePath([]byte(data)))
|
||||
if err != nil {
|
||||
t.Errorf("%+q roundtripped with error %v", data, err)
|
||||
} else if string(decoded) != data {
|
||||
t.Errorf("%+q roundtripped to %+q", data, decoded)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue