render_test.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package pgenr
  2. import (
  3. "encoding/base64"
  4. "fmt"
  5. "git.nspix.com/golang/pgenr/element"
  6. "golang.org/x/net/html/atom"
  7. "io/ioutil"
  8. "strconv"
  9. "testing"
  10. "time"
  11. )
  12. func TestAtom(t *testing.T) {
  13. fmt.Println(strconv.Quote(`{"a":"b"}`))
  14. }
  15. func TestRender(t *testing.T) {
  16. page := NewPage("Hi Jon Snow,")
  17. page.SetHead("Hi Jon Snow,").
  18. SetCopyright("Copyright © 2017 Hermes. All rights reserved")
  19. page.AddPlainIntro("Welcome to Hermes! We're very excited to have you on board.")
  20. //page.AddEntry(NewEntry("Welcome to Hermes").AddItem("Stock1", NewText("14.58", WithTextTheme(TextThemeSuccess))).AddItem("asddas", NewText("15.8", WithTextTheme(TextThemeDanger))))
  21. page.AddPlainOutro("Need help, or have questions? Just reply to this email, we'd love to help.")
  22. page.AddPlainOutro("Yours truly,")
  23. page.AddPlainOutro("Hermes - https://google.com")
  24. timeline := element.NewTimeline()
  25. timeline.AddItem(time.Now().Add(-2*time.Minute), element.NewText("Event start"))
  26. timeline.AddItem(time.Now().Add(-1*time.Minute), element.NewText("Event end"))
  27. timeline.AddItem(time.Now().Add(time.Minute), element.NewText("Event closed"))
  28. //page.AddTimeline(timeline)
  29. table := element.NewTable(element.NewText("This year sale table", element.WithTextStyle(map[string]string{"font-size": "1.06rem", "font-weight": "550"})))
  30. table.FixedColumn = true
  31. table.SetHead(element.NewText("Name"), element.NewText("Age"), element.NewText("Price"), element.NewText("School"), element.NewText("Job"))
  32. table.AddCell(element.NewText("ZhanSan"), element.NewText("31"), element.NewText("185.6"), element.NewText("185.6"), element.NewText("185.6"))
  33. table.AddCell(element.NewText("Lisi"), element.NewText("35"), element.NewText("102.6"), element.NewText("102.6"),
  34. element.NewElement(atom.A, "link",
  35. element.WithAttribute("class", "ajax-request"),
  36. element.WithAttribute("data-method", "get"),
  37. element.WithAttribute("data-url", "https://vrgo.nspix.com/healthy"),
  38. element.WithAttribute("data-success", "hello hello"),
  39. element.WithAttribute("data-reload", "hello hello"),
  40. element.WithAttribute("class", "ajax-request"),
  41. element.WithAttribute("data-data", base64.StdEncoding.EncodeToString([]byte(`{"a":"aaa","b":"as","c":222}`))),
  42. ),
  43. )
  44. page.AddTable(table)
  45. //page.AddButtonAction("To get started with Hermes, please click here:", NewButton("Confirm your account", "https://example-hermes.com/"))
  46. //page.AddInviteCodeAction("To get started with Hermes, please click here:", "950038")
  47. if str, err := Render(page); err == nil {
  48. ioutil.WriteFile("d:\\aaa.html", []byte(str), 0644)
  49. } else {
  50. t.Error(err)
  51. }
  52. }