From c99a2516b74fc850224f795a1c567fb685e8ab56 Mon Sep 17 00:00:00 2001 From: phenpessoa Date: Fri, 24 Nov 2023 12:56:04 -0300 Subject: [PATCH 1/4] validation: replace '+' with ' ' in TownExists --- src/validation/tibia.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/validation/tibia.go b/src/validation/tibia.go index fd1dbbd9..024b63d1 100644 --- a/src/validation/tibia.go +++ b/src/validation/tibia.go @@ -306,6 +306,8 @@ func TownExists(town string) (bool, error) { return false, ErrorValidatorNotInitiated } + town = strings.ReplaceAll(town, "+", " ") + // Try to find the town for _, t := range val.Towns { if strings.EqualFold(t, town) { From 4ad8ecc2550469a2029616f501a887067948788b Mon Sep 17 00:00:00 2001 From: phenpessoa Date: Fri, 24 Nov 2023 13:36:56 -0300 Subject: [PATCH 2/4] validation: add test cases for TownExists --- src/validation/tibia_test.go | 103 +++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/validation/tibia_test.go diff --git a/src/validation/tibia_test.go b/src/validation/tibia_test.go new file mode 100644 index 00000000..6892da5b --- /dev/null +++ b/src/validation/tibia_test.go @@ -0,0 +1,103 @@ +package validation + +import "testing" + +func TestTownExists(t *testing.T) { + if !initiated { + err := Initiate("TibiaData-API-Testing") + if err != nil { + t.Fatal(err) + } + } + + tests := []struct { + name string + town string + want bool + wantErr bool + }{ + { + name: "empty", + town: "", + want: false, + wantErr: false, + }, { + name: "unknown", + town: "anything", + want: false, + wantErr: false, + }, { + name: "carlin lower case", + town: "carlin", + want: true, + wantErr: false, + }, { + name: "carlin upper case", + town: "CARLIN", + want: true, + wantErr: false, + }, { + name: "carlin mixed case", + town: "CaRlIn", + want: true, + wantErr: false, + }, { + name: "ab'dendriel lower case", + town: "ab'dendriel", + want: true, + wantErr: false, + }, { + name: "ab'dendriel upper case", + town: "AB'DENDRIEL", + want: true, + wantErr: false, + }, { + name: "ab'dendriel mixed case", + town: "Ab'DeNdRiEl", + want: true, + wantErr: false, + }, { + name: "port hope lower case", + town: "port hope", + want: true, + wantErr: false, + }, { + name: "port hope upper case", + town: "PORT HOPE", + want: true, + wantErr: false, + }, { + name: "port hope mixed case", + town: "PoRt HoPe", + want: true, + wantErr: false, + }, { + name: "port hope lower case with '+'", + town: "port+hope", + want: true, + wantErr: false, + }, { + name: "port hope upper case with '+'", + town: "PORT+HOPE", + want: true, + wantErr: false, + }, { + name: "port hope mixed case with '+'", + town: "PoRt+HoPe", + want: true, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := TownExists(tt.town) + if (err != nil) != tt.wantErr { + t.Errorf("TownExists() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("TownExists() = %v, want %v", got, tt.want) + } + }) + } +} From c11464b34847cc23d6b98c2785c01eca88f79250 Mon Sep 17 00:00:00 2001 From: phenpessoa Date: Fri, 24 Nov 2023 15:36:38 -0300 Subject: [PATCH 3/4] tibiaHousesOverview: replace '+' with ' ' in world and town --- src/webserver.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/webserver.go b/src/webserver.go index 8f20bb8a..c38fa49a 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -654,8 +654,8 @@ func tibiaHousesOverview(c *gin.Context) { town := c.Param("town") // Adding fix for First letter to be upper and rest lower - world = TibiaDataStringWorldFormatToTitle(world) - town = TibiaDataStringWorldFormatToTitle(town) + world = strings.ReplaceAll(TibiaDataStringWorldFormatToTitle(world), "+", " ") + town = strings.ReplaceAll(TibiaDataStringWorldFormatToTitle(town), "+", " ") // Check if world exists exists, err := validation.WorldExists(world) From eba087cbd7ac12674a221bd3e7c6ab58f4d6feb4 Mon Sep 17 00:00:00 2001 From: Tobias Lindberg Date: Fri, 24 Nov 2023 21:33:19 +0100 Subject: [PATCH 4/4] add comment and remove not needed ReplaceAll --- src/validation/tibia.go | 1 + src/webserver.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/validation/tibia.go b/src/validation/tibia.go index 024b63d1..c3660007 100644 --- a/src/validation/tibia.go +++ b/src/validation/tibia.go @@ -306,6 +306,7 @@ func TownExists(town string) (bool, error) { return false, ErrorValidatorNotInitiated } + // Replace + with spaces in the town name town = strings.ReplaceAll(town, "+", " ") // Try to find the town diff --git a/src/webserver.go b/src/webserver.go index c38fa49a..139017bf 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -654,7 +654,7 @@ func tibiaHousesOverview(c *gin.Context) { town := c.Param("town") // Adding fix for First letter to be upper and rest lower - world = strings.ReplaceAll(TibiaDataStringWorldFormatToTitle(world), "+", " ") + world = TibiaDataStringWorldFormatToTitle(world) town = strings.ReplaceAll(TibiaDataStringWorldFormatToTitle(town), "+", " ") // Check if world exists