Skip to content

Commit b2e90ff

Browse files
author
Marc Derhammer
committed
Added some more testing for bad file extensions and also invalid filenames
1 parent 09008bf commit b2e90ff

File tree

1 file changed

+54
-12
lines changed

1 file changed

+54
-12
lines changed

spec/ParseFile.spec.js

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1374,18 +1374,60 @@ describe('Parse.File testing', () => {
13741374
'X-Parse-Application-Id': 'test',
13751375
'X-Parse-REST-API-Key': 'rest',
13761376
};
1377-
await expectAsync(
1378-
request({
1379-
method: 'POST',
1380-
headers: headers,
1381-
url: 'http://localhost:8378/1/files/file.png.html',
1382-
body: '<html></html>\n',
1383-
}).catch(e => {
1384-
throw new Error(e.data.error);
1385-
})
1386-
).toBeRejectedWith(
1387-
new Parse.Error(Parse.Error.FILE_SAVE_ERROR, `File upload of extension html is disabled.`)
1388-
);
1377+
1378+
const values = ['file.png.html', 'file.txt.png.html', 'file.png.txt.html'];
1379+
1380+
for (const value of values) {
1381+
await expectAsync(
1382+
request({
1383+
method: 'POST',
1384+
headers: headers,
1385+
url: `http://localhost:8378/1/files/${value}`,
1386+
body: '<html></html>\n',
1387+
}).catch(e => {
1388+
throw new Error(e.data.error);
1389+
})
1390+
).toBeRejectedWith(
1391+
new Parse.Error(Parse.Error.FILE_SAVE_ERROR, `File upload of extension html is disabled.`)
1392+
);
1393+
}
1394+
});
1395+
1396+
it('works to stop invalid filenames', async () => {
1397+
await reconfigureServer({
1398+
fileUpload: {
1399+
enableForPublic: true,
1400+
},
1401+
});
1402+
const headers = {
1403+
'X-Parse-Application-Id': 'test',
1404+
'X-Parse-REST-API-Key': 'rest',
1405+
};
1406+
1407+
const values = [
1408+
'!invalid.png',
1409+
'.png',
1410+
'.html',
1411+
' .html',
1412+
'.png.html',
1413+
'~invalid.png',
1414+
'-invalid.png',
1415+
];
1416+
1417+
for (const value of values) {
1418+
await expectAsync(
1419+
request({
1420+
method: 'POST',
1421+
headers: headers,
1422+
url: `http://localhost:8378/1/files/${value}`,
1423+
body: '<html></html>\n',
1424+
}).catch(e => {
1425+
throw new Error(e.data.error);
1426+
})
1427+
).toBeRejectedWith(
1428+
new Parse.Error(Parse.Error.INVALID_FILE_NAME, `Filename contains invalid characters.`)
1429+
);
1430+
}
13891431
});
13901432

13911433
it('works with array', async () => {

0 commit comments

Comments
 (0)