package main import ( "fmt" "net/http" "net/http/httptest" "reflect" "testing" ) var url = "https://wttr.in" func headerEqual(req *http.Request, headers map[string][]string) bool { for key, value := range req.Header { if !reflect.DeepEqual(value, headers[key]) { fmt.Printf("Failed to get expected headers \"%s\": %s != %s", key, value, headers[key]) return false } } return true } type newRequestResults struct { headers map[string]string expectedURL string expectedMethod string expectedHeaders map[string][]string expectedProto string } var newRequestTestResults = []newRequestResults{ {make(map[string]string), url, "GET", map[string][]string{"Content-Type": []string{"text/plain; charset=utf-8"}, "User-Agent": []string{"curl"}}, "HTTP/1.1"}, {map[string]string{"Content-Type": "text/html"}, url, "GET", map[string][]string{"Content-Type": []string{"text/html"}, "User-Agent": []string{"curl"}, "Language": []string{"fr"}}, "HTTP/1.1"}, {map[string]string{"Language": "fr"}, url, "GET", map[string][]string{"Content-Type": []string{"text/plain; charset=utf-8"}, "User-Agent": []string{"curl"}, "Language": []string{"fr"}}, "HTTP/1.1"}, {map[string]string{"Language": "fr", "Location": "Berlin"}, url, "GET", map[string][]string{"Content-Type": []string{"text/plain; charset=utf-8"}, "User-Agent": []string{"curl"}, "Language": []string{"fr"}, "Location": []string{"Berlin"}}, "HTTP/1.1"}, } func TestNewRequest(t *testing.T) { w := weather{url} for _, requestResult := range newRequestTestResults { req := w.newRequest(requestResult.headers) if req.URL.String() != requestResult.expectedURL { t.Fatalf("Failed to get expected URL: %s != %s", req.URL.String(), requestResult.expectedURL) } if req.Method != requestResult.expectedMethod { t.Fatalf("Failed to get expected method: %s != %s", req.Method, requestResult.expectedMethod) } if req.Proto != requestResult.expectedProto { t.Fatalf("Failed to get expected protocol: %s != %s", req.Proto, requestResult.expectedProto) } if !headerEqual(req, requestResult.expectedHeaders) { t.Fatal() } } } func TestFormatHeader(t *testing.T) { w := weather{url} req := httptest.NewRequest("GET", url, nil) for _, requestResult := range newRequestTestResults { newReq := w.formatHeader(req, requestResult.headers) if !headerEqual(newReq, requestResult.expectedHeaders) { t.Fatal() } } } type generatedParams struct { switches []*bool freeStyle string format string oneLiner bool png bool addFrame bool transparency int download bool expectedAffix string expectedDownload bool } var boolTrue = true var boolFalse = false var generatedParamsResults = []generatedParams{ {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?nq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?T", false}, {[]*bool{&boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mu", false}, {[]*bool{&boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mM", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m0", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m1", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m2", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mA", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mF", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mnq", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?mQ", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?mT", false}, {[]*bool{&boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mu", false}, {[]*bool{&boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uM", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u0", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u1", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u2", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uA", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uF", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?unq", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?uQ", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?uT", false}, {[]*bool{&boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mM", false}, {[]*bool{&boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uM", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M0", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M1", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M2", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?MA", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?MF", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Mnq", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?MQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?MT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m0", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u0", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M0", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?01", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?02", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0nq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?0Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?0T", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m1", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u1", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M1", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?01", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?12", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1nq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?1Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?1T", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?m2", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?u2", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?M2", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?02", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?12", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2nq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?2Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?2T", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mA", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uA", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?MA", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2A", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?AF", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Anq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?AQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?AT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mF", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uF", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?MF", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2F", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?AF", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Fnq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?FQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?FT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mn", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?un", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Mn", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0n", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1n", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2n", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?An", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Fn", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?nQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?nT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?mq", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?uq", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Mq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?0q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?1q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?2q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Aq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse}, "", "", false, false, false, 0, false, "?Fq", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?qQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?qT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?mQ", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?uQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?MQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?0Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?1Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?2Q", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?AQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?FQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolTrue, &boolFalse}, "", "", false, false, false, 0, false, "?nqQ", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue}, "", "", false, false, false, 0, false, "?QT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?mT", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?uT", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?MT", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?0T", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?1T", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?2T", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?AT", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?FT", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolTrue}, "", "", false, false, false, 0, false, "?nqT", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue}, "", "", false, false, false, 0, false, "?QT", false}, // FreeStyle {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", false, false, false, 0, false, "freestyle", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", false, false, false, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, false, false, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", false, true, false, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", false, false, true, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, true, false, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, false, true, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, true, true, 0, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", false, false, false, 100, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "freestyle", "", true, false, false, 100, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "freestyle", "", false, true, false, 100, false, "freestyle", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "freestyle", "", false, false, true, 100, false, "freestyle", false}, {[]*bool{&boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, false, true, 100, false, "freestyle", false}, {[]*bool{&boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, true, false, 100, false, "freestyle", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "", true, true, true, 100, false, "freestyle", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "format", false, false, false, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "format", false, true, false, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "format", false, false, true, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "freestyle", "format", true, false, false, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "freestyle", "format", true, true, false, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "freestyle", "format", true, false, true, 0, true, "freestyle", true}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "freestyle", "format", true, true, true, 0, true, "freestyle", true}, // Format {[]*bool{&boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", false, false, false, 0, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", true, false, false, 0, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", false, true, false, 100, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", false, false, true, 0, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", true, true, false, 100, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", true, false, true, 0, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "format", true, true, true, 100, false, "?format=\"format\"", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "format", false, false, false, 0, true, "?format=\"format\"", true}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "format", false, false, false, 100, true, "?format=\"format\"", true}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "format", false, false, false, 0, true, "?format=\"format\"", true}, {[]*bool{&boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, false, false, 0, false, "?format=3", false}, {[]*bool{&boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, true, false, 0, false, "_uM_transparency=0.png", true}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, true, 0, false, "?M0", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, true, false, 0, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, false, true, 0, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, true, true, 0, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 100, false, "?MF", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse}, "", "", true, false, false, 100, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolFalse}, "", "", false, true, false, 100, false, "_MQ_transparency=100.png", true}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolTrue}, "", "", false, false, true, 100, false, "?MT", false}, {[]*bool{&boolTrue, &boolFalse, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, true, false, 100, false, "?format=3", false}, {[]*bool{&boolFalse, &boolTrue, &boolFalse, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, false, true, 100, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", true, true, true, 100, false, "?format=3", false}, {[]*bool{&boolFalse, &boolFalse, &boolFalse, &boolTrue, &boolTrue, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse, &boolFalse}, "", "", false, false, false, 0, true, "?01", true}, } func TestGenerateParamFormat(t *testing.T) { for _, p := range generatedParamsResults { f, d, _ := generateParamFormat(p.switches, &p.freeStyle, &p.format, &p.oneLiner, &p.png, &p.addFrame, &p.transparency, &p.download) if f != p.expectedAffix { t.Fatalf("Failed to get expected affix: %s != %s", f, p.expectedAffix) } if d != p.expectedDownload { t.Fatalf("Failed to get expected download: %t != %t", d, p.expectedDownload) } } } type generateURLResults struct { domain string v2 bool location string lang string affix string expectedURL string expectedHeaders map[string]string } var domain = "wttr.in" var generateURLTestResults = []generateURLResults{ {domain, false, "", "", "", "https://wttr.in/", map[string]string{}}, {domain, false, "", "de", "", "https://wttr.in/", map[string]string{"Accept-Language": "de"}}, {domain, false, "", "de", "?affix", "https://wttr.in/?affix", map[string]string{"Accept-Language": "de"}}, {domain, false, "Paris", "", "", "https://wttr.in/Paris", map[string]string{}}, {domain, false, "Paris", "de", "", "https://wttr.in/Paris", map[string]string{"Accept-Language": "de"}}, {domain, false, "Paris", "de", "?affix", "https://wttr.in/Paris?affix", map[string]string{"Accept-Language": "de"}}, {domain, true, "", "", "", "https://v2.wttr.in/", map[string]string{}}, {domain, true, "", "de", "", "https://v2.wttr.in/", map[string]string{"Accept-Language": "de"}}, {domain, true, "", "de", "?affix", "https://v2.wttr.in/?affix", map[string]string{"Accept-Language": "de"}}, {domain, true, "Paris", "", "", "https://v2.wttr.in/Paris", map[string]string{}}, {domain, true, "Paris", "de", "", "https://v2.wttr.in/Paris", map[string]string{"Accept-Language": "de"}}, {domain, true, "Paris", "de", "?affix", "https://v2.wttr.in/Paris?affix", map[string]string{"Accept-Language": "de"}}, } func TestGenerateURL(t *testing.T) { for _, g := range generateURLTestResults { a, h := generateURL(g.domain, g.v2, g.location, g.lang, g.affix) if a != g.expectedURL { t.Fatalf("Failed to get expected URL: %s != %s", a, g.expectedURL) } if !reflect.DeepEqual(h, g.expectedHeaders) { t.Fatalf("Failed to get expected headers: %s != %s", h, g.expectedHeaders) } } }