Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
c904e6c4
Commit
c904e6c4
authored
Nov 17, 2014
by
Matt Bell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commands: Added File tests
parent
bde01561
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
193 additions
and
0 deletions
+193
-0
commands/file_test.go
commands/file_test.go
+193
-0
No files found.
commands/file_test.go
0 → 100644
View file @
c904e6c4
package
commands
import
(
"io"
"mime/multipart"
"strings"
"testing"
)
func
TestSliceFiles
(
t
*
testing
.
T
)
{
name
:=
"testname"
files
:=
[]
File
{
&
ReaderFile
{
"file.txt"
,
strings
.
NewReader
(
"Some text!
\n
"
)},
&
ReaderFile
{
"beep.txt"
,
strings
.
NewReader
(
"beep"
)},
&
ReaderFile
{
"boop.txt"
,
strings
.
NewReader
(
"boop"
)},
}
buf
:=
make
([]
byte
,
20
)
sf
:=
&
SliceFile
{
name
,
files
}
if
!
sf
.
IsDirectory
()
{
t
.
Error
(
"SliceFile should always be a directory"
)
}
if
n
,
err
:=
sf
.
Read
(
buf
);
n
>
0
||
err
!=
ErrNotReader
{
t
.
Error
(
"Shouldn't be able to call `Read` on a SliceFile"
)
}
if
err
:=
sf
.
Close
();
err
!=
ErrNotReader
{
t
.
Error
(
"Shouldn't be able to call `Close` on a SliceFile"
)
}
file
,
err
:=
sf
.
NextFile
()
if
file
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected a file and nil error"
)
}
read
,
err
:=
file
.
Read
(
buf
)
if
read
!=
11
||
err
!=
nil
{
t
.
Error
(
"NextFile got a file in the wrong order"
)
}
file
,
err
=
sf
.
NextFile
()
if
file
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected a file and nil error"
)
}
file
,
err
=
sf
.
NextFile
()
if
file
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected a file and nil error"
)
}
file
,
err
=
sf
.
NextFile
()
if
file
!=
nil
||
err
!=
io
.
EOF
{
t
.
Error
(
"Expected a nil file and io.EOF"
)
}
}
func
TestReaderFiles
(
t
*
testing
.
T
)
{
message
:=
"beep boop"
rf
:=
&
ReaderFile
{
"file.txt"
,
strings
.
NewReader
(
message
)}
buf
:=
make
([]
byte
,
len
(
message
))
if
rf
.
IsDirectory
()
{
t
.
Error
(
"ReaderFile should never be a directory"
)
}
file
,
err
:=
rf
.
NextFile
()
if
file
!=
nil
||
err
!=
ErrNotDirectory
{
t
.
Error
(
"Expected a nil file and ErrNotDirectory"
)
}
if
n
,
err
:=
rf
.
Read
(
buf
);
n
==
0
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read"
)
}
if
err
:=
rf
.
Close
();
err
!=
nil
{
t
.
Error
(
"Should be able to close"
)
}
if
n
,
err
:=
rf
.
Read
(
buf
);
n
!=
0
||
err
!=
io
.
EOF
{
t
.
Error
(
"Expected EOF when reading after close"
)
}
}
func
TestMultipartFiles
(
t
*
testing
.
T
)
{
data
:=
`
--Boundary!
Content-Type: text/plain
Content-Disposition: file; filename="name"
Some-Header: beep
beep
--Boundary!
Content-Type: multipart/mixed; boundary=OtherBoundary
Content-Disposition: file; filename="dir"
--OtherBoundary
Content-Type: text/plain
Content-Disposition: file; filename="some/file/path"
test
--OtherBoundary
Content-Type: text/plain
boop
--OtherBoundary
Content-Type: text/plain
bloop
--OtherBoundary--
--Boundary!--
`
reader
:=
strings
.
NewReader
(
data
)
mpReader
:=
multipart
.
NewReader
(
reader
,
"Boundary!"
)
buf
:=
make
([]
byte
,
20
)
// test properties of a file created from the first part
part
,
err
:=
mpReader
.
NextPart
()
if
part
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected non-nil part, nil error"
)
}
mpf
,
err
:=
NewFileFromPart
(
part
)
if
mpf
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected non-nil MultipartFile, nil error"
)
}
if
mpf
.
IsDirectory
()
{
t
.
Error
(
"Expected file to not be a directory"
)
}
if
mpf
.
FileName
()
!=
"name"
{
t
.
Error
(
"Expected filename to be
\"
name
\"
"
)
}
if
file
,
err
:=
mpf
.
NextFile
();
file
!=
nil
||
err
!=
ErrNotDirectory
{
t
.
Error
(
"Expected a nil file and ErrNotDirectory"
)
}
if
n
,
err
:=
mpf
.
Read
(
buf
);
n
!=
4
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read 4 bytes"
)
}
if
err
:=
mpf
.
Close
();
err
!=
nil
{
t
.
Error
(
"Expected to be able to close file"
)
}
// test properties of file created from second part (directory)
part
,
err
=
mpReader
.
NextPart
()
if
part
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected non-nil part, nil error"
)
}
mpf
,
err
=
NewFileFromPart
(
part
)
if
mpf
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected non-nil MultipartFile, nil error"
)
}
if
!
mpf
.
IsDirectory
()
{
t
.
Error
(
"Expected file to be a directory"
)
}
if
mpf
.
FileName
()
!=
"dir"
{
t
.
Error
(
"Expected filename to be
\"
dir
\"
"
)
}
if
n
,
err
:=
mpf
.
Read
(
buf
);
n
>
0
||
err
!=
ErrNotReader
{
t
.
Error
(
"Shouldn't be able to call `Read` on a directory"
)
}
if
err
:=
mpf
.
Close
();
err
!=
ErrNotReader
{
t
.
Error
(
"Shouldn't be able to call `Close` on a directory"
)
}
// test properties of first child file
child
,
err
:=
mpf
.
NextFile
()
if
child
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read a child file"
)
}
if
child
.
IsDirectory
()
{
t
.
Error
(
"Expected file to not be a directory"
)
}
if
child
.
FileName
()
!=
"some/file/path"
{
t
.
Error
(
"Expected filename to be
\"
some/file/path
\"
"
)
}
// test processing files out of order
child
,
err
=
mpf
.
NextFile
()
if
child
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read a child file"
)
}
child2
,
err
:=
mpf
.
NextFile
()
if
child
==
nil
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read a child file"
)
}
if
n
,
err
:=
child2
.
Read
(
buf
);
n
!=
5
||
err
!=
nil
{
t
.
Error
(
"Expected to be able to read"
)
}
if
n
,
err
:=
child
.
Read
(
buf
);
n
!=
0
||
err
==
nil
{
t
.
Error
(
"Expected to not be able to read after advancing NextFile() past this file"
)
}
// make sure the end is handled properly
child
,
err
=
mpf
.
NextFile
()
if
child
!=
nil
||
err
==
nil
{
t
.
Error
(
"Expected NextFile to return (nil, EOF)"
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment