summaryrefslogtreecommitdiff
path: root/data/datasource_test.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2020-04-22 21:30:51 -0400
committerDave Henderson <dhenderson@gmail.com>2020-04-22 21:44:09 -0400
commit55bea115b1b3891bf9f490dfebec79aaa29ccfa4 (patch)
tree584bfe490832ba34c6ca758ceb493ef56315e374 /data/datasource_test.go
parent46ceeee0b95fd12455020fe85bdd03cb5ccdf87c (diff)
Fix bug in file URL parsing
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'data/datasource_test.go')
-rw-r--r--data/datasource_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/data/datasource_test.go b/data/datasource_test.go
index 5d627b40..cdef3945 100644
--- a/data/datasource_test.go
+++ b/data/datasource_test.go
@@ -3,6 +3,8 @@ package data
import (
"fmt"
"net/url"
+ "os"
+ "path/filepath"
"runtime"
"strings"
"testing"
@@ -303,6 +305,15 @@ func TestDefineDatasource(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, "data", s.Alias)
assert.Nil(t, s.URL)
+
+ d = &Data{}
+ _, err = d.DefineDatasource("data", "/otherdir/foo?type=application/x-env")
+ s = d.Sources["data"]
+ assert.NoError(t, err)
+ assert.Equal(t, "data", s.Alias)
+ m, err := s.mimeType("")
+ assert.NoError(t, err)
+ assert.Equal(t, "application/x-env", m)
}
func TestMimeType(t *testing.T) {
@@ -411,3 +422,36 @@ func TestQueryParse(t *testing.T) {
assert.NoError(t, err)
assert.EqualValues(t, expected, u)
}
+
+func TestAbsFileURL(t *testing.T) {
+ cwd, _ := os.Getwd()
+ // make this pass on Windows
+ cwd = filepath.ToSlash(cwd)
+ expected := &url.URL{
+ Scheme: "file",
+ Host: "",
+ Path: "/tmp/foo",
+ }
+ u, err := absFileURL("/tmp/foo")
+ assert.NoError(t, err)
+ assert.EqualValues(t, expected, u)
+
+ expected = &url.URL{
+ Scheme: "file",
+ Host: "",
+ Path: cwd + "/tmp/foo",
+ }
+ u, err = absFileURL("tmp/foo")
+ assert.NoError(t, err)
+ assert.EqualValues(t, expected, u)
+
+ expected = &url.URL{
+ Scheme: "file",
+ Host: "",
+ Path: cwd + "/tmp/foo",
+ RawQuery: "q=p",
+ }
+ u, err = absFileURL("tmp/foo?q=p")
+ assert.NoError(t, err)
+ assert.EqualValues(t, expected, u)
+}