示例#1
0
文件: zips_test.go 项目: gozips/zips
func TestZipFromHTTPSources(t *testing.T) {
	ts := tServer()
	defer ts.Close()

	url1 := fmt.Sprintf("%s/index.html", ts.URL)
	url2 := fmt.Sprintf("%s/posts", ts.URL)
	url3 := fmt.Sprintf("%s/api/data.json", ts.URL)

	out := new(bytes.Buffer)
	zip := NewZip(sources.HTTP)
	zip.Add(url1)
	zip.Add(url2, url3)
	n, err := zip.WriteTo(out)
	if err := zip.Close(); err != nil {
		t.Fatal(err)
	}

	assert.Nil(t, err)
	assert.Equal(t, int64(38), n)
	assert.Equal(t, int64(38), zip.N)
	assert.Equal(t, int64(38), zip.UncompressedSize)
	assert.Equal(t, int64(56), zip.CompressedSize)
	gozipst.VerifyZip(t, out.Bytes(), []gozipst.Entries{
		{"index.html", "Hello World!"},
		{"posts", "Post Body"},
		{"data.json", `{"data": ["one"]}`},
	})
}
示例#2
0
文件: zips_test.go 项目: gozips/zips
func TestZipFromFSSources(t *testing.T) {
	out := new(bytes.Buffer)
	zip := NewZip(sources.FS)
	zip.Add("sample/file1.txt")
	zip.Add("sample/file2.txt")
	zip.Add("sample/file3.txt")
	n, err := zip.WriteTo(out)
	if err := zip.Close(); err != nil {
		t.Fatal(err)
	}

	assert.Nil(t, err)
	assert.Equal(t, int64(11), n)
	assert.Equal(t, int64(11), zip.N)
	assert.Equal(t, int64(11), zip.UncompressedSize)
	assert.Equal(t, int64(29), zip.CompressedSize)
	gozipst.VerifyZip(t, out.Bytes(), []gozipst.Entries{
		{"file1.txt", "One"},
		{"file2.txt", "Two"},
		{"file3.txt", "Three"},
	})
}