@@ -12,25 +12,33 @@ import (
12
12
)
13
13
14
14
func TestWriter (t * testing.T ) {
15
+ testWriter (t , false )
16
+ }
17
+
18
+ func TestWriterBinary (t * testing.T ) {
19
+ testWriter (t , true )
20
+ }
21
+
22
+ func testWriter (t * testing.T , binary bool ) {
15
23
tests := []struct {
16
- in , want string
24
+ in , want , wantB string
17
25
}{
18
26
{in : "" , want : "" },
19
27
{in : "foo bar" , want : "foo bar" },
20
28
{in : "foo bar=" , want : "foo bar=3D" },
21
- {in : "foo bar\r " , want : "foo bar\r \n " },
22
- {in : "foo bar\r \r " , want : "foo bar\r \n \r \n " },
23
- {in : "foo bar\n " , want : "foo bar\r \n " },
24
- {in : "foo bar\r \n " , want : "foo bar\r \n " },
25
- {in : "foo bar\r \r \n " , want : "foo bar\r \n \r \n " },
29
+ {in : "foo bar\r " , want : "foo bar\r \n " , wantB : "foo bar=0D" },
30
+ {in : "foo bar\r \r " , want : "foo bar\r \n \r \n " , wantB : "foo bar=0D=0D" },
31
+ {in : "foo bar\n " , want : "foo bar\r \n " , wantB : "foo bar=0A" },
32
+ {in : "foo bar\r \n " , want : "foo bar\r \n " , wantB : "foo bar=0D=0A" },
33
+ {in : "foo bar\r \r \n " , want : "foo bar\r \n \r \n " , wantB : "foo bar=0D=0D=0A" },
26
34
{in : "foo bar " , want : "foo bar=20" },
27
35
{in : "foo bar\t " , want : "foo bar=09" },
28
36
{in : "foo bar " , want : "foo bar =20" },
29
- {in : "foo bar \n " , want : "foo bar=20\r \n " },
30
- {in : "foo bar \r " , want : "foo bar=20\r \n " },
31
- {in : "foo bar \r \n " , want : "foo bar=20\r \n " },
32
- {in : "foo bar \n " , want : "foo bar =20\r \n " },
33
- {in : "foo bar \n " , want : "foo bar =20\r \n =20" },
37
+ {in : "foo bar \n " , want : "foo bar=20\r \n " , wantB : "foo bar =0A" },
38
+ {in : "foo bar \r " , want : "foo bar=20\r \n " , wantB : "foo bar =0D" },
39
+ {in : "foo bar \r \n " , want : "foo bar=20\r \n " , wantB : "foo bar =0D=0A" },
40
+ {in : "foo bar \n " , want : "foo bar =20\r \n " , wantB : "foo bar =0A" },
41
+ {in : "foo bar \n " , want : "foo bar =20\r \n =20" , wantB : "foo bar =0A=20" },
34
42
{in : "¡Hola Señor!" , want : "=C2=A1Hola Se=C3=B1or!" },
35
43
{
36
44
in : "\t !\" #$%&'()*+,-./ :;<>?@[\\ ]^_`{|}~" ,
@@ -85,6 +93,15 @@ func TestWriter(t *testing.T) {
85
93
for _ , tt := range tests {
86
94
buf := new (bytes.Buffer )
87
95
w := NewWriter (buf )
96
+
97
+ want := tt .want
98
+ if binary {
99
+ w .Binary = true
100
+ if tt .wantB != "" {
101
+ want = tt .wantB
102
+ }
103
+ }
104
+
88
105
if _ , err := w .Write ([]byte (tt .in )); err != nil {
89
106
t .Errorf ("Write(%q): %v" , tt .in , err )
90
107
continue
@@ -94,8 +111,8 @@ func TestWriter(t *testing.T) {
94
111
continue
95
112
}
96
113
got := buf .String ()
97
- if got != tt . want {
98
- t .Errorf ("Write(%q), got:\n %q\n want:\n %q" , tt .in , got , tt . want )
114
+ if got != want {
115
+ t .Errorf ("Write(%q), got:\n %q\n want:\n %q" , tt .in , got , want )
99
116
}
100
117
}
101
118
}
0 commit comments