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  }