切换存储方式
This commit is contained in:
@@ -3,6 +3,7 @@ package core
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"mime"
|
||||
"net/http"
|
||||
@@ -60,13 +61,16 @@ func (p *ProviderDummy) Branches(ctx context.Context, owner, repo string) (map[s
|
||||
return branches, nil
|
||||
}
|
||||
|
||||
func (p *ProviderDummy) Open(ctx context.Context, _ *http.Client, owner, repo, commit, path string, _ http.Header) (*http.Response, error) {
|
||||
func (p *ProviderDummy) Open(_ context.Context, _ *http.Client, owner, repo, commit, path string, _ http.Header) (*http.Response, error) {
|
||||
open, err := os.Open(filepath.Join(p.BaseDir, owner, repo, commit, path))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, errors.Join(err, os.ErrNotExist)
|
||||
}
|
||||
all, err := io.ReadAll(open)
|
||||
defer open.Close()
|
||||
all, err := io.ReadAll(open)
|
||||
if err != nil {
|
||||
return nil, errors.Join(err, os.ErrNotExist)
|
||||
}
|
||||
recorder := httptest.NewRecorder()
|
||||
recorder.Body = bytes.NewBuffer(all)
|
||||
recorder.Header().Add("Content-Type", mime.TypeByExtension(filepath.Ext(path)))
|
||||
|
||||
@@ -64,7 +64,7 @@ func (t *TestServer) AddFile(path, data string, args ...interface{}) {
|
||||
|
||||
func (t *TestServer) OpenFile(url string) ([]byte, *http.Response, error) {
|
||||
recorder := httptest.NewRecorder()
|
||||
t.server.ServeHTTP(recorder, httptest.NewRequest("GET", url, nil))
|
||||
t.server.ServeHTTP(recorder, httptest.NewRequest(http.MethodGet, url, nil))
|
||||
response := recorder.Result()
|
||||
if response.Body != nil {
|
||||
defer response.Body.Close()
|
||||
|
||||
@@ -15,9 +15,9 @@ func Test_get_simple_html(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "hello world", string(data))
|
||||
|
||||
_, resp, err := server.OpenFile("https://org1.example.com/repo1/404")
|
||||
_, resp, _ := server.OpenFile("https://org1.example.com/repo1/404")
|
||||
assert.NotNil(t, resp)
|
||||
assert.Equal(t, resp.StatusCode, 404)
|
||||
assert.Equal(t, 404, resp.StatusCode)
|
||||
}
|
||||
|
||||
func Test_get_alias(t *testing.T) {
|
||||
@@ -28,13 +28,13 @@ func Test_get_alias(t *testing.T) {
|
||||
alias:
|
||||
- www.example.org
|
||||
`)
|
||||
data, resp, err := server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, resp.StatusCode, 404)
|
||||
_, resp, _ := server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, 404, resp.StatusCode)
|
||||
|
||||
data, resp, err = server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://www.example.org/")
|
||||
data, resp, err = server.OpenFile("https://www.example.org")
|
||||
_, resp, _ = server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://www.example.org/", resp.Header.Get("Location"))
|
||||
data, _, err := server.OpenFile("https://www.example.org")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "hello world", string(data))
|
||||
|
||||
@@ -42,20 +42,20 @@ alias:
|
||||
alias:
|
||||
- zzz.example.top
|
||||
`)
|
||||
data, resp, err = server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://zzz.example.top/")
|
||||
_, resp, _ = server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://zzz.example.top/", resp.Header.Get("Location"))
|
||||
|
||||
data, resp, err = server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, resp.StatusCode, 404)
|
||||
_, resp, _ = server.OpenFile("https://www.example.org")
|
||||
assert.Equal(t, 404, resp.StatusCode)
|
||||
|
||||
data, resp, err = server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://zzz.example.top/")
|
||||
_, resp, _ = server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://zzz.example.top/", resp.Header.Get("Location"))
|
||||
|
||||
data, resp, err = server.OpenFile("https://org1.example.com/repo1/get/some")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://zzz.example.top/get/some")
|
||||
_, resp, _ = server.OpenFile("https://org1.example.com/repo1/get/some")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://zzz.example.top/get/some", resp.Header.Get("Location"))
|
||||
}
|
||||
|
||||
func Test_fail_back(t *testing.T) {
|
||||
|
||||
@@ -32,8 +32,8 @@ proxy:
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "hello data", string(data))
|
||||
|
||||
_, resp, err := server.OpenFile("https://org1.example.com/repo1/abi/data")
|
||||
assert.Equal(t, resp.StatusCode, 404)
|
||||
_, resp, _ := server.OpenFile("https://org1.example.com/repo1/abi/data")
|
||||
assert.Equal(t, 404, resp.StatusCode)
|
||||
}
|
||||
|
||||
func Test_cname_proxy(t *testing.T) {
|
||||
@@ -50,18 +50,18 @@ alias:
|
||||
proxy:
|
||||
/api: %s/test
|
||||
`, hs.URL)
|
||||
_, resp, err := server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://www.example.org/")
|
||||
data, resp, err := server.OpenFile("https://www.example.org")
|
||||
_, resp, _ := server.OpenFile("https://org1.example.com/repo1/")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://www.example.org/", resp.Header.Get("Location"))
|
||||
data, _, err := server.OpenFile("https://www.example.org")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "hello world", string(data))
|
||||
|
||||
_, resp, err = server.OpenFile("https://org1.example.com/repo1/api")
|
||||
assert.Equal(t, resp.StatusCode, 302)
|
||||
assert.Equal(t, resp.Header.Get("Location"), "https://www.example.org/api")
|
||||
_, resp, _ = server.OpenFile("https://org1.example.com/repo1/api")
|
||||
assert.Equal(t, 302, resp.StatusCode)
|
||||
assert.Equal(t, "https://www.example.org/api", resp.Header.Get("Location"))
|
||||
|
||||
data, resp, err = server.OpenFile("https://www.example.org/api")
|
||||
data, _, err = server.OpenFile("https://www.example.org/api")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "hello proxy", string(data))
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"gopkg.d7z.net/gitea-pages/tests/core"
|
||||
|
||||
_ "gopkg.d7z.net/gitea-pages/pkg/renders"
|
||||
)
|
||||
|
||||
func Test_get_render(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user