hugogenerator_test.go (1781B)
1 // Copyright 2018 The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package metainject
15
16 import (
17 "bytes"
18 "strings"
19 "testing"
20
21 "github.com/gohugoio/hugo/transform"
22 )
23
24 func TestHugoGeneratorInject(t *testing.T) {
25 hugoGeneratorTag = "META"
26 for i, this := range []struct {
27 in string
28 expect string
29 }{
30 {`<head>
31 <foo />
32 </head>`, `<head>
33 META
34 <foo />
35 </head>`},
36 {`<HEAD>
37 <foo />
38 </HEAD>`, `<HEAD>
39 META
40 <foo />
41 </HEAD>`},
42 {`<head><meta name="generator" content="Jekyll" /></head>`, `<head><meta name="generator" content="Jekyll" /></head>`},
43 {`<head><meta name='generator' content='Jekyll' /></head>`, `<head><meta name='generator' content='Jekyll' /></head>`},
44 {`<head><meta name=generator content=Jekyll /></head>`, `<head><meta name=generator content=Jekyll /></head>`},
45 {`<head><META NAME="GENERATOR" content="Jekyll" /></head>`, `<head><META NAME="GENERATOR" content="Jekyll" /></head>`},
46 {"", ""},
47 {"</head>", "</head>"},
48 {"<head>", "<head>\n\tMETA"},
49 } {
50 in := strings.NewReader(this.in)
51 out := new(bytes.Buffer)
52
53 tr := transform.New(HugoGenerator)
54 tr.Apply(out, in)
55
56 if out.String() != this.expect {
57 t.Errorf("[%d] Expected \n%q got \n%q", i, this.expect, out.String())
58 }
59 }
60 }