mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-07-16 08:15:51 +00:00
130 lines
2.5 KiB
Go
130 lines
2.5 KiB
Go
|
package fsmgr
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
seafileConfPath = "/tmp/conf"
|
||
|
seafileDataDir = "/tmp/conf/seafile-data"
|
||
|
repoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694"
|
||
|
blkID = "0401fc662e3bc87a41f299a907c056aaf8322a26"
|
||
|
subDirID = "0401fc662e3bc87a41f299a907c056aaf8322a27"
|
||
|
)
|
||
|
|
||
|
var dirID string
|
||
|
var fileID string
|
||
|
|
||
|
func createFile() error {
|
||
|
var blkIDs []string
|
||
|
for i := 0; i < 2; i++ {
|
||
|
blkshal := blkID
|
||
|
blkIDs = append(blkIDs, blkshal)
|
||
|
}
|
||
|
|
||
|
seafile, err := NewSeafile(1, 100, blkIDs)
|
||
|
|
||
|
err = SaveSeafile(repoID, seafile)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
fileID = seafile.FileID
|
||
|
|
||
|
var entries []*SeafDirent
|
||
|
for i := 0; i < 2; i++ {
|
||
|
dirent := SeafDirent{ID: subDirID, Name: "/", Mode: 0x4000}
|
||
|
entries = append(entries, &dirent)
|
||
|
}
|
||
|
seafdir, err := NewSeafdir(1, entries)
|
||
|
if err != nil {
|
||
|
err := fmt.Errorf("failed to new seafdir: %v", err)
|
||
|
return err
|
||
|
}
|
||
|
err = SaveSeafdir(repoID, seafdir)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
dirID = seafdir.DirID
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func delFile() error {
|
||
|
err := os.RemoveAll(seafileConfPath)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func TestMain(m *testing.M) {
|
||
|
Init(seafileConfPath, seafileDataDir)
|
||
|
err := createFile()
|
||
|
if err != nil {
|
||
|
fmt.Printf("Failed to create test file : %v.\n", err)
|
||
|
os.Exit(1)
|
||
|
}
|
||
|
code := m.Run()
|
||
|
err = delFile()
|
||
|
if err != nil {
|
||
|
fmt.Printf("Failed to remove test file : %v\n", err)
|
||
|
}
|
||
|
os.Exit(code)
|
||
|
}
|
||
|
|
||
|
func TestGetSeafile(t *testing.T) {
|
||
|
exists, err := Exists(repoID, fileID)
|
||
|
if !exists {
|
||
|
t.Errorf("seafile is not exists : %v.\n", err)
|
||
|
}
|
||
|
seafile, err := GetSeafile(repoID, fileID)
|
||
|
if err != nil || seafile == nil {
|
||
|
t.Errorf("Failed to get seafile : %v.\n", err)
|
||
|
t.FailNow()
|
||
|
}
|
||
|
|
||
|
for _, v := range seafile.BlkIDs {
|
||
|
if v != blkID {
|
||
|
t.Errorf("Wrong file content.\n")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestGetSeafdir(t *testing.T) {
|
||
|
exists, err := Exists(repoID, dirID)
|
||
|
if !exists {
|
||
|
t.Errorf("seafile is not exists : %v.\n", err)
|
||
|
}
|
||
|
seafdir, err := GetSeafdir(repoID, dirID)
|
||
|
if err != nil || seafdir == nil {
|
||
|
t.Errorf("Failed to get seafdir : %v.\n", err)
|
||
|
t.FailNow()
|
||
|
}
|
||
|
|
||
|
for _, v := range seafdir.Entries {
|
||
|
if v.ID != subDirID {
|
||
|
t.Errorf("Wrong file content.\n")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func TestGetSeafdirByPath(t *testing.T) {
|
||
|
seafdir, err := GetSeafdirByPath(repoID, dirID, "/")
|
||
|
if err != nil || seafdir == nil {
|
||
|
t.Errorf("Failed to get seafdir : %v.\n", err)
|
||
|
t.FailNow()
|
||
|
}
|
||
|
|
||
|
for _, v := range seafdir.Entries {
|
||
|
if v.ID != subDirID {
|
||
|
t.Errorf("Wrong file content.\n")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|