siteJSONEncode_test.go (1181B)
1 // Copyright 2019 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 hugolib
15
16 import (
17 "testing"
18 )
19
20 // Issue #1123
21 // Testing prevention of cyclic refs in JSON encoding
22 // May be smart to run with: -timeout 4000ms
23 func TestEncodePage(t *testing.T) {
24 t.Parallel()
25
26 templ := `Page: |{{ index .Site.RegularPages 0 | jsonify }}|
27 Site: {{ site | jsonify }}
28 `
29
30 b := newTestSitesBuilder(t)
31 b.WithSimpleConfigFile().WithTemplatesAdded("index.html", templ)
32 b.WithContent("page.md", `---
33 title: "Page"
34 date: 2019-02-28
35 ---
36
37 Content.
38
39 `)
40
41 b.Build(BuildCfg{})
42
43 b.AssertFileContent("public/index.html", `"Date":"2019-02-28T00:00:00Z"`)
44 }