func TestAddParseTree(t *testing.T) { // Create some templates. root, err := New("root").Parse(cloneText1) if err != nil { t.Fatal(err) } _, err = root.Parse(cloneText2) if err != nil { t.Fatal(err) } // Add a new parse tree. tree, err := parse.Parse("cloneText3", cloneText3, "", "", nil, builtins) if err != nil { t.Fatal(err) } added, err := root.AddParseTree("c", tree["c"]) // Execute. var b bytes.Buffer err = added.ExecuteTemplate(&b, "a", 0) if err != nil { t.Fatal(err) } if b.String() != "broot" { t.Errorf("expected %q got %q", "broot", b.String()) } }
// Issue 7032 func TestAddParseTreeToUnparsedTemplate(t *testing.T) { master := "{{define \"master\"}}{{end}}" tmpl := New("master") tree, err := parse.Parse("master", master, "", "", nil) if err != nil { t.Fatalf("unexpected parse err: %v", err) } masterTree := tree["master"] tmpl.AddParseTree("master", masterTree) // used to panic }
func TestAddParseTree(t *testing.T) { root := Must(New("root").Parse(`{{define "a"}} {{.}} {{template "b"}} {{.}} "></a>{{end}}`)) tree, err := parse.Parse("t", `{{define "b"}}<a href="{{end}}`, "", "", nil, nil) if err != nil { t.Fatal(err) } added := Must(root.AddParseTree("b", tree["b"])) b := new(bytes.Buffer) err = added.ExecuteTemplate(b, "a", "1>0") if err != nil { t.Fatal(err) } if got, want := b.String(), ` 1>0 <a href=" 1%3e0 "></a>`; got != want { t.Errorf("got %q want %q", got, want) } }