| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 library multipart_test; | 5 library multipart_test; | 
| 6 | 6 | 
| 7 import 'dart:async'; | 7 import 'dart:async'; | 
| 8 import 'dart:io'; | 8 import 'dart:io'; | 
| 9 import 'dart:utf'; | 9 import 'dart:utf'; | 
| 10 | 10 | 
| 11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 69     expect(request, bodyMatches(''' | 69     expect(request, bodyMatches(''' | 
| 70         --{{boundary}} | 70         --{{boundary}} | 
| 71         content-disposition: form-data; name="field1" | 71         content-disposition: form-data; name="field1" | 
| 72 | 72 | 
| 73         value1 | 73         value1 | 
| 74         --{{boundary}} | 74         --{{boundary}} | 
| 75         content-disposition: form-data; name="field2" | 75         content-disposition: form-data; name="field2" | 
| 76 | 76 | 
| 77         value2 | 77         value2 | 
| 78         --{{boundary}} | 78         --{{boundary}} | 
| 79         content-type: text/plain; charset=UTF-8 | 79         content-type: text/plain; charset=utf-8 | 
| 80         content-disposition: form-data; name="file1"; filename="filename1.txt" | 80         content-disposition: form-data; name="file1"; filename="filename1.txt" | 
| 81 | 81 | 
| 82         contents1 | 82         contents1 | 
| 83         --{{boundary}} | 83         --{{boundary}} | 
| 84         content-type: text/plain; charset=UTF-8 | 84         content-type: text/plain; charset=utf-8 | 
| 85         content-disposition: form-data; name="file2" | 85         content-disposition: form-data; name="file2" | 
| 86 | 86 | 
| 87         contents2 | 87         contents2 | 
| 88         --{{boundary}}-- | 88         --{{boundary}}-- | 
| 89         ''')); | 89         ''')); | 
| 90   }); | 90   }); | 
| 91 | 91 | 
| 92   test('with a unicode field name', () { | 92   test('with a unicode field name', () { | 
| 93     var request = new http.MultipartRequest('POST', dummyUrl); | 93     var request = new http.MultipartRequest('POST', dummyUrl); | 
| 94     request.fields['fïēld'] = 'value'; | 94     request.fields['fïēld'] = 'value'; | 
| 95 | 95 | 
| 96     expect(request, bodyMatches(''' | 96     expect(request, bodyMatches(''' | 
| 97         --{{boundary}} | 97         --{{boundary}} | 
| 98         content-disposition: form-data; name="f%C3%AF%C4%93ld" | 98         content-disposition: form-data; name="f%C3%AF%C4%93ld" | 
| 99 | 99 | 
| 100         value | 100         value | 
| 101         --{{boundary}}-- | 101         --{{boundary}}-- | 
| 102         ''')); | 102         ''')); | 
| 103   }); | 103   }); | 
| 104 | 104 | 
| 105   test('with a unicode field value', () { | 105   test('with a unicode field value', () { | 
| 106     var request = new http.MultipartRequest('POST', dummyUrl); | 106     var request = new http.MultipartRequest('POST', dummyUrl); | 
| 107     request.fields['field'] = 'vⱥlūe'; | 107     request.fields['field'] = 'vⱥlūe'; | 
| 108 | 108 | 
| 109     expect(request, bodyMatches(''' | 109     expect(request, bodyMatches(''' | 
| 110         --{{boundary}} | 110         --{{boundary}} | 
| 111         content-disposition: form-data; name="field" | 111         content-disposition: form-data; name="field" | 
| 112         content-type: text/plain; charset=UTF-8 | 112         content-type: text/plain; charset=utf-8 | 
| 113 | 113 | 
| 114         vⱥlūe | 114         vⱥlūe | 
| 115         --{{boundary}}-- | 115         --{{boundary}}-- | 
| 116         ''')); | 116         ''')); | 
| 117   }); | 117   }); | 
| 118 | 118 | 
| 119   test('with a unicode filename', () { | 119   test('with a unicode filename', () { | 
| 120     var request = new http.MultipartRequest('POST', dummyUrl); | 120     var request = new http.MultipartRequest('POST', dummyUrl); | 
| 121     request.files.add(new http.MultipartFile.fromString('file', 'contents', | 121     request.files.add(new http.MultipartFile.fromString('file', 'contents', | 
| 122         filename: 'fïlēname.txt')); | 122         filename: 'fïlēname.txt')); | 
| 123 | 123 | 
| 124     expect(request, bodyMatches(''' | 124     expect(request, bodyMatches(''' | 
| 125         --{{boundary}} | 125         --{{boundary}} | 
| 126         content-type: text/plain; charset=UTF-8 | 126         content-type: text/plain; charset=utf-8 | 
| 127         content-disposition: form-data; name="file"; filename="f%C3%AFl%C4%93nam
     e.txt" | 127         content-disposition: form-data; name="file"; filename="f%C3%AFl%C4%93nam
     e.txt" | 
| 128 | 128 | 
| 129         contents | 129         contents | 
| 130         --{{boundary}}-- | 130         --{{boundary}}-- | 
| 131         ''')); | 131         ''')); | 
| 132   }); | 132   }); | 
| 133 | 133 | 
| 134   test('with a string file with a content-type but no charset', () { | 134   test('with a string file with a content-type but no charset', () { | 
| 135     var request = new http.MultipartRequest('POST', dummyUrl); | 135     var request = new http.MultipartRequest('POST', dummyUrl); | 
| 136     var file = new http.MultipartFile.fromString('file', '{"hello": "world"}', | 136     var file = new http.MultipartFile.fromString('file', '{"hello": "world"}', | 
| 137         contentType: new ContentType('application', 'json')); | 137         contentType: new ContentType('application', 'json')); | 
| 138     request.files.add(file); | 138     request.files.add(file); | 
| 139 | 139 | 
| 140     expect(request, bodyMatches(''' | 140     expect(request, bodyMatches(''' | 
| 141         --{{boundary}} | 141         --{{boundary}} | 
| 142         content-type: application/json; charset=UTF-8 | 142         content-type: application/json; charset=utf-8 | 
| 143         content-disposition: form-data; name="file" | 143         content-disposition: form-data; name="file" | 
| 144 | 144 | 
| 145         {"hello": "world"} | 145         {"hello": "world"} | 
| 146         --{{boundary}}-- | 146         --{{boundary}}-- | 
| 147         ''')); | 147         ''')); | 
| 148   }); | 148   }); | 
| 149 | 149 | 
| 150   // TODO(nweiz): test creating a multipart file with a charset other than UTF-8 | 150   // TODO(nweiz): test creating a multipart file with a charset other than UTF-8 | 
| 151   // once issue 6284 is fixed. | 151   // once issue 6284 is fixed. | 
| 152 | 152 | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 226         content-type: application/octet-stream | 226         content-type: application/octet-stream | 
| 227         content-disposition: form-data; name="file"; filename="test-file" | 227         content-disposition: form-data; name="file"; filename="test-file" | 
| 228 | 228 | 
| 229         hello | 229         hello | 
| 230         --{{boundary}}-- | 230         --{{boundary}}-- | 
| 231         ''')); | 231         ''')); | 
| 232       }), completes); | 232       }), completes); | 
| 233     }); | 233     }); | 
| 234   }); | 234   }); | 
| 235 } | 235 } | 
| OLD | NEW | 
|---|