You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ntool/nfs/util_test.go

60 lines
1.6 KiB
Go

1 year ago
package nfs_test
import (
"bytes"
"git.noahlan.cn/noahlan/ntool/nfs"
"git.noahlan.cn/noahlan/ntool/ntest/assert"
"testing"
)
func TestMimeType(t *testing.T) {
assert.Eq(t, "", nfs.MimeType(""))
assert.Eq(t, "", nfs.MimeType("not-exist"))
assert.Eq(t, "text/plain; charset=utf-8", nfs.MimeType("testdata/mimetext.txt"))
buf := new(bytes.Buffer)
buf.Write([]byte("\xFF\xD8\xFF"))
assert.Eq(t, "image/jpeg", nfs.ReaderMimeType(buf))
buf.Reset()
buf.Write([]byte("text"))
assert.Eq(t, "text/plain; charset=utf-8", nfs.ReaderMimeType(buf))
buf.Reset()
buf.Write([]byte(""))
assert.Eq(t, "", nfs.ReaderMimeType(buf))
buf.Reset()
assert.False(t, nfs.IsImageFile("testdata/test.txt"))
assert.False(t, nfs.IsImageFile("testdata/not-exists"))
}
func TestTempDir(t *testing.T) {
dir, err := nfs.TempDir("testdata", "temp.*")
assert.NoErr(t, err)
assert.True(t, nfs.IsDir(dir))
assert.NoErr(t, nfs.Remove(dir))
}
func TestSplitPath(t *testing.T) {
dir, file := nfs.SplitPath("/path/to/dir/some.txt")
assert.Eq(t, "/path/to/dir/", dir)
assert.Eq(t, "some.txt", file)
}
func TestToAbsPath(t *testing.T) {
assert.Eq(t, "", nfs.ToAbsPath(""))
assert.Eq(t, "/path/to/dir/", nfs.ToAbsPath("/path/to/dir/"))
assert.Neq(t, "~/path/to/dir", nfs.ToAbsPath("~/path/to/dir"))
assert.Neq(t, ".", nfs.ToAbsPath("."))
assert.Neq(t, "..", nfs.ToAbsPath(".."))
assert.Neq(t, "./", nfs.ToAbsPath("./"))
assert.Neq(t, "../", nfs.ToAbsPath("../"))
}
func TestSlashPath(t *testing.T) {
assert.Eq(t, "/path/to/dir", nfs.SlashPath("/path/to/dir"))
assert.Eq(t, "/path/to/dir", nfs.UnixPath("/path/to/dir"))
assert.Eq(t, "/path/to/dir", nfs.UnixPath("\\path\\to\\dir"))
}