diff options
Diffstat (limited to 'tools/glue/vendor/github.com/cjoudrey/gluaurl/gluaurl_test.go')
| -rw-r--r-- | tools/glue/vendor/github.com/cjoudrey/gluaurl/gluaurl_test.go | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/tools/glue/vendor/github.com/cjoudrey/gluaurl/gluaurl_test.go b/tools/glue/vendor/github.com/cjoudrey/gluaurl/gluaurl_test.go deleted file mode 100644 index a21a675..0000000 --- a/tools/glue/vendor/github.com/cjoudrey/gluaurl/gluaurl_test.go +++ /dev/null @@ -1,250 +0,0 @@ -package gluaurl - -import "github.com/yuin/gopher-lua" -import "testing" -import "os" -import "bytes" -import "io" -import "strings" - -func TestParse(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -parsed = url.parse("http://bob:secret@example.com:8080/products?page=2#something") - -print(parsed.scheme) -print(parsed.username) -print(parsed.password) -print(parsed.host) -print(parsed.path) -print(parsed.query) -print(parsed.fragment) -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := `http -bob -secret -example.com:8080 -/products -page=2 -something -`; expected != output { - t.Errorf("Expected output does not match actual output\nExpected: %s\nActual: %s", expected, output) - } - } -} - -func TestParseOnlyHost(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -parsed = url.parse("https://example.com") - -print(parsed.scheme) -print(parsed.username) -print(parsed.password) -print(parsed.host) -print(parsed.path) -print(parsed.query) -print(parsed.fragment) -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := `https -nil -nil -example.com - - - -`; expected != output { - t.Errorf("Expected output does not match actual output\nExpected: %s\nActual: %s", expected, output) - } - } -} - -func TestBuild(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -built = url.build({ - scheme="https", - username="bob", - password="secret", - host="example.com:8080", - path="/products", - query="page=2", - fragment="something" -}) - -print(built) -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := `https://bob:secret@example.com:8080/products?page=2#something -`; expected != output { - t.Errorf("Expected output does not match actual output\nExpected: %s\nActual: %s", expected, output) - } - } -} - -func TestBuildEmpty(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -built = url.build({}) - -print(built) -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := ` -`; expected != output { - t.Errorf("Expected output does not match actual output\nExpected: %s\nActual: %s", expected, output) - } - } -} - -func TestBuildQueryString(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -function assert_query_string(options, expected, message) - actual = url.build_query_string(options) - - if expected ~= actual then - print("Failed to build '" .. message .. "'") - print("Expected:") - print(expected) - print("Actual:") - print(actual) - end -end - -assert_query_string( - {foo="bar", baz=42, quux="All your base are belong to us"}, - "baz=42&foo=bar&quux=All+your+base+are+belong+to+us", - "simple" -) - -assert_query_string( - {someName={1, 2, 3}, regularThing="blah"}, - "regularThing=blah&someName%5B%5D=1&someName%5B%5D=2&someName%5B%5D=3", - "with array" -) - -assert_query_string( - {foo={"a", "b", "c"}}, - "foo%5B%5D=a&foo%5B%5D=b&foo%5B%5D=c", - "with array of strings" -) - -assert_query_string( - {foo={"baz", 42, "All your base are belong to us"}}, - "foo%5B%5D=baz&foo%5B%5D=42&foo%5B%5D=All+your+base+are+belong+to+us", - "more array" -) - -assert_query_string( - {foo={bar="baz", beep=42, quux="All your base are belong to us"}}, - "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All+your+base+are+belong+to+us", - "even more arrays" -) - -assert_query_string( - {a={1,2}, b={c=3, d={4,5}, e={ x={6}, y=7, z={8,9} }, f=true, g=false, h=""}, i={10,11}, j=true, k=false, l={"",0}, m="cowboy hat?" }, - "a%5B%5D=1&a%5B%5D=2&b%5Bc%5D=3&b%5Bd%5D%5B%5D=4&b%5Bd%5D%5B%5D=5&b%5Be%5D%5Bx%5D%5B%5D=6&b%5Be%5D%5By%5D=7&b%5Be%5D%5Bz%5D%5B%5D=8&b%5Be%5D%5Bz%5D%5B%5D=9&b%5Bf%5D=true&b%5Bg%5D=false&b%5Bh%5D=&i%5B%5D=10&i%5B%5D=11&j=true&k=false&l%5B%5D=&l%5B%5D=0&m=cowboy+hat%3F", - "huge structure" -) - -assert_query_string( - { a={0, { 1, 2 }, { 3, { 4, 5 }, { 6 } }, { b= { 7, { 8, 9 }, { { c=10, d=11 } }, { { 12 } }, { { { 13 } } }, { e= { f= { g={ 14, { 15 } } } } }, 16 } }, 17 } }, - "a%5B%5D=0&a%5B1%5D%5B%5D=1&a%5B1%5D%5B%5D=2&a%5B2%5D%5B%5D=3&a%5B2%5D%5B1%5D%5B%5D=4&a%5B2%5D%5B1%5D%5B%5D=5&a%5B2%5D%5B2%5D%5B%5D=6&a%5B3%5D%5Bb%5D%5B%5D=7&a%5B3%5D%5Bb%5D%5B1%5D%5B%5D=8&a%5B3%5D%5Bb%5D%5B1%5D%5B%5D=9&a%5B3%5D%5Bb%5D%5B2%5D%5B0%5D%5Bc%5D=10&a%5B3%5D%5Bb%5D%5B2%5D%5B0%5D%5Bd%5D=11&a%5B3%5D%5Bb%5D%5B3%5D%5B0%5D%5B%5D=12&a%5B3%5D%5Bb%5D%5B4%5D%5B0%5D%5B0%5D%5B%5D=13&a%5B3%5D%5Bb%5D%5B5%5D%5Be%5D%5Bf%5D%5Bg%5D%5B%5D=14&a%5B3%5D%5Bb%5D%5B5%5D%5Be%5D%5Bf%5D%5Bg%5D%5B1%5D%5B%5D=15&a%5B3%5D%5Bb%5D%5B%5D=16&a%5B%5D=17", - "nested arrays" -) - -assert_query_string( - { a= {1,2,3}, ["b[]"]= {4,5,6}, ["c[d]"]= {7,8,9}, e= { f= {10}, g= {11,12}, h= 13 } }, - "a%5B%5D=1&a%5B%5D=2&a%5B%5D=3&b%5B%5D=4&b%5B%5D=5&b%5B%5D=6&c%5Bd%5D%5B%5D=7&c%5Bd%5D%5B%5D=8&c%5Bd%5D%5B%5D=9&e%5Bf%5D%5B%5D=10&e%5Bg%5D%5B%5D=11&e%5Bg%5D%5B%5D=12&e%5Bh%5D=13", - "make sure params are not double-encoded" -) - -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := ``; expected != output { - t.Error(output) - } - } -} - -func TestResolve(t *testing.T) { - output, err := evalScript(` -local url = require("url") - -print(url.resolve('/one/two/three', 'four')) -print(url.resolve('http://example.com/', '/one')) -print(url.resolve('http://example.com/one', '/two')) -print(url.resolve('https://example.com/one', '//example2.com')) -`) - - if err != nil { - t.Errorf("Failed to evaluate script: %s", err) - } else { - if expected := `/one/two/four -http://example.com/one -http://example.com/two -https://example2.com -`; expected != output { - t.Errorf("Expected output does not match actual output\nExpected: %s\nActual: %s", expected, output) - } - } -} - -func evalScript(script string) (string, error) { - L := lua.NewState() - defer L.Close() - - L.PreloadModule("url", Loader) - - var err error - - out := captureStdout(func() { - err = L.DoString(script) - }) - - return out, err -} - -func captureStdout(inner func()) string { - oldStdout := os.Stdout - r, w, _ := os.Pipe() - os.Stdout = w - - outC := make(chan string) - go func() { - var buf bytes.Buffer - io.Copy(&buf, r) - outC <- buf.String() - }() - - inner() - - w.Close() - os.Stdout = oldStdout - out := strings.Replace(<-outC, "\r", "", -1) - - return out -} |
