package transform
import (
"bytes"
"testing"
)
const H5_JS_CONTENT_ABS_URL_WITH_NAV = "
content foobar. Follow up"
const CORRECT_OUTPUT_SRC_HREF_WITH_NAV = "content foobar. Follow up"
const H5_XML_CONTENT_ABS_URL = "<p><a href="/foobar">foobar</a></p> <p>A video: <iframe src='/foo'></iframe></p>"
const CORRECT_OUTPUT_SRC_HREF_IN_XML = "<p><a href="http://xml/foobar">foobar</a></p> <p>A video: <iframe src='http://xml/foo'></iframe></p>"
var two_chain_tests = []test{
{H5_JS_CONTENT_ABS_URL_WITH_NAV, CORRECT_OUTPUT_SRC_HREF_WITH_NAV},
}
var xml_abs_url_tests = []test{
{H5_XML_CONTENT_ABS_URL, CORRECT_OUTPUT_SRC_HREF_IN_XML},
}
func TestChainZeroTransformers(t *testing.T) {
tr := NewChain()
in := new(bytes.Buffer)
out := new(bytes.Buffer)
if err := tr.Apply(in, out); err != nil {
t.Errorf("A zero transformer chain returned an error.")
}
}
func BenchmarkChain(b *testing.B) {
absURL, _ := AbsURL("http://two")
tr := NewChain(absURL...)
b.ResetTimer()
for i := 0; i < b.N; i++ {
apply(b.Errorf, tr, two_chain_tests)
}
}
func TestXMLAbsUrl(t *testing.T) {
absURLInXML, _ := AbsURLInXML("http://xml")
tr := NewChain(absURLInXML...)
apply(t.Errorf, tr, xml_abs_url_tests)
}