1
1
package storage_test
2
2
3
3
import (
4
- "archive/zip"
5
- "bytes"
6
4
"context"
7
- "encoding/xml"
8
5
"errors"
9
6
"fmt"
10
7
"io"
@@ -172,45 +169,6 @@ func TestWalkExtensions(t *testing.T) {
172
169
})
173
170
}
174
171
175
- type file struct {
176
- name string
177
- body []byte
178
- }
179
-
180
- // createVSIX returns the bytes for a VSIX file containing the provided raw
181
- // manifest bytes (if not nil) and an icon.
182
- func createVSIX (t * testing.T , manifestBytes []byte ) []byte {
183
- files := []file {{"icon.png" , []byte ("fake icon" )}}
184
- if manifestBytes != nil {
185
- files = append (files , file {"extension.vsixmanifest" , manifestBytes })
186
- }
187
- buf := bytes .NewBuffer (nil )
188
- zw := zip .NewWriter (buf )
189
- for _ , file := range files {
190
- fw , err := zw .Create (file .name )
191
- require .NoError (t , err )
192
- _ , err = fw .Write ([]byte (file .body ))
193
- require .NoError (t , err )
194
- }
195
- err := zw .Close ()
196
- require .NoError (t , err )
197
- return buf .Bytes ()
198
- }
199
-
200
- // createVSIXFromManifest returns the bytes for a VSIX file containing the
201
- // provided manifest and an icon.
202
- func createVSIXFromManifest (t * testing.T , manifest * storage.VSIXManifest ) []byte {
203
- manifestBytes , err := xml .Marshal (manifest )
204
- require .NoError (t , err )
205
- return createVSIX (t , manifestBytes )
206
- }
207
-
208
- // createVSIXFromExtension returns the bytes for a VSIX file containing the
209
- // manifest for the provided test extension and an icon.
210
- func createVSIXFromExtension (t * testing.T , ext testutil.Extension ) []byte {
211
- return createVSIXFromManifest (t , testutil .ConvertExtensionToManifest (ext , ext .LatestVersion ))
212
- }
213
-
214
172
func TestReadVSIX (t * testing.T ) {
215
173
t .Parallel ()
216
174
@@ -257,7 +215,7 @@ func TestReadVSIX(t *testing.T) {
257
215
handler := test .handler
258
216
if handler == nil {
259
217
handler = func (rw http.ResponseWriter , r * http.Request ) {
260
- vsix := createVSIXFromExtension (t , test .expected )
218
+ vsix := testutil . CreateVSIXFromExtension (t , test .expected )
261
219
_ , err := rw .Write (vsix )
262
220
require .NoError (t , err )
263
221
}
@@ -271,7 +229,7 @@ func TestReadVSIX(t *testing.T) {
271
229
require .Error (t , err )
272
230
require .Regexp (t , test .error , err .Error ())
273
231
} else {
274
- require .Equal (t , createVSIXFromExtension (t , test .expected ), got )
232
+ require .Equal (t , testutil . CreateVSIXFromExtension (t , test .expected ), got )
275
233
}
276
234
})
277
235
}
@@ -299,7 +257,7 @@ func TestReadVSIX(t *testing.T) {
299
257
name : "OK" ,
300
258
expected : testutil .Extensions [0 ],
301
259
source : func (t * testing.T , extdir string ) (string , error ) {
302
- vsix := createVSIXFromExtension (t , testutil .Extensions [0 ])
260
+ vsix := testutil . CreateVSIXFromExtension (t , testutil .Extensions [0 ])
303
261
vsixPath := filepath .Join (extdir , "extension.vsix" )
304
262
return vsixPath , os .WriteFile (vsixPath , vsix , 0o644 )
305
263
},
@@ -341,7 +299,7 @@ func TestReadVSIX(t *testing.T) {
341
299
require .Error (t , err )
342
300
require .True (t , errors .Is (err , test .error ))
343
301
} else {
344
- require .Equal (t , createVSIXFromExtension (t , test .expected ), got )
302
+ require .Equal (t , testutil . CreateVSIXFromExtension (t , test .expected ), got )
345
303
}
346
304
})
347
305
}
@@ -379,27 +337,27 @@ func TestReadVSIXManifest(t *testing.T) {
379
337
{
380
338
name : "MissingManifest" ,
381
339
error : "not found" ,
382
- vsix : createVSIX (t , nil ),
340
+ vsix : testutil . CreateVSIX (t , nil ),
383
341
},
384
342
{
385
343
name : "EmptyManifest" ,
386
344
error : "EOF" ,
387
- vsix : createVSIX (t , []byte ("" )),
345
+ vsix : testutil . CreateVSIX (t , []byte ("" )),
388
346
},
389
347
{
390
348
name : "TextFileManifest" ,
391
349
error : "EOF" ,
392
- vsix : createVSIX (t , []byte ("just some random text" )),
350
+ vsix : testutil . CreateVSIX (t , []byte ("just some random text" )),
393
351
},
394
352
{
395
353
name : "ManifestSyntaxError" ,
396
354
error : "XML syntax error" ,
397
- vsix : createVSIX (t , []byte ("<PackageManifest/PackageManifest>" )),
355
+ vsix : testutil . CreateVSIX (t , []byte ("<PackageManifest/PackageManifest>" )),
398
356
},
399
357
{
400
358
name : "ManifestMissingPublisher" ,
401
359
error : "publisher" ,
402
- vsix : createVSIXFromManifest (t , & storage.VSIXManifest {}),
360
+ vsix : testutil . CreateVSIXFromManifest (t , & storage.VSIXManifest {}),
403
361
},
404
362
{
405
363
name : "ManifestMissingID" ,
@@ -432,7 +390,7 @@ func TestReadVSIXManifest(t *testing.T) {
432
390
t .Parallel ()
433
391
vsix := test .vsix
434
392
if vsix == nil {
435
- vsix = createVSIXFromManifest (t , test .manifest )
393
+ vsix = testutil . CreateVSIXFromManifest (t , test .manifest )
436
394
}
437
395
manifest , err := storage .ReadVSIXManifest (vsix )
438
396
if test .error != "" {
@@ -529,7 +487,7 @@ func TestAddExtension(t *testing.T) {
529
487
vsix := test .vsix
530
488
if vsix == nil {
531
489
manifest = testutil .ConvertExtensionToManifest (test .extension , test .extension .LatestVersion )
532
- vsix = createVSIXFromManifest (t , manifest )
490
+ vsix = testutil . CreateVSIXFromManifest (t , manifest )
533
491
}
534
492
location , err := s .AddExtension (context .Background (), manifest , vsix )
535
493
if test .error != "" {
0 commit comments