@@ -8,7 +8,8 @@ class ParserTests: XCTestCase {
8
8
( " testFormData " , testFormData) ,
9
9
( " testWebkit " , testWebkit) ,
10
10
( " testForm " , testForm) ,
11
- ( " testFormManyFields " , testFormManyFields)
11
+ ( " testFormManyFields " , testFormManyFields) ,
12
+ ( " testBoundaryLikeContent " , testBoundaryLikeContent)
12
13
]
13
14
14
15
func testFormData( ) throws {
@@ -139,4 +140,29 @@ class ParserTests: XCTestCase {
139
140
XCTAssertEqual ( fields [ " field \( i) " ] ? . part. body. makeString ( ) , " The Quick Brown Fox Jumps Over The Lazy Dog " , " Field 'field \( i) ' was parsed incorrectly! " )
140
141
}
141
142
}
143
+
144
+ func testBoundaryLikeContent( ) throws {
145
+ var message = " "
146
+
147
+ message += " ------WebKitFormBoundaryezkRLRyEVe1aMUVZ \r \n "
148
+ message += " Content-Disposition: form-data; name= \" file \" ; filename= \" test.txt \" \r \n "
149
+ message += " Content-Type: text/plain \r \n "
150
+ message += " \r \n "
151
+ message += " ---this is a test \r \n "
152
+ message += " ------WebKitFormBoundaryezkRLRyEVe1aMUVZ-- \r \n "
153
+
154
+ let multipart = try Multipart . Parser ( boundary: " ----WebKitFormBoundaryezkRLRyEVe1aMUVZ " )
155
+ let parser = FormData . Parser ( multipart: multipart)
156
+
157
+ var fields : [ String : Field ] = [ : ]
158
+
159
+ parser. onField = { field in
160
+ fields [ field. name] = field
161
+ }
162
+
163
+ try parser. multipart. parse ( message)
164
+
165
+ XCTAssertEqual ( fields [ " file " ] ? . filename, " test.txt " )
166
+ XCTAssertEqual ( " ---this is a test " , fields [ " file " ] ? . part. body. makeString ( ) )
167
+ }
142
168
}
0 commit comments