| package sftp |
| |
| import ( |
| "os" |
| |
| "github.com/stretchr/testify/assert" |
| |
| "testing" |
| ) |
| |
| func TestRequestPflags(t *testing.T) { |
| pflags := newPflags(ssh_FXF_READ | ssh_FXF_WRITE | ssh_FXF_APPEND) |
| assert.True(t, pflags.Read) |
| assert.True(t, pflags.Write) |
| assert.True(t, pflags.Append) |
| assert.False(t, pflags.Creat) |
| assert.False(t, pflags.Trunc) |
| assert.False(t, pflags.Excl) |
| } |
| |
| func TestRequestAflags(t *testing.T) { |
| aflags := newAflags(ssh_FILEXFER_ATTR_SIZE | ssh_FILEXFER_ATTR_UIDGID) |
| assert.True(t, aflags.Size) |
| assert.True(t, aflags.UidGid) |
| assert.False(t, aflags.Acmodtime) |
| assert.False(t, aflags.Permissions) |
| } |
| |
| func TestRequestAttributes(t *testing.T) { |
| // UID/GID |
| fa := fileattrs{UID: 1, GID: 2} |
| fl := uint32(ssh_FILEXFER_ATTR_UIDGID) |
| at := []byte{} |
| at = marshalUint32(at, 1) |
| at = marshalUint32(at, 2) |
| test_fs, _ := getFileStat(fl, at) |
| assert.Equal(t, fa, fileattrs(*test_fs)) |
| // Size and Mode |
| fa = fileattrs{Mode: 700, Size: 99} |
| fl = uint32(ssh_FILEXFER_ATTR_SIZE | ssh_FILEXFER_ATTR_PERMISSIONS) |
| at = []byte{} |
| at = marshalUint64(at, 99) |
| at = marshalUint32(at, 700) |
| test_fs, _ = getFileStat(fl, at) |
| test_fa := fileattrs(*test_fs) |
| assert.Equal(t, fa, test_fa) |
| // FileMode |
| assert.True(t, test_fa.FileMode().IsRegular()) |
| assert.False(t, test_fa.FileMode().IsDir()) |
| assert.Equal(t, test_fa.FileMode().Perm(), os.FileMode(700).Perm()) |
| } |