mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-06-21 12:48:58 +00:00
133 lines
2.5 KiB
Go
133 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)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
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")
|
|
}
|
|
}
|
|
|
|
}
|