From 0507ad445f03e7c1e1abf8899885a32a5902a578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marius=20Andr=C3=A9=20Elsfjordstrand=20Beck?= Date: Mon, 13 Jan 2025 13:04:37 +0100 Subject: [PATCH] test: add tests for decoded port --- url/parser_test.go | 22 ++++++++++++++++++++++ url/url_test.go | 21 +++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/url/parser_test.go b/url/parser_test.go index 26a631a..7a8475a 100644 --- a/url/parser_test.go +++ b/url/parser_test.go @@ -211,3 +211,25 @@ func BenchmarkIssue8(b *testing.B) { }) } } + +func TestDecodedPort(t *testing.T) { + u, err := Parse("http://example.com:8080") + if err != nil { + t.Errorf("Parse() error = '%v'", err) + return + } + + if u.decodedPort != 8080 { + t.Errorf("decodedPort got = '%v', want '%v'", u.decodedPort, 8080) + } + + relative, err := ParseRef(u.String(), "/") + if err != nil { + t.Errorf("ParseRef() error = '%v'", err) + return + } + + if u.decodedPort != relative.decodedPort { + t.Errorf("decodedPort got = '%v', want '%v'", relative.decodedPort, u.decodedPort) + } +} diff --git a/url/url_test.go b/url/url_test.go index ff9625b..e59f42e 100644 --- a/url/url_test.go +++ b/url/url_test.go @@ -460,3 +460,24 @@ func TestUrl_Getters(t *testing.T) { }) } } + +// Test that DecodedPort returns the correct port number +func Test_DecodedPort(t *testing.T) { + u, _ := Parse("http://example.com:8080") + + u.SetPort("8081") + if u.DecodedPort() != 8081 { + t.Errorf("DecodedPort() = %v, want %v", u.DecodedPort(), 8081) + } + + u.SetPort("") + + // Determine default port for scheme + defaultPortString := defaultSpecialSchemes[u.Scheme()] + defaultPort, _ := strconv.Atoi(defaultPortString) + + // DecodedPort() should return 80 by default + if u.DecodedPort() != defaultPort { + t.Errorf("DecodedPort() = %v, want %v", u.DecodedPort(), defaultPort) + } +}