uplink/app/streams/metadata_test.go

52 lines
1.2 KiB
Go
Raw Normal View History

2018-04-11 07:33:07 +00:00
package streams
import (
"fmt"
"testing"
. "github.com/smartystreets/goconvey/convey"
)
const (
originalStringA = "Aäöü´ß - \\_-_-_"
quotedStringA = "'Aäöü´ß - \\\\_-_-_'"
originalStringB = "hfn9'07';137gr\tbqp9\"ui"
quotedStringB = "'hfn9\\'07\\';137gr\tbqp9\"ui'"
)
func Test_Metadata(t *testing.T) {
Convey("Metadata", t, func() {
Convey("decoding", func() {
meta, err := DecodeMetadata("")
So(err, ShouldBeNil)
So(meta, ShouldHaveLength, 0)
meta, err = DecodeMetadata("StreamTitle=" + quotedStringA + ";")
So(err, ShouldBeNil)
So(meta, ShouldHaveLength, 1)
So(meta, ShouldContainKey, "StreamTitle")
So(meta["StreamTitle"], ShouldEqual, originalStringA)
})
Convey("encoding", func() {
meta := Metadata{}
So(meta.String(), ShouldHaveLength, 0)
meta = Metadata{
"StreamTitle": originalStringA,
}
So(meta.String(), ShouldEqual,
fmt.Sprintf("StreamTitle=%s;",
quotedStringA))
meta = Metadata{
"StreamTitle": originalStringA,
"test": originalStringB,
}
So(meta.String(), ShouldEqual,
fmt.Sprintf("StreamTitle=%s;test=%s;",
quotedStringA, quotedStringB))
})
})
}