github.com/shohhei1126/hugo@v0.42.2-0.20180623210752-3d5928889ad7/transform/hugogeneratorinject_test.go (about)

     1  // Copyright 2016 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 transform
    15  
    16  import (
    17  	"bytes"
    18  	"strings"
    19  	"testing"
    20  )
    21  
    22  func TestHugoGeneratorInject(t *testing.T) {
    23  	hugoGeneratorTag = "META"
    24  	for i, this := range []struct {
    25  		in     string
    26  		expect string
    27  	}{
    28  		{`<head>
    29  	<foo />
    30  </head>`, `<head>
    31  	META
    32  	<foo />
    33  </head>`},
    34  		{`<HEAD>
    35  	<foo />
    36  </HEAD>`, `<HEAD>
    37  	META
    38  	<foo />
    39  </HEAD>`},
    40  		{`<head><meta name="generator" content="Jekyll" /></head>`, `<head><meta name="generator" content="Jekyll" /></head>`},
    41  		{`<head><meta name='generator' content='Jekyll' /></head>`, `<head><meta name='generator' content='Jekyll' /></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  		{"", ""},
    45  		{"</head>", "</head>"},
    46  		{"<head>", "<head>\n\tMETA"},
    47  	} {
    48  		in := strings.NewReader(this.in)
    49  		out := new(bytes.Buffer)
    50  
    51  		tr := NewChain(HugoGeneratorInject)
    52  		tr.Apply(out, in, []byte(""))
    53  
    54  		if out.String() != this.expect {
    55  			t.Errorf("[%d] Expected \n%q got \n%q", i, this.expect, out.String())
    56  		}
    57  	}
    58  
    59  }