mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-06 22:30:56 +03:00
add DirLister interface
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
@@ -2196,7 +2196,7 @@ func TestRecoverer(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStreamJSONArray(t *testing.T) {
|
||||
dataGetter := func(limit, offset int) ([]byte, int, error) {
|
||||
dataGetter := func(_, _ int) ([]byte, int, error) {
|
||||
return nil, 0, nil
|
||||
}
|
||||
rr := httptest.NewRecorder()
|
||||
@@ -2268,12 +2268,14 @@ func TestZipErrors(t *testing.T) {
|
||||
assert.Contains(t, err.Error(), "write error")
|
||||
}
|
||||
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), "/")
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), "/", 0)
|
||||
if assert.Error(t, err) {
|
||||
assert.Contains(t, err.Error(), "write error")
|
||||
}
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), "/", 2000)
|
||||
assert.ErrorIs(t, err, util.ErrRecursionTooDeep)
|
||||
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), path.Join("/", filepath.Base(testDir), "dir"))
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), path.Join("/", filepath.Base(testDir), "dir"), 0)
|
||||
if assert.Error(t, err) {
|
||||
assert.Contains(t, err.Error(), "is outside base dir")
|
||||
}
|
||||
@@ -2282,14 +2284,14 @@ func TestZipErrors(t *testing.T) {
|
||||
err = os.WriteFile(testFilePath, util.GenerateRandomBytes(65535), os.ModePerm)
|
||||
assert.NoError(t, err)
|
||||
err = addZipEntry(wr, connection, path.Join("/", filepath.Base(testDir), filepath.Base(testFilePath)),
|
||||
"/"+filepath.Base(testDir))
|
||||
"/"+filepath.Base(testDir), 0)
|
||||
if assert.Error(t, err) {
|
||||
assert.Contains(t, err.Error(), "write error")
|
||||
}
|
||||
|
||||
connection.User.Permissions["/"] = []string{dataprovider.PermListItems}
|
||||
err = addZipEntry(wr, connection, path.Join("/", filepath.Base(testDir), filepath.Base(testFilePath)),
|
||||
"/"+filepath.Base(testDir))
|
||||
"/"+filepath.Base(testDir), 0)
|
||||
assert.ErrorIs(t, err, os.ErrPermission)
|
||||
|
||||
// creating a virtual folder to a missing path stat is ok but readdir fails
|
||||
@@ -2301,14 +2303,14 @@ func TestZipErrors(t *testing.T) {
|
||||
})
|
||||
connection.User = user
|
||||
wr = zip.NewWriter(bytes.NewBuffer(make([]byte, 0)))
|
||||
err = addZipEntry(wr, connection, user.VirtualFolders[0].VirtualPath, "/")
|
||||
err = addZipEntry(wr, connection, user.VirtualFolders[0].VirtualPath, "/", 0)
|
||||
assert.Error(t, err)
|
||||
|
||||
user.Filters.FilePatterns = append(user.Filters.FilePatterns, sdk.PatternsFilter{
|
||||
Path: "/",
|
||||
DeniedPatterns: []string{"*.zip"},
|
||||
})
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), "/")
|
||||
err = addZipEntry(wr, connection, "/"+filepath.Base(testDir), "/", 0)
|
||||
assert.ErrorIs(t, err, os.ErrPermission)
|
||||
|
||||
err = os.RemoveAll(testDir)
|
||||
|
||||
Reference in New Issue
Block a user