URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [html/] [template/] [url_test.go] - Rev 747
Compare with Previous | Blame | View Log
// Copyright 2011 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package templateimport ("testing")func TestURLNormalizer(t *testing.T) {tests := []struct {url, want string}{{"", ""},{"http://example.com:80/foo/bar?q=foo%20&bar=x+y#frag","http://example.com:80/foo/bar?q=foo%20&bar=x+y#frag",},{" ", "%20"},{"%7c", "%7c"},{"%7C", "%7C"},{"%2", "%252"},{"%", "%25"},{"%z", "%25z"},{"/foo|bar/%5c\u1234", "/foo%7cbar/%5c%e1%88%b4"},}for _, test := range tests {if got := urlNormalizer(test.url); test.want != got {t.Errorf("%q: want\n\t%q\nbut got\n\t%q", test.url, test.want, got)}if test.want != urlNormalizer(test.want) {t.Errorf("not idempotent: %q", test.want)}}}func TestURLFilters(t *testing.T) {input := ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +` !"#$%&'()*+,-./` +`0123456789:;<=>?` +`@ABCDEFGHIJKLMNO` +`PQRSTUVWXYZ[\]^_` +"`abcdefghijklmno" +"pqrstuvwxyz{|}~\x7f" +"\u00A0\u0100\u2028\u2029\ufeff\U0001D11E")tests := []struct {name stringescaper func(...interface{}) stringescaped string}{{"urlEscaper",urlEscaper,"%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f" +"%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f" +"%20%21%22%23%24%25%26%27%28%29%2a%2b%2c-.%2f" +"0123456789%3a%3b%3c%3d%3e%3f" +"%40ABCDEFGHIJKLMNO" +"PQRSTUVWXYZ%5b%5c%5d%5e_" +"%60abcdefghijklmno" +"pqrstuvwxyz%7b%7c%7d~%7f" +"%c2%a0%c4%80%e2%80%a8%e2%80%a9%ef%bb%bf%f0%9d%84%9e",},{"urlNormalizer",urlNormalizer,"%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f" +"%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f" +"%20!%22#$%25&%27%28%29*+,-./" +"0123456789:;%3c=%3e?" +"@ABCDEFGHIJKLMNO" +"PQRSTUVWXYZ[%5c]%5e_" +"%60abcdefghijklmno" +"pqrstuvwxyz%7b%7c%7d~%7f" +"%c2%a0%c4%80%e2%80%a8%e2%80%a9%ef%bb%bf%f0%9d%84%9e",},}for _, test := range tests {if s := test.escaper(input); s != test.escaped {t.Errorf("%s: want\n\t%q\ngot\n\t%q", test.name, test.escaped, s)continue}}}func BenchmarkURLEscaper(b *testing.B) {for i := 0; i < b.N; i++ {urlEscaper("http://example.com:80/foo?q=bar%20&baz=x+y#frag")}}func BenchmarkURLEscaperNoSpecials(b *testing.B) {for i := 0; i < b.N; i++ {urlEscaper("TheQuickBrownFoxJumpsOverTheLazyDog.")}}func BenchmarkURLNormalizer(b *testing.B) {for i := 0; i < b.N; i++ {urlNormalizer("The quick brown fox jumps over the lazy dog.\n")}}func BenchmarkURLNormalizerNoSpecials(b *testing.B) {for i := 0; i < b.N; i++ {urlNormalizer("http://example.com:80/foo?q=bar%20&baz=x+y#frag")}}
