@@ -55,14 +55,48 @@ func TestFormatHeaderParams(t *testing.T) {
5555 "d" : "example.org" ,
5656 }
5757
58- expected := "a=rsa-sha256; d=example.org; v=1;"
58+ expected := "DKIM-Signature: a=rsa-sha256; d=example.org; v=1;"
5959
60- s := formatHeaderParams (params )
60+ s := formatHeaderParams ("DKIM-Signature" , params )
6161 if s != expected {
6262 t .Errorf ("Expected formatted params to be %q, but got %q" , expected , s )
6363 }
6464}
6565
66+ func TestLongHeaderFolding (t * testing.T ) {
67+ // see #29 and #27
68+
69+ params := map [string ]string {
70+ "v" : "1" ,
71+ "a" : "rsa-sha256" ,
72+ "d" : "example.org" ,
73+ "h" : "From:To:Subject:Date:Message-ID:Long-Header-Name" ,
74+ }
75+
76+ expected := "DKIM-Signature: a=rsa-sha256; d=example.org;\r \n h=From:To:Subject:Date:Message-ID:Long-Header-Name; v=1;"
77+
78+ s := formatHeaderParams ("DKIM-Signature" , params )
79+ if s != expected {
80+ t .Errorf ("Expected formatted params to be\n \n %q\n \n , but got\n \n %q" , expected , s )
81+ }
82+ }
83+
84+ func TestSignedHeaderFolding (t * testing.T ) {
85+ hValue := "From:To:Subject:Date:Message-ID:Long-Header-Name:Another-Long-Header-Name"
86+
87+ params := map [string ]string {
88+ "v" : "1" ,
89+ "a" : "rsa-sha256" ,
90+ "d" : "example.org" ,
91+ "h" : hValue ,
92+ }
93+
94+ s := formatHeaderParams ("DKIM-Signature" , params )
95+ if ! strings .Contains (s , hValue ) {
96+ t .Errorf ("Signed Headers names (%v) are not well folded in the signed header %q" , hValue , s )
97+ }
98+ }
99+
66100func TestParseHeaderParams_malformed (t * testing.T ) {
67101 _ , err := parseHeaderParams ("abc; def" )
68102 if err == nil {
0 commit comments