parent
8ef4d4c425
commit
10b35029f5
@ -0,0 +1,74 @@ |
|||||||
|
package server |
||||||
|
|
||||||
|
import ( |
||||||
|
"errors" |
||||||
|
"net/http" |
||||||
|
"testing" |
||||||
|
|
||||||
|
"github.com/halverneus/static-file-server/config" |
||||||
|
"github.com/halverneus/static-file-server/handle" |
||||||
|
) |
||||||
|
|
||||||
|
func TestRun(t *testing.T) { |
||||||
|
listenerError := errors.New("listener") |
||||||
|
selectListener = func() handle.ListenerFunc { |
||||||
|
return func(string, http.HandlerFunc) error { |
||||||
|
return listenerError |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if err := Run(); listenerError != err { |
||||||
|
t.Errorf("Expected %v but got %v", listenerError, err) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func TestHandlerSelector(t *testing.T) { |
||||||
|
// This test only exercises function branches.
|
||||||
|
testFolder := "/web" |
||||||
|
testPrefix := "/url/prefix" |
||||||
|
|
||||||
|
testCases := []struct { |
||||||
|
name string |
||||||
|
folder string |
||||||
|
prefix string |
||||||
|
listing bool |
||||||
|
}{ |
||||||
|
{"Basic handler", testFolder, "", true}, |
||||||
|
{"Prefix handler", testFolder, testPrefix, true}, |
||||||
|
{"Basic and hide listing handler", testFolder, "", false}, |
||||||
|
{"Prefix and hide listing handler", testFolder, testPrefix, false}, |
||||||
|
} |
||||||
|
|
||||||
|
for _, tc := range testCases { |
||||||
|
t.Run(tc.name, func(t *testing.T) { |
||||||
|
config.Get.Folder = tc.folder |
||||||
|
config.Get.URLPrefix = tc.prefix |
||||||
|
config.Get.ShowListing = tc.listing |
||||||
|
|
||||||
|
handlerSelector() |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func TestListenerSelector(t *testing.T) { |
||||||
|
// This test only exercises function branches.
|
||||||
|
testCert := "file.crt" |
||||||
|
testKey := "file.key" |
||||||
|
|
||||||
|
testCases := []struct { |
||||||
|
name string |
||||||
|
cert string |
||||||
|
key string |
||||||
|
}{ |
||||||
|
{"HTTP", "", ""}, |
||||||
|
{"HTTPS", testCert, testKey}, |
||||||
|
} |
||||||
|
|
||||||
|
for _, tc := range testCases { |
||||||
|
t.Run(tc.name, func(t *testing.T) { |
||||||
|
config.Get.TLSCert = tc.cert |
||||||
|
config.Get.TLSKey = tc.key |
||||||
|
listenerSelector() |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue