package gemini import ( "fmt" "testing" ) func TestExtractRedirectTargetFullURL(t *testing.T) { t.Parallel() currentURL, _ := ParseURL("gemini://smol.gr", "") input := "redirect: 31 gemini://target.gr" result, err := extractRedirectTarget(*currentURL, input) if err != nil || (result.String() != "gemini://target.gr:1965") { t.Errorf("fail: %s", result) } } func TestExtractRedirectTargetRelativeURL(t *testing.T) { t.Parallel() currentURL, _ := ParseURL("gemini://smol.gr", "") input := "redirect: 31 /a/b" result, err := extractRedirectTarget(*currentURL, input) if err != nil || (result.String() != "gemini://smol.gr:1965/a/b") { t.Errorf("fail: %s", result) } } func TestExtractRedirectTargetRelativeURL2(t *testing.T) { t.Parallel() currentURL, _ := ParseURL("gemini://nox.im:1965", "") input := "redirect: 31 ./" result, err := extractRedirectTarget(*currentURL, input) if err != nil || (result.String() != "gemini://nox.im:1965/") { t.Errorf("fail: %s", result) } } func TestExtractRedirectTargetWrong(t *testing.T) { t.Parallel() currentURL, _ := ParseURL("gemini://smol.gr", "") input := "redirect: 31 fsdsdf" result, err := extractRedirectTarget(*currentURL, input) fmt.Println(err) if result != nil || err == nil { t.Errorf("fail: result should be nil, err is %s", err) } }