From e3261c8f8a7104020c00f2445d9bd2da7686aabc Mon Sep 17 00:00:00 2001 From: Stefano Gabryel Date: Mon, 8 Jul 2019 08:30:48 +0200 Subject: [PATCH] Fixing dictionary detection for absolute paths --- pkg/dictionary/dictionary.go | 4 +--- pkg/dictionary/dictionary_integration_test.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/pkg/dictionary/dictionary.go b/pkg/dictionary/dictionary.go index b786bbe..0a5b63a 100644 --- a/pkg/dictionary/dictionary.go +++ b/pkg/dictionary/dictionary.go @@ -4,7 +4,6 @@ import ( "bufio" "io" "net/http" - "net/url" "os" "github.com/pkg/errors" @@ -13,8 +12,7 @@ import ( const commentPrefix = "#" func NewDictionaryFrom(path string, doer Doer) ([]string, error) { - _, err := url.ParseRequestURI(path) - if err != nil { + if _, err := os.Stat(path); !os.IsNotExist(err) { return newDictionaryFromLocalFile(path) } diff --git a/pkg/dictionary/dictionary_integration_test.go b/pkg/dictionary/dictionary_integration_test.go index 3380c3d..ea2f7b8 100644 --- a/pkg/dictionary/dictionary_integration_test.go +++ b/pkg/dictionary/dictionary_integration_test.go @@ -3,6 +3,7 @@ package dictionary_test import ( "net/http" "net/http/httptest" + "path/filepath" "testing" "time" @@ -22,6 +23,21 @@ func TestDictionaryFromFile(t *testing.T) { assert.Equal(t, expectedValue, entries) } +func TestDictionaryFromAbsolutePath(t *testing.T) { + path, err := filepath.Abs("testdata/dict.txt") + assert.NoError(t, err) + + entries, err := dictionary.NewDictionaryFrom(path, &http.Client{}) + assert.NoError(t, err) + + expectedValue := []string{ + "home", + "home/index.php", + "blabla", + } + assert.Equal(t, expectedValue, entries) +} + func TestDictionaryFromFileWithInvalidPath(t *testing.T) { t.Parallel() @@ -37,6 +53,7 @@ func TestNewDictionaryFromRemoteFile(t *testing.T) { /about /contacts something +potato ` w.WriteHeader(http.StatusOK) _, _ = w.Write([]byte(dict)) @@ -52,6 +69,7 @@ something "/about", "/contacts", "something", + "potato", } assert.Equal(t, expectedValue, entries) }