1
1
package ics
2
2
3
- import "testing"
3
+ import (
4
+ "bytes"
5
+ "testing"
6
+ )
4
7
5
8
func TestPropertyParse (t * testing.T ) {
6
9
tests := []struct {
@@ -24,3 +27,70 @@ func TestPropertyParse(t *testing.T) {
24
27
}
25
28
}
26
29
}
30
+
31
+ func TestFoldLine (t * testing.T ) {
32
+ seventyFive := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
33
+ threeByte := `⌘`
34
+
35
+ tests := []struct {
36
+ name string
37
+ line string
38
+ expected string
39
+ }{
40
+ {
41
+ name : "74 octet line" ,
42
+ line : seventyFive [0 :74 ],
43
+ expected : seventyFive [0 :74 ] + "\r \n " ,
44
+ },
45
+ {
46
+ name : "75 octet line" ,
47
+ line : seventyFive ,
48
+ expected : seventyFive + "\r \n " ,
49
+ },
50
+ {
51
+ name : "76 octet line" ,
52
+ line : seventyFive + "b" ,
53
+ expected : seventyFive + "\r \n b" + "\r \n " ,
54
+ },
55
+ {
56
+ name : "77 octet line" ,
57
+ line : seventyFive + "bb" ,
58
+ expected : seventyFive + "\r \n bb" + "\r \n " ,
59
+ },
60
+ {
61
+ name : "75x2 octet line" ,
62
+ line : seventyFive + seventyFive ,
63
+ expected : seventyFive + "\r \n " + seventyFive [0 :74 ] + "\r \n " + "a" + "\r \n " ,
64
+ },
65
+ {
66
+ name : "72 bytes followed by 3-byte character" ,
67
+ line : seventyFive [0 :72 ] + threeByte ,
68
+ expected : seventyFive [0 :72 ] + threeByte + "\r \n " , // 72+3 is ok, no need to fold
69
+ },
70
+ {
71
+ name : "73 bytes followed by 3-byte character" ,
72
+ line : seventyFive [0 :73 ] + threeByte ,
73
+ expected : seventyFive [0 :73 ] + "\r \n " + threeByte + "\r \n " ,
74
+ },
75
+ {
76
+ name : "74 bytes followed by 3-byte character" ,
77
+ line : seventyFive [0 :74 ] + threeByte ,
78
+ expected : seventyFive [0 :74 ] + "\r \n " + threeByte + "\r \n " ,
79
+ },
80
+ }
81
+
82
+ for _ , test := range tests {
83
+ t .Run (test .name , func (t * testing.T ) {
84
+ buf := bytes .NewBuffer (nil )
85
+ foldLine (test .line , buf )
86
+ got := buf .String ()
87
+ assertEqual (t , test .expected , got )
88
+ })
89
+ }
90
+ }
91
+
92
+ func assertEqual (t * testing.T , expected string , got string ) {
93
+ if got != expected {
94
+ t .Errorf ("\n --- expected ---\n %s\n --- got ---\n %s\n ---\n " , expected , got )
95
+ }
96
+ }
0 commit comments