From 2769e297ca6703f761f9b57792585eb1fc5aac49 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 6 Aug 2018 11:45:24 +0200 Subject: Fix caption upload on Mac OS --- server/tests/api/check-params/video-captions.ts | 26 +++++++++++++++++++++++++ server/tests/api/videos/video-captions.ts | 3 ++- server/tests/utils/requests/requests.ts | 8 ++++++-- server/tests/utils/videos/video-captions.ts | 11 ++++++++--- 4 files changed, 42 insertions(+), 6 deletions(-) (limited to 'server/tests') diff --git a/server/tests/api/check-params/video-captions.ts b/server/tests/api/check-params/video-captions.ts index a3d7ac35d..8d46971a1 100644 --- a/server/tests/api/check-params/video-captions.ts +++ b/server/tests/api/check-params/video-captions.ts @@ -15,6 +15,7 @@ import { userLogin } from '../../utils' import { join } from 'path' +import { createVideoCaption } from '../../utils/videos/video-captions' describe('Test video captions API validator', function () { const path = '/api/v1/videos/' @@ -143,6 +144,31 @@ describe('Test video captions API validator', function () { }) }) + // We don't check the extension yet + // it('Should fail with an invalid captionfile extension and octet-stream mime type', async function () { + // await createVideoCaption({ + // url: server.url, + // accessToken: server.accessToken, + // language: 'zh', + // videoId: videoUUID, + // fixture: 'subtitle-bad.txt', + // mimeType: 'application/octet-stream', + // statusCodeExpected: 400 + // }) + // }) + + it('Should succeed with a valid captionfile extension and octet-stream mime type', async function () { + await createVideoCaption({ + url: server.url, + accessToken: server.accessToken, + language: 'zh', + videoId: videoUUID, + fixture: 'subtitle-good.srt', + mimeType: 'application/octet-stream' + }) + }) + + // We don't check the file validity yet // it('Should fail with an invalid captionfile srt', async function () { // const attaches = { // 'captionfile': join(__dirname, '..', '..', 'fixtures', 'subtitle-bad.srt') diff --git a/server/tests/api/videos/video-captions.ts b/server/tests/api/videos/video-captions.ts index eb73c5baf..ba9ebbdd6 100644 --- a/server/tests/api/videos/video-captions.ts +++ b/server/tests/api/videos/video-captions.ts @@ -56,7 +56,8 @@ describe('Test video captions', function () { accessToken: servers[0].accessToken, language: 'zh', videoId: videoUUID, - fixture: 'subtitle-good2.vtt' + fixture: 'subtitle-good2.vtt', + mimeType: 'application/octet-stream' }) await waitJobs(servers) diff --git a/server/tests/utils/requests/requests.ts b/server/tests/utils/requests/requests.ts index b88b3ce5b..fc7b38b8c 100644 --- a/server/tests/utils/requests/requests.ts +++ b/server/tests/utils/requests/requests.ts @@ -48,7 +48,7 @@ function makeUploadRequest (options: { path: string, token?: string, fields: { [ fieldName: string ]: any }, - attaches: { [ attachName: string ]: any }, + attaches: { [ attachName: string ]: any | any[] }, statusCodeExpected?: number }) { if (!options.statusCodeExpected) options.statusCodeExpected = 400 @@ -78,7 +78,11 @@ function makeUploadRequest (options: { Object.keys(options.attaches).forEach(attach => { const value = options.attaches[attach] - req.attach(attach, buildAbsoluteFixturePath(value)) + if (Array.isArray(value)) { + req.attach(attach, buildAbsoluteFixturePath(value[0]), value[1]) + } else { + req.attach(attach, buildAbsoluteFixturePath(value)) + } }) return req.expect(options.statusCodeExpected) diff --git a/server/tests/utils/videos/video-captions.ts b/server/tests/utils/videos/video-captions.ts index 207e89632..41e52be07 100644 --- a/server/tests/utils/videos/video-captions.ts +++ b/server/tests/utils/videos/video-captions.ts @@ -10,10 +10,15 @@ function createVideoCaption (args: { accessToken: string videoId: string | number language: string - fixture: string + fixture: string, + mimeType?: string, + statusCodeExpected?: number }) { const path = '/api/v1/videos/' + args.videoId + '/captions/' + args.language + const captionfile = buildAbsoluteFixturePath(args.fixture) + const captionfileAttach = args.mimeType ? [ captionfile, { contentType: args.mimeType } ] : captionfile + return makeUploadRequest({ method: 'PUT', url: args.url, @@ -21,9 +26,9 @@ function createVideoCaption (args: { token: args.accessToken, fields: {}, attaches: { - captionfile: buildAbsoluteFixturePath(args.fixture) + captionfile: captionfileAttach }, - statusCodeExpected: 204 + statusCodeExpected: args.statusCodeExpected || 204 }) } -- cgit v1.2.3