2408 lines
27 KiB
Go
2408 lines
27 KiB
Go
package rfc3986_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"math/rand"
|
|
"time"
|
|
|
|
"github.com/reiver/go-rfc3986"
|
|
)
|
|
|
|
func TestHasPrefixPctEncoded(t *testing.T) {
|
|
tests := []struct{
|
|
String string
|
|
Expected bool
|
|
}{
|
|
{
|
|
String: "",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "ONCE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "TWICE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "THRICE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "FOURCE",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "0x00",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "0xff",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "0xFF",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%GG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Gg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%gG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%gg",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%A",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%B",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%C",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%D",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%E",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%F",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%0G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9G",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%EG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FG",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fG",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%0g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9g",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Ag",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ag",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Bg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Cg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Dg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Eg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%Fg",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fg",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%00",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%01",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%02",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%03",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%04",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%05",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%06",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%07",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%08",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%09",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%0B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%0C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%0D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%0E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%0F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%0f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%10",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%11",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%12",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%13",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%14",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%15",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%16",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%17",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%18",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%19",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%1F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%1f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%20",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%21",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%22",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%23",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%24",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%25",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%26",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%27",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%28",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%29",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%2F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%2f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%30",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%31",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%32",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%33",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%34",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%35",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%36",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%37",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%38",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%39",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%3F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%3f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%40",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%41",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%42",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%43",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%44",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%45",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%46",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%47",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%48",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%49",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%4F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%4f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%50",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%51",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%52",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%53",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%54",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%55",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%56",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%57",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%58",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%59",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%5F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%5f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%60",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%61",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%62",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%63",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%64",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%65",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%66",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%67",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%68",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%69",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%6F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%6f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%70",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%71",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%72",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%73",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%74",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%75",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%76",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%77",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%78",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%79",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%7F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%7f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%80",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%81",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%82",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%83",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%84",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%85",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%86",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%87",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%88",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%89",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%8F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%8f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%90",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%91",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%92",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%93",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%94",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%95",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%96",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%97",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%98",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%99",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9A",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9a",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9B",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9b",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9C",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9c",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9D",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9d",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9E",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9e",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%9F",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%9f",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%A0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%A9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%AA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Aa",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ab",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ac",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AD",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ad",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ae",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%AF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Af",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%a0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%a9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aa",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ab",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ac",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ad",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ae",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%aF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%af",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%B0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%B9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%BA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ba",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Bb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Bc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BD",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Bd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Be",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%BF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Bf",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%b0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%b9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ba",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%be",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%bf",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%C0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%C9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%CA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ca",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Cb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Cc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CD",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Cd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ce",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%CF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Cf",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%c0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%c9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ca",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ce",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%cf",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%D0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%D9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%DA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Da",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Db",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Dc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DD",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Dd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%De",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%DF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Df",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%d0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%d9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%da",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%db",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%de",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%dF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%df",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%E0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%E9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%EA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ea",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%EB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Eb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%EC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ec",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ED",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ed",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%EE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ee",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%EF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ef",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%e0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%e9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ea",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ec",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ed",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ee",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%eF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ef",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%F0",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F1",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F2",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F3",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F4",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F5",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F6",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F7",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F8",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%F9",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%FA",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Fa",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FB",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Fb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FC",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Fc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FD",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Fd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FE",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Fe",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%FF",
|
|
Expected: true,
|
|
},
|
|
{
|
|
String: "%Ff",
|
|
Expected: false,
|
|
},
|
|
|
|
|
|
|
|
{
|
|
String: "%f0",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f1",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f2",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f3",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f4",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f5",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f6",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f7",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f8",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%f9",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fA",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fa",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fB",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fb",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fC",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fc",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fD",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fd",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fE",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fe",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%fF",
|
|
Expected: false,
|
|
},
|
|
{
|
|
String: "%ff",
|
|
Expected: false,
|
|
},
|
|
|
|
}
|
|
|
|
{
|
|
randomness := rand.New(rand.NewSource( time.Now().UTC().UnixNano() ))
|
|
|
|
var hexchars []byte = []byte{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}
|
|
var chars []byte = []byte{' ','+','-','.','/','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
|
|
|
|
for i:=0; i<0xFF; i++{
|
|
|
|
var p []byte
|
|
|
|
p = append(p, '%')
|
|
p = append(p, hexchars[randomness.Intn(len(hexchars))])
|
|
p = append(p, hexchars[randomness.Intn(len(hexchars))])
|
|
|
|
{
|
|
var limit int = 1 + randomness.Intn(5)
|
|
|
|
for j:=0; j<limit; j++ {
|
|
p = append(p, chars[randomness.Intn(len(chars))])
|
|
}
|
|
}
|
|
|
|
|
|
test := struct{
|
|
String string
|
|
Expected bool
|
|
}{
|
|
String: string(p),
|
|
Expected: true,
|
|
}
|
|
|
|
tests = append(tests, test)
|
|
}
|
|
}
|
|
|
|
for testNumber, test := range tests {
|
|
actual := rfc3986.HasPrefixPctEncoded(test.String)
|
|
|
|
expected := test.Expected
|
|
|
|
if expected != actual {
|
|
t.Errorf("For test #%d, the actual result is not what was expected.", testNumber)
|
|
t.Logf("EXPECTED: %t", expected)
|
|
t.Logf("ACTUAL: %t", actual)
|
|
t.Logf("STRING: %q", test.String)
|
|
continue
|
|
}
|
|
}
|
|
}
|