You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

breakwriter_test.go 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package charset
  4. import (
  5. "strings"
  6. "testing"
  7. )
  8. func TestBreakWriter_Write(t *testing.T) {
  9. tests := []struct {
  10. name string
  11. kase string
  12. expect string
  13. wantErr bool
  14. }{
  15. {
  16. name: "noline",
  17. kase: "abcdefghijklmnopqrstuvwxyz",
  18. expect: "abcdefghijklmnopqrstuvwxyz",
  19. },
  20. {
  21. name: "endline",
  22. kase: "abcdefghijklmnopqrstuvwxyz\n",
  23. expect: "abcdefghijklmnopqrstuvwxyz<br>",
  24. },
  25. {
  26. name: "startline",
  27. kase: "\nabcdefghijklmnopqrstuvwxyz",
  28. expect: "<br>abcdefghijklmnopqrstuvwxyz",
  29. },
  30. {
  31. name: "onlyline",
  32. kase: "\n\n\n",
  33. expect: "<br><br><br>",
  34. },
  35. {
  36. name: "empty",
  37. kase: "",
  38. expect: "",
  39. },
  40. {
  41. name: "midline",
  42. kase: "\nabc\ndefghijkl\nmnopqrstuvwxy\nz",
  43. expect: "<br>abc<br>defghijkl<br>mnopqrstuvwxy<br>z",
  44. },
  45. }
  46. for _, tt := range tests {
  47. t.Run(tt.name, func(t *testing.T) {
  48. buf := &strings.Builder{}
  49. b := &BreakWriter{
  50. Writer: buf,
  51. }
  52. n, err := b.Write([]byte(tt.kase))
  53. if (err != nil) != tt.wantErr {
  54. t.Errorf("BreakWriter.Write() error = %v, wantErr %v", err, tt.wantErr)
  55. return
  56. }
  57. if n != len(tt.kase) {
  58. t.Errorf("BreakWriter.Write() = %v, want %v", n, len(tt.kase))
  59. }
  60. if buf.String() != tt.expect {
  61. t.Errorf("BreakWriter.Write() wrote %q, want %v", buf.String(), tt.expect)
  62. }
  63. })
  64. }
  65. }