github.com/sotirispl/buffalo@v0.11.1/render/template_helpers_test.go (about)

     1  package render
     2  
     3  import (
     4  	"html/template"
     5  	"testing"
     6  
     7  	"github.com/gobuffalo/packr"
     8  	"github.com/gobuffalo/tags"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func Test_javascriptTag(t *testing.T) {
    13  	r := require.New(t)
    14  	re := New(Options{
    15  		AssetsBox: packr.NewBox(""),
    16  	})
    17  	tr := re.Template("").(*templateRenderer)
    18  	h := tr.addAssetsHelpers(Helpers{})
    19  	f := h["javascriptTag"].(func(string, tags.Options) (template.HTML, error))
    20  	s, err := f("application.js", nil)
    21  	r.NoError(err)
    22  	r.Equal(template.HTML(`<script src="/assets/application.js" type="text/javascript"></script>`), s)
    23  }
    24  
    25  func Test_javascriptTag_Options(t *testing.T) {
    26  	r := require.New(t)
    27  	re := New(Options{
    28  		AssetsBox: packr.NewBox(""),
    29  	})
    30  	tr := re.Template("").(*templateRenderer)
    31  	h := tr.addAssetsHelpers(Helpers{})
    32  	f := h["javascriptTag"].(func(string, tags.Options) (template.HTML, error))
    33  	s, err := f("application.js", tags.Options{"class": "foo"})
    34  	r.NoError(err)
    35  	r.Equal(template.HTML(`<script class="foo" src="/assets/application.js" type="text/javascript"></script>`), s)
    36  
    37  }
    38  func Test_stylesheetTag(t *testing.T) {
    39  	r := require.New(t)
    40  	re := New(Options{
    41  		AssetsBox: packr.NewBox(""),
    42  	})
    43  	tr := re.Template("").(*templateRenderer)
    44  	h := tr.addAssetsHelpers(Helpers{})
    45  	f := h["stylesheetTag"].(func(string, tags.Options) (template.HTML, error))
    46  	s, err := f("application.css", nil)
    47  	r.NoError(err)
    48  	r.Equal(template.HTML(`<link href="/assets/application.css" media="screen" rel="stylesheet" />`), s)
    49  }
    50  
    51  func Test_stylesheetTag_Options(t *testing.T) {
    52  	r := require.New(t)
    53  	re := New(Options{
    54  		AssetsBox: packr.NewBox(""),
    55  	})
    56  	tr := re.Template("").(*templateRenderer)
    57  	h := tr.addAssetsHelpers(Helpers{})
    58  	f := h["stylesheetTag"].(func(string, tags.Options) (template.HTML, error))
    59  	s, err := f("application.css", tags.Options{"class": "foo"})
    60  	r.NoError(err)
    61  	r.Equal(template.HTML(`<link class="foo" href="/assets/application.css" media="screen" rel="stylesheet" />`), s)
    62  }
    63  func Test_imgTag(t *testing.T) {
    64  	r := require.New(t)
    65  	re := New(Options{
    66  		AssetsBox: packr.NewBox(""),
    67  	})
    68  	tr := re.Template("").(*templateRenderer)
    69  	h := tr.addAssetsHelpers(Helpers{})
    70  	f := h["imgTag"].(func(string, tags.Options) (template.HTML, error))
    71  	s, err := f("foo.png", nil)
    72  	r.NoError(err)
    73  	r.Equal(template.HTML(`<img src="/assets/foo.png" />`), s)
    74  }
    75  
    76  func Test_imgTag_Options(t *testing.T) {
    77  	r := require.New(t)
    78  	re := New(Options{
    79  		AssetsBox: packr.NewBox(""),
    80  	})
    81  	tr := re.Template("").(*templateRenderer)
    82  	h := tr.addAssetsHelpers(Helpers{})
    83  	f := h["imgTag"].(func(string, tags.Options) (template.HTML, error))
    84  	s, err := f("foo.png", tags.Options{"class": "foo"})
    85  	r.NoError(err)
    86  	r.Equal(template.HTML(`<img class="foo" src="/assets/foo.png" />`), s)
    87  }