mirror of
https://github.com/kovetskiy/mark.git
synced 2025-04-23 21:32:41 +08:00
91 lines
2.1 KiB
Go
91 lines
2.1 KiB
Go
package attachment
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var (
|
|
replacements = []string{
|
|
"image1.jpg",
|
|
"images/image2.jpg",
|
|
"../image3.jpg",
|
|
}
|
|
)
|
|
|
|
type bufferCloser struct {
|
|
*bytes.Buffer
|
|
}
|
|
|
|
func (bufferCloser) Close() error { return nil }
|
|
|
|
type virtualOpener struct {
|
|
PathToBuf map[string]*bufferCloser
|
|
}
|
|
|
|
func (o *virtualOpener) Open(name string) (io.ReadWriteCloser, error) {
|
|
if buf, ok := o.PathToBuf[name]; ok {
|
|
return buf, nil
|
|
}
|
|
return nil, os.ErrNotExist
|
|
}
|
|
|
|
func TestPrepareAttachmentsWithWorkDirBase(t *testing.T) {
|
|
|
|
testingOpener := &virtualOpener{
|
|
PathToBuf: map[string]*bufferCloser{
|
|
"image1.jpg": {bytes.NewBuffer(nil)},
|
|
"images/image2.jpg": {bytes.NewBuffer(nil)},
|
|
"../image3.jpg": {bytes.NewBuffer(nil)},
|
|
},
|
|
}
|
|
|
|
attaches, err := prepareAttachments(testingOpener, ".", replacements)
|
|
t.Logf("attaches: %s", err)
|
|
if err != nil {
|
|
println(err.Error())
|
|
t.Fatal(err)
|
|
}
|
|
|
|
assert.Equal(t, "image1.jpg", attaches[0].Name)
|
|
assert.Equal(t, "image1.jpg", attaches[0].Replace)
|
|
|
|
assert.Equal(t, "images/image2.jpg", attaches[1].Name)
|
|
assert.Equal(t, "images/image2.jpg", attaches[1].Replace)
|
|
|
|
assert.Equal(t, "../image3.jpg", attaches[2].Name)
|
|
assert.Equal(t, "../image3.jpg", attaches[2].Replace)
|
|
|
|
assert.Equal(t, len(attaches), 3)
|
|
}
|
|
|
|
func TestPrepareAttachmentsWithSubDirBase(t *testing.T) {
|
|
|
|
testingOpener := &virtualOpener{
|
|
PathToBuf: map[string]*bufferCloser{
|
|
"a/b/image1.jpg": {bytes.NewBuffer(nil)},
|
|
"a/b/images/image2.jpg": {bytes.NewBuffer(nil)},
|
|
"a/image3.jpg": {bytes.NewBuffer(nil)},
|
|
},
|
|
}
|
|
|
|
attaches, err := prepareAttachments(testingOpener, "a/b", replacements)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, "image1.jpg", attaches[0].Name)
|
|
assert.Equal(t, "image1.jpg", attaches[0].Replace)
|
|
|
|
assert.Equal(t, "images/image2.jpg", attaches[1].Name)
|
|
assert.Equal(t, "images/image2.jpg", attaches[1].Replace)
|
|
|
|
assert.Equal(t, "../image3.jpg", attaches[2].Name)
|
|
assert.Equal(t, "../image3.jpg", attaches[2].Replace)
|
|
|
|
assert.Equal(t, len(attaches), 3)
|
|
}
|