Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/validation/tibia.go
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,9 @@ 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
for _, t := range val.Towns {
if strings.EqualFold(t, town) {
Expand Down
103 changes: 103 additions & 0 deletions src/validation/tibia_test.go
Original file line number Diff line number Diff line change
@@ -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)
}
})
}
}
2 changes: 1 addition & 1 deletion src/webserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,7 @@ func tibiaHousesOverview(c *gin.Context) {

// Adding fix for First letter to be upper and rest lower
world = TibiaDataStringWorldFormatToTitle(world)
town = TibiaDataStringWorldFormatToTitle(town)
town = strings.ReplaceAll(TibiaDataStringWorldFormatToTitle(town), "+", " ")

// Check if world exists
exists, err := validation.WorldExists(world)
Expand Down