mirror of
https://github.com/status-im/react-native.git
synced 2025-02-12 09:26:37 +00:00
Network/FormData typeof object allowing null
Summary: Submitting PR in response to https://github.com/facebook/react-native/issues/12251 **Test plan (required)** $formData = new FormData() $formData.append('value', null) Included Unit Tests Closes https://github.com/facebook/react-native/pull/12253 Differential Revision: D4545291 Pulled By: lacker fbshipit-source-id: 2780f24e1fe1e0d5be3bb12b64aa6cd9a20554bf
This commit is contained in:
parent
1dd84f0d47
commit
34edf92cbf
@ -71,7 +71,7 @@ class FormData {
|
||||
// an object with a `uri` attribute. Optionally, it can also
|
||||
// have a `name` and `type` attribute to specify filename and
|
||||
// content type (cf. web Blob interface.)
|
||||
if (typeof value === 'object') {
|
||||
if (typeof value === 'object' && value) {
|
||||
if (typeof value.name === 'string') {
|
||||
headers['content-disposition'] += '; filename="' + value.name + '"';
|
||||
}
|
||||
|
59
Libraries/Network/__tests__/FormData-test.js
Normal file
59
Libraries/Network/__tests__/FormData-test.js
Normal file
@ -0,0 +1,59 @@
|
||||
/**
|
||||
* Copyright (c) 2013-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
jest.unmock('FormData');
|
||||
|
||||
const FormData = require('FormData');
|
||||
|
||||
describe('FormData', function() {
|
||||
var formData;
|
||||
|
||||
beforeEach(() => {
|
||||
formData = new FormData();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
formData = null;
|
||||
});
|
||||
|
||||
it('should return non blob null', function() {
|
||||
formData.append('null', null);
|
||||
|
||||
const expectedPart = {
|
||||
string: 'null',
|
||||
headers: {
|
||||
'content-disposition': 'form-data; name="null"'
|
||||
},
|
||||
fieldName: 'null'
|
||||
};
|
||||
expect(formData.getParts()[0]).toMatchObject(expectedPart);
|
||||
});
|
||||
|
||||
it('should return blob', function() {
|
||||
formData.append('photo', {
|
||||
uri: 'arbitrary/path',
|
||||
type: 'image/jpeg',
|
||||
name: 'photo.jpg'
|
||||
});
|
||||
|
||||
const expectedPart = {
|
||||
uri: 'arbitrary/path',
|
||||
type: 'image/jpeg',
|
||||
name: 'photo.jpg',
|
||||
headers: {
|
||||
'content-disposition': 'form-data; name="photo"; filename="photo.jpg"',
|
||||
'content-type': 'image/jpeg'
|
||||
},
|
||||
fieldName: 'photo'
|
||||
};
|
||||
expect(formData.getParts()[0]).toMatchObject(expectedPart);
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user