aboutsummaryrefslogtreecommitdiff
path: root/hotline/transfer_test.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-20 20:14:32 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-20 20:14:32 -0700
commit7cd900d61edbd6d322db3cecb913adf574389320 (patch)
tree7da8ac3658fa4b6204330f1f9c980428b6a6fdc5 /hotline/transfer_test.go
parentbb1e98842e35b3affaf94971e78c86f8b9547928 (diff)
Add initial support for resource and info forks
Diffstat (limited to 'hotline/transfer_test.go')
-rw-r--r--hotline/transfer_test.go54
1 files changed, 48 insertions, 6 deletions
diff --git a/hotline/transfer_test.go b/hotline/transfer_test.go
index 255d914..fb7d39c 100644
--- a/hotline/transfer_test.go
+++ b/hotline/transfer_test.go
@@ -115,20 +115,24 @@ func Test_receiveFile(t *testing.T) {
wantErr assert.ErrorAssertionFunc
}{
{
- name: "transfers file",
+ name: "transfers file when there is no resource fork",
args: args{
conn: func() io.Reader {
testFile := flattenedFileObject{
- FlatFileHeader: NewFlatFileHeader(),
- FlatFileInformationForkHeader: FlatFileInformationForkHeader{},
+ FlatFileHeader: FlatFileHeader{
+ Format: [4]byte{0x46, 0x49, 0x4c, 0x50}, // "FILP"
+ Version: [2]byte{0, 1},
+ RSVD: [16]byte{},
+ ForkCount: [2]byte{0, 2},
+ },
+ FlatFileInformationForkHeader: FlatFileForkHeader{},
FlatFileInformationFork: NewFlatFileInformationFork("testfile.txt", make([]byte, 8), "TEXT", "TEXT"),
- FlatFileDataForkHeader: FlatFileDataForkHeader{
+ FlatFileDataForkHeader: FlatFileForkHeader{
ForkType: [4]byte{0x4d, 0x41, 0x43, 0x52}, // DATA
CompressionType: [4]byte{0, 0, 0, 0},
RSVD: [4]byte{0, 0, 0, 0},
DataSize: [4]byte{0x00, 0x00, 0x00, 0x03},
},
- FileData: nil,
}
fakeFileData := []byte{1, 2, 3}
b := testFile.BinaryMarshal()
@@ -141,12 +145,50 @@ func Test_receiveFile(t *testing.T) {
wantErr: assert.NoError,
},
+ // {
+ // name: "transfers fileWrapper when there is a resource fork",
+ // args: args{
+ // conn: func() io.Reader {
+ // testFile := flattenedFileObject{
+ // FlatFileHeader: FlatFileHeader{
+ // Format: [4]byte{0x46, 0x49, 0x4c, 0x50}, // "FILP"
+ // Version: [2]byte{0, 1},
+ // RSVD: [16]byte{},
+ // ForkCount: [2]byte{0, 3},
+ // },
+ // FlatFileInformationForkHeader: FlatFileForkHeader{},
+ // FlatFileInformationFork: NewFlatFileInformationFork("testfile.txt", make([]byte, 8), "TEXT", "TEXT"),
+ // FlatFileDataForkHeader: FlatFileForkHeader{
+ // ForkType: [4]byte{0x44, 0x41, 0x54, 0x41}, // DATA
+ // CompressionType: [4]byte{0, 0, 0, 0},
+ // RSVD: [4]byte{0, 0, 0, 0},
+ // DataSize: [4]byte{0x00, 0x00, 0x00, 0x03},
+ // },
+ // FlatFileResForkHeader: FlatFileForkHeader{
+ // ForkType: [4]byte{0x4d, 0x41, 0x43, 0x52}, // MACR
+ // CompressionType: [4]byte{0, 0, 0, 0},
+ // RSVD: [4]byte{0, 0, 0, 0},
+ // DataSize: [4]byte{0x00, 0x00, 0x00, 0x03},
+ // },
+ // }
+ // fakeFileData := []byte{1, 2, 3}
+ // b := testFile.BinaryMarshal()
+ // b = append(b, fakeFileData...)
+ // return bytes.NewReader(b)
+ // }(),
+ // },
+ // wantTargetFile: []byte{1, 2, 3},
+ // wantResForkFile: []byte(nil),
+ //
+ // wantErr: assert.NoError,
+ // },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
targetFile := &bytes.Buffer{}
resForkFile := &bytes.Buffer{}
- err := receiveFile(tt.args.conn, targetFile, resForkFile)
+ infoForkFile := &bytes.Buffer{}
+ err := receiveFile(tt.args.conn, targetFile, resForkFile, infoForkFile)
if !tt.wantErr(t, err, fmt.Sprintf("receiveFile(%v, %v, %v)", tt.args.conn, targetFile, resForkFile)) {
return
}