github.com/gogf/gf@v1.16.9/frame/gins/gins_z_unit_view_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package gins 8 9 import ( 10 "context" 11 "fmt" 12 "github.com/gogf/gf/debug/gdebug" 13 "github.com/gogf/gf/os/gcfg" 14 "testing" 15 16 "github.com/gogf/gf/os/gfile" 17 "github.com/gogf/gf/os/gtime" 18 "github.com/gogf/gf/test/gtest" 19 ) 20 21 func Test_View(t *testing.T) { 22 gtest.C(t, func(t *gtest.T) { 23 t.AssertNE(View(), nil) 24 b, e := View().ParseContent(context.TODO(), `{{"我是中国人" | substr 2 -1}}`, nil) 25 t.Assert(e, nil) 26 t.Assert(b, "中国人") 27 }) 28 gtest.C(t, func(t *gtest.T) { 29 tpl := "t.tpl" 30 err := gfile.PutContents(tpl, `{{"我是中国人" | substr 2 -1}}`) 31 t.Assert(err, nil) 32 defer gfile.Remove(tpl) 33 34 b, e := View().Parse(context.TODO(), "t.tpl", nil) 35 t.Assert(e, nil) 36 t.Assert(b, "中国人") 37 }) 38 gtest.C(t, func(t *gtest.T) { 39 path := fmt.Sprintf(`%s/%d`, gfile.TempDir(), gtime.TimestampNano()) 40 tpl := fmt.Sprintf(`%s/%s`, path, "t.tpl") 41 err := gfile.PutContents(tpl, `{{"我是中国人" | substr 2 -1}}`) 42 t.Assert(err, nil) 43 defer gfile.Remove(tpl) 44 err = View().AddPath(path) 45 t.Assert(err, nil) 46 47 b, e := View().Parse(context.TODO(), "t.tpl", nil) 48 t.Assert(e, nil) 49 t.Assert(b, "中国人") 50 }) 51 } 52 53 func Test_View_Config(t *testing.T) { 54 // view1 test1 55 gtest.C(t, func(t *gtest.T) { 56 dirPath := gdebug.TestDataPath("view1") 57 gcfg.SetContent(gfile.GetContents(gfile.Join(dirPath, "config.toml"))) 58 defer gcfg.ClearContent() 59 defer instances.Clear() 60 61 view := View("test1") 62 t.AssertNE(view, nil) 63 err := view.AddPath(dirPath) 64 t.Assert(err, nil) 65 66 str := `hello ${.name},version:${.version}` 67 view.Assigns(map[string]interface{}{"version": "1.9.0"}) 68 result, err := view.ParseContent(context.TODO(), str, nil) 69 t.Assert(err, nil) 70 t.Assert(result, "hello test1,version:1.9.0") 71 72 result, err = view.ParseDefault(context.TODO()) 73 t.Assert(err, nil) 74 t.Assert(result, "test1:test1") 75 }) 76 // view1 test2 77 gtest.C(t, func(t *gtest.T) { 78 dirPath := gdebug.TestDataPath("view1") 79 gcfg.SetContent(gfile.GetContents(gfile.Join(dirPath, "config.toml"))) 80 defer gcfg.ClearContent() 81 defer instances.Clear() 82 83 view := View("test2") 84 t.AssertNE(view, nil) 85 err := view.AddPath(dirPath) 86 t.Assert(err, nil) 87 88 str := `hello #{.name},version:#{.version}` 89 view.Assigns(map[string]interface{}{"version": "1.9.0"}) 90 result, err := view.ParseContent(context.TODO(), str, nil) 91 t.Assert(err, nil) 92 t.Assert(result, "hello test2,version:1.9.0") 93 94 result, err = view.ParseDefault(context.TODO()) 95 t.Assert(err, nil) 96 t.Assert(result, "test2:test2") 97 }) 98 // view2 99 gtest.C(t, func(t *gtest.T) { 100 dirPath := gdebug.TestDataPath("view2") 101 gcfg.SetContent(gfile.GetContents(gfile.Join(dirPath, "config.toml"))) 102 defer gcfg.ClearContent() 103 defer instances.Clear() 104 105 view := View() 106 t.AssertNE(view, nil) 107 err := view.AddPath(dirPath) 108 t.Assert(err, nil) 109 110 str := `hello {.name},version:{.version}` 111 view.Assigns(map[string]interface{}{"version": "1.9.0"}) 112 result, err := view.ParseContent(context.TODO(), str, nil) 113 t.Assert(err, nil) 114 t.Assert(result, "hello test,version:1.9.0") 115 116 result, err = view.ParseDefault(context.TODO()) 117 t.Assert(err, nil) 118 t.Assert(result, "test:test") 119 }) 120 // view2 121 gtest.C(t, func(t *gtest.T) { 122 dirPath := gdebug.TestDataPath("view2") 123 gcfg.SetContent(gfile.GetContents(gfile.Join(dirPath, "config.toml"))) 124 defer gcfg.ClearContent() 125 defer instances.Clear() 126 127 view := View("test100") 128 t.AssertNE(view, nil) 129 err := view.AddPath(dirPath) 130 t.Assert(err, nil) 131 132 str := `hello {.name},version:{.version}` 133 view.Assigns(map[string]interface{}{"version": "1.9.0"}) 134 result, err := view.ParseContent(context.TODO(), str, nil) 135 t.Assert(err, nil) 136 t.Assert(result, "hello test,version:1.9.0") 137 138 result, err = view.ParseDefault(context.TODO()) 139 t.Assert(err, nil) 140 t.Assert(result, "test:test") 141 }) 142 }