From 3b94217fb742884f6560ea50f1e750a171e9e380 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sat, 9 Sep 2023 14:18:39 -0700 Subject: Make sure icon URLs are always absolute Regression introduced in #1907 --- internal/reader/icon/finder_test.go | 51 +++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) (limited to 'internal/reader/icon/finder_test.go') diff --git a/internal/reader/icon/finder_test.go b/internal/reader/icon/finder_test.go index 93769194..7bc8c3e8 100644 --- a/internal/reader/icon/finder_test.go +++ b/internal/reader/icon/finder_test.go @@ -92,12 +92,59 @@ func TestParseDocumentWithWhitespaceIconURL(t *testing.T) { /static/img/favicon.ico ">` - iconURL, err := parseDocument("http://www.example.org/", strings.NewReader(html)) + iconURL, err := findIconURLFromHTMLDocument(strings.NewReader(html)) if err != nil { t.Fatal(err) } - if iconURL != "http://www.example.org/static/img/favicon.ico" { + if iconURL != "/static/img/favicon.ico" { + t.Errorf(`Invalid icon URL, got %q`, iconURL) + } +} + +func TestGenerateIconURL(t *testing.T) { + iconURL, err := generateIconURL("https://example.org/", "/favicon.png") + if err != nil { + t.Fatal(err) + } + + if iconURL != "https://example.org/favicon.png" { + t.Errorf(`Invalid icon URL, got %q`, iconURL) + } + + iconURL, err = generateIconURL("https://example.org/", "img/favicon.png") + if err != nil { + t.Fatal(err) + } + + if iconURL != "https://example.org/img/favicon.png" { + t.Errorf(`Invalid icon URL, got %q`, iconURL) + } + + iconURL, err = generateIconURL("https://example.org/", "https://example.org/img/favicon.png") + if err != nil { + t.Fatal(err) + } + + if iconURL != "https://example.org/img/favicon.png" { + t.Errorf(`Invalid icon URL, got %q`, iconURL) + } + + iconURL, err = generateIconURL("https://example.org/", "//example.org/img/favicon.png") + if err != nil { + t.Fatal(err) + } + + if iconURL != "https://example.org/img/favicon.png" { + t.Errorf(`Invalid icon URL, got %q`, iconURL) + } + + iconURL, err = generateIconURL("https://example.org/", " ") + if err != nil { + t.Fatal(err) + } + + if iconURL != "https://example.org/favicon.ico" { t.Errorf(`Invalid icon URL, got %q`, iconURL) } } -- cgit v1.2.3