From eb093f9cb2818a673fc2fc8cea18c3e26caed6b5 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Sun, 5 May 2024 18:49:08 +0200 Subject: [PATCH] Add query param 'size' as alias for 's' --- idicon.go | 5 ++- idicon_test.go | 31 ++++++++++++++++++ .../1a79a4d60de6718e8e5b326e338ae533_s40.png | Bin 0 -> 182 bytes 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 testdata/1a79a4d60de6718e8e5b326e338ae533_s40.png diff --git a/idicon.go b/idicon.go index 1efda1e..d2f84e9 100644 --- a/idicon.go +++ b/idicon.go @@ -18,7 +18,10 @@ func requestHandler(w http.ResponseWriter, r *http.Request) { size, err := strconv.Atoi(r.URL.Query().Get("s")) if err != nil { - size = 80 + size, err = strconv.Atoi(r.URL.Query().Get("size")) + if err != nil { + size = 80 + } } colorScheme := r.URL.Query().Get("c") diff --git a/idicon_test.go b/idicon_test.go index 08e182f..65f0e04 100644 --- a/idicon_test.go +++ b/idicon_test.go @@ -23,6 +23,9 @@ var gh1 []byte //go:embed testdata/a1d0c6e83f027327d8461063f4ac58a6_gh.png var gh2 []byte +//go:embed testdata/1a79a4d60de6718e8e5b326e338ae533_s40.png +var s40 []byte + func testRouter() *mux.Router { router := mux.NewRouter() router.HandleFunc("/avatar/{id}", requestHandler) @@ -99,6 +102,34 @@ func TestCorrectResponseForAltGHColorSchemeAndPattern(t *testing.T) { } } +func TestCorrectResponseForSParam40(t *testing.T) { + req, err := http.NewRequest("GET", "/avatar/1a79a4d60de6718e8e5b326e338ae533?s=40", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + testRouter().ServeHTTP(rr, req) + + if !reflect.DeepEqual(rr.Body.Bytes(), s40) { + t.Errorf("returned image does not match expected image") + } +} + +func TestCorrectResponseForSizeParam40(t *testing.T) { + req, err := http.NewRequest("GET", "/avatar/1a79a4d60de6718e8e5b326e338ae533?size=40", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + testRouter().ServeHTTP(rr, req) + + if !reflect.DeepEqual(rr.Body.Bytes(), s40) { + t.Errorf("returned image does not match expected image") + } +} + func TestUsesConfig(t *testing.T) { configure("./testdata/testconfig.toml") diff --git a/testdata/1a79a4d60de6718e8e5b326e338ae533_s40.png b/testdata/1a79a4d60de6718e8e5b326e338ae533_s40.png new file mode 100644 index 0000000000000000000000000000000000000000..f73cbfa5b03180953ebeba5dcf3e6eba005ee240 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx7)T2B|pkcv4;KR-NVKJ37-jB#V> zm82>rF_V9vr?#x{gHi9Kx$X{(Ou z?B#5lD1K$J*k#@Y%d=KZIUI2?gF6Li3}aE0!jrA5FCKsza3ZrYfEA>