mirror of
https://github.com/status-im/react-native.git
synced 2025-02-14 18:36:35 +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
|
// an object with a `uri` attribute. Optionally, it can also
|
||||||
// have a `name` and `type` attribute to specify filename and
|
// have a `name` and `type` attribute to specify filename and
|
||||||
// content type (cf. web Blob interface.)
|
// content type (cf. web Blob interface.)
|
||||||
if (typeof value === 'object') {
|
if (typeof value === 'object' && value) {
|
||||||
if (typeof value.name === 'string') {
|
if (typeof value.name === 'string') {
|
||||||
headers['content-disposition'] += '; filename="' + value.name + '"';
|
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