@@ -88,24 +88,27 @@ anotherfile
88
88
89
89
reader := strings .NewReader (data )
90
90
mpReader := multipart .NewReader (reader , "Boundary!" )
91
+ dir , err := NewFileFromPartReader (mpReader , multipartFormdataType )
92
+ if err != nil {
93
+ t .Fatal (err )
94
+ }
95
+
91
96
buf := make ([]byte , 20 )
92
97
98
+ it := dir .Entries ()
99
+
93
100
// test properties of a file created from the first part
94
- part , err := mpReader .NextPart ()
95
- if part == nil || err != nil {
96
- t .Fatal ("Expected non-nil part, nil error" )
97
- }
98
- mpname , mpf , err := newFileFromPart ("" , part , & peekReader {r : mpReader })
99
- if mpf == nil || err != nil {
100
- t .Fatal ("Expected non-nil multipartFile, nil error" )
101
+ if ! it .Next () {
102
+ t .Fatal ("expected an entry:" , it .Err ())
101
103
}
102
- mf , ok := mpf .(File )
104
+ mf , ok := it . Node () .(File )
103
105
if ! ok {
104
- t .Fatal ("Expected file to not be a directory" )
106
+ t .Fatal ("Expected file to not be a directory" , it . Node () )
105
107
}
106
- if mpname != "name" {
108
+ if it . Name () != "name" {
107
109
t .Fatal ("Expected filename to be \" name\" " )
108
110
}
111
+
109
112
if n , err := mf .Read (buf ); n != 4 || ! (err == io .EOF || err == nil ) {
110
113
t .Fatal ("Expected to be able to read 4 bytes" , n , err )
111
114
}
@@ -114,62 +117,49 @@ anotherfile
114
117
}
115
118
116
119
// test properties of file created from second part (directory)
117
- part , err = mpReader .NextPart ()
118
- if part == nil || err != nil {
119
- t .Fatal ("Expected non-nil part, nil error" )
120
- }
121
- mpname , mpf , err = newFileFromPart ("" , part , & peekReader {r : mpReader })
122
- if mpf == nil || err != nil {
123
- t .Fatal ("Expected non-nil multipartFile, nil error" )
120
+ if ! it .Next () {
121
+ t .Fatal ("expected an entry:" , it .Err ())
124
122
}
125
- md , ok := mpf .(Directory )
123
+ md , ok := it . Node () .(Directory )
126
124
if ! ok {
127
125
t .Fatal ("Expected file to be a directory" )
128
126
}
129
- if mpname != "dir" {
127
+ if it . Name () != "dir" {
130
128
t .Fatal ("Expected filename to be \" dir\" " )
131
129
}
132
130
if err := md .Close (); err != nil {
133
131
t .Fatal ("Should be able to call `Close` on a directory" )
134
132
}
135
133
134
+ it = md .Entries ()
135
+
136
136
// test properties of file created from third part (nested file)
137
- part , err = mpReader .NextPart ()
138
- if part == nil || err != nil {
139
- t .Fatal ("Expected non-nil part, nil error" )
140
- }
141
- mpname , mpf , err = newFileFromPart ("dir/" , part , & peekReader {r : mpReader })
142
- if mpf == nil || err != nil {
143
- t .Fatal ("Expected non-nil multipartFile, nil error" )
137
+ if ! it .Next () {
138
+ t .Fatal ("expected an entry:" , it .Err ())
144
139
}
145
- mf , ok = mpf .(File )
140
+ mf , ok = it . Node () .(File )
146
141
if ! ok {
147
142
t .Fatal ("Expected file to not be a directory" )
148
143
}
149
- if mpname != "nested" {
150
- t .Fatalf ("Expected filename to be \" nested\" , got %s" , mpname )
144
+ if it . Name () != "nested" {
145
+ t .Fatalf ("Expected filename to be \" nested\" , got %s" , it . Name () )
151
146
}
152
147
if n , err := mf .Read (buf ); n != 12 || ! (err == nil || err == io .EOF ) {
153
148
t .Fatalf ("expected to be able to read 12 bytes from file: %s (got %d)" , err , n )
154
149
}
155
- if err := mpf .Close (); err != nil {
150
+ if err := mf .Close (); err != nil {
156
151
t .Fatalf ("should be able to close file: %s" , err )
157
152
}
158
153
159
154
// test properties of symlink created from fourth part (symlink)
160
- part , err = mpReader .NextPart ()
161
- if part == nil || err != nil {
162
- t .Fatal ("Expected non-nil part, nil error" )
163
- }
164
- mpname , mpf , err = newFileFromPart ("dir/" , part , & peekReader {r : mpReader })
165
- if mpf == nil || err != nil {
166
- t .Fatal ("Expected non-nil multipartFile, nil error" )
155
+ if ! it .Next () {
156
+ t .Fatal ("expected an entry:" , it .Err ())
167
157
}
168
- ms , ok := mpf .(* Symlink )
158
+ ms , ok := it . Node () .(* Symlink )
169
159
if ! ok {
170
160
t .Fatal ("Expected file to not be a directory" )
171
161
}
172
- if mpname != "simlynk" {
162
+ if it . Name () != "simlynk" {
173
163
t .Fatal ("Expected filename to be \" dir/simlynk\" " )
174
164
}
175
165
if ms .Target != "anotherfile" {
0 commit comments