aboutsummaryrefslogtreecommitdiff
path: root/src/html/template/multi_test.go
diff options
context:
space:
mode:
authorKatie Hockman <katie@golang.org>2020-12-14 10:03:05 -0500
committerKatie Hockman <katie@golang.org>2020-12-14 10:06:13 -0500
commit0345ede87ee12698988973884cfc0fd3d499dffd (patch)
tree7123cff141ee5661208d2f5f437b8f5252ac7f6a /src/html/template/multi_test.go
parent4651d6b267818b0e0d128a5443289717c4bb8cbc (diff)
parent0a02371b0576964e81c3b40d328db9a3ef3b031b (diff)
downloadgo-0345ede87ee12698988973884cfc0fd3d499dffd.tar.xz
[dev.fuzz] all: merge master into dev.fuzz
Change-Id: I5d8c8329ccc9d747bd81ade6b1cb7cb8ae2e94b2
Diffstat (limited to 'src/html/template/multi_test.go')
-rw-r--r--src/html/template/multi_test.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/html/template/multi_test.go b/src/html/template/multi_test.go
index 50526c5b65..6535ab6c04 100644
--- a/src/html/template/multi_test.go
+++ b/src/html/template/multi_test.go
@@ -7,7 +7,9 @@
package template
import (
+ "archive/zip"
"bytes"
+ "os"
"testing"
"text/template/parse"
)
@@ -82,6 +84,35 @@ func TestParseGlob(t *testing.T) {
testExecute(multiExecTests, template, t)
}
+func TestParseFS(t *testing.T) {
+ fs := os.DirFS("testdata")
+
+ {
+ _, err := ParseFS(fs, "DOES NOT EXIST")
+ if err == nil {
+ t.Error("expected error for non-existent file; got none")
+ }
+ }
+
+ {
+ template := New("root")
+ _, err := template.ParseFS(fs, "file1.tmpl", "file2.tmpl")
+ if err != nil {
+ t.Fatalf("error parsing files: %v", err)
+ }
+ testExecute(multiExecTests, template, t)
+ }
+
+ {
+ template := New("root")
+ _, err := template.ParseFS(fs, "file*.tmpl")
+ if err != nil {
+ t.Fatalf("error parsing files: %v", err)
+ }
+ testExecute(multiExecTests, template, t)
+ }
+}
+
// In these tests, actual content (not just template definitions) comes from the parsed files.
var templateFileExecTests = []execTest{
@@ -104,6 +135,18 @@ func TestParseGlobWithData(t *testing.T) {
testExecute(templateFileExecTests, template, t)
}
+func TestParseZipFS(t *testing.T) {
+ z, err := zip.OpenReader("testdata/fs.zip")
+ if err != nil {
+ t.Fatalf("error parsing zip: %v", err)
+ }
+ template, err := New("root").ParseFS(z, "tmpl*.tmpl")
+ if err != nil {
+ t.Fatalf("error parsing files: %v", err)
+ }
+ testExecute(templateFileExecTests, template, t)
+}
+
const (
cloneText1 = `{{define "a"}}{{template "b"}}{{template "c"}}{{end}}`
cloneText2 = `{{define "b"}}b{{end}}`