123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // Copyright 2021 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package util
-
- import (
- "net/url"
- "runtime"
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestFileURLToPath(t *testing.T) {
- cases := []struct {
- url string
- expected string
- haserror bool
- windows bool
- }{
- // case 0
- {
- url: "",
- haserror: true,
- },
- // case 1
- {
- url: "http://test.io",
- haserror: true,
- },
- // case 2
- {
- url: "file:///path",
- expected: "/path",
- },
- // case 3
- {
- url: "file:///C:/path",
- expected: "C:/path",
- windows: true,
- },
- }
-
- for n, c := range cases {
- if c.windows && runtime.GOOS != "windows" {
- continue
- }
- u, _ := url.Parse(c.url)
- p, err := FileURLToPath(u)
- if c.haserror {
- assert.Error(t, err, "case %d: should return error", n)
- } else {
- assert.NoError(t, err, "case %d: should not return error", n)
- assert.Equal(t, c.expected, p, "case %d: should be equal", n)
- }
- }
- }
|